STM32跑马灯(基于寄存器)

参考资料:STM32寄存器开发版本函数

  • 硬件链接

打开原理图,不累述。参阅PDF原理图。spa

  • 操做流程
  1. 复制“库函数模板”做为创建的空工程。
  2. 新建一个分组,HARDWARE,而且在目录下面也新建一个目录,在下面在新建一个子文件夹叫LED,LED下面新建LED.H和LED.C。前面有如出一辙的过程,不在说明
  3. 在LED.H文件夹中写

#ifndef  __LED_H                //     若是没有定义则定义,被定义不会执行下面的程序开发

#define  __LED_H               //   则定义的内容it

 

void LED__Init();编译

 

#endif模板

  1. 在LED.C文件中写

参阅STM32寄存器开发版本。原理

#include “LED.H”配置

 

Void LED_Init(void)硬件

{程序

RCC->APB2ENR|=1<<3; //使能 PORTB 时钟
RCC->APB2ENR|=1<<6; //使能 PORTE 时钟
GPIOB->CRL&=0XFF0FFFFF;
GPIOB->CRL|=0X00300000;//PB.5 推挽输出
GPIOB->ODR|=1<<5; //PB.5 输出高
GPIOE->CRL&=0XFF0FFFFF;
GPIOE->CRL|=0X00300000;//PE.5 推挽输出
GPIOE->ODR|=1<<5; //PE.5 输出高 }

  1. 在include path中添加LED文件,把文件加入到工程中去(LED.C)加到hardware里面,而后编译。
  2. 主函数

#include "stm32f10x.h"

#include "LED.H"

#include "delay.h"

int main(void)

{

delay_init();

LED_Init();

 

while(1)

{

        GPIOB->ODR|=1<<5;                                                   //输出寄存器配置为高

GPIOB->ODR|=1<<5;                                                   //输出寄存器配置为高

delay_ms(500);                                                              //延时

       

        GPIOB->ODR=~(1<<5);                                                //

              GPIOE->ODR=~(1<<5);

delay_ms(500);                                                              //延时

 

 

}

 

 

 

 

}

  1. 更多内容参阅寄存器,不在讲解。