跑马灯实验-寄存器版

来源:互联网 发布:人工智能 人类终结 编辑:程序博客网 时间:2024/06/08 01:27
1、参考资料  《STM32F1开发指南-寄存器》-第六章 跑马灯实验6.1小节
             《STM32中文参考手册_V10》-8.2 GPIO寄存器描述  7.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR)
2、编写步骤:
         使能IO口时钟。配置寄存器RCC_APB2ENR。
     初始化IO口模式。配置寄存器GPIOx_CRH/CRL
     操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRR/BRR。

3、详细
      新建文件夹HARDWARE,在此文件夹中新建led.c,led.h   在工程中新建分组HARDWARE,在path中添加路径
      RCC_APB2ENR寄存器   
      
      led.c
      #include "led.h"
      #include "stm32f10x.h"
      
      void LED_Init()
      {
          //对PB和PE进行时钟使能   
          RCC->APB2ENR |= 1<<3; //使能GPIOB
          RCC->APB2ENR |= 1<<6; //使能GPIOE
          
          //GPIOB.5  推挽输出,速度50MHz
          GPIOB->CRL &= 0xFF0FFFFF; //将5四个位清零
          GPIOB->CRL |= 0x00300000; //赋值
          GPIOB->ODR |= 1<<5;    //PB5输出高电平
          
          //GPIOE.5
          GPIOE->CRL &= 0xFF0FFFFF; //将5四个位清零
          GPIOE->CRL |= 0x00300000; //赋值
          GPIOE->ODR |= 1<<5;    //PE5输出高电平
      }
      
      main.c
      
      int main()
      {
          while(1)
          {
              GPIOB->ODR |= 1<<5;    //PB5输出高电平
              GPIOE->ODR |= 1<<5;    //PE5输出高电平
              delayms(300);
              
              GPIOB->ODR &= ~(1<<5); //PB5输出低电平
              GPIOE->ODR &= ~(1<<5); //PE5输出低电平
              delayms(300);
          }

      }



0 0
原创粉丝点击