STM32学习笔记—跑马灯
咳咳,学习了STM32若干天(由于事情较多搁置了好多),在原子哥的带领下搭建了环境,还有学习了一些比较常用的功能,包括串口调试,软件仿真,串口下载等等,终于接触到了第一个实验——跑马灯。跟以前学arduino的时候一样,看视频自学,依旧是先按着模板抄着写,根本搞不懂里面的操作,硬着头皮往下弄!
嗯嗯······还是有效果的,通过仿照模板,灯最终也被点量了!
可是,这个是板上自带的LED,也是按照模板来的。于是觉得应该自己写才行,于是,我外接了一个LED,来练习代码。
以PB5作为输出口;
led.h
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
led.c
#include "stm32f10x.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
void LED_Init(void)
{
RCC->APB2ENR|=1<<3;
GPIOB->CRL&=0xFF0FFFFF;//清零
GPIOB->CRL|=0X00300000;//输出
GPIOB->ODR|=1<<5;//高电平
}
main.c
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
int main(void)
{
delay_init(); //延时初始化
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
PBout(5)=1;
delay_ms(300);
PBout(5)=0;
delay_ms(300);
}
}
其实,初次写这个代码时,以经常发生一些错误,比如代码的最后要进行换行,我一直不解为什么这样做。这里找到了问题所在:https://www.zhihu.com/question/20018991
今天笔记就记于此,如果有错误,希望大佬能够指正!