STM32跑马灯(基于寄存器)

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

  • 硬件连接

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

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

#ifndef  __LED_H                //     如果没有定义则定义,被定义不会执行下面的程序

#define  __LED_H               //   则定义的内容

 

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. 更多内容参阅寄存器,不在讲解。

你可能感兴趣的:(STM32)