×
单片机 > 单片机程序设计 > 详情

跑马灯实验-寄存器版

发布时间:2020-08-21 发布时间:
|

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);

          }

      }





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
采用AT89C2051的数字可调稳压电源单片机源程序