文章目录
- 点灯流程
- 开时钟
- 配置IO
- 关灯操作
- 灯反转宏定义
- 最后给自己说
本篇文章使用的是STM32F103xC系列的芯片,四个led灯在PE2,PE3,PE4,PE5上连接
点灯流程
1.开时钟
2.配置IO口
(1)清零指定寄存器位
(2)设置模式为推挽输出模式(led灯低电平有效)
3.设置开关灯
4.宏定义灯的反转
开时钟
1.先看时钟树,找到PE总线在APB2时钟
2.我们先来打开对应芯片的参考手册,找到对应时钟的地方
因为我们选择的是PE口,所以应该让第6位置一,如图(非圈起)
3.代码
RCC->APB2ENR |= 1<<6;
配置IO
1.清零指定寄存器,查找参考手册GPIO部分
如上图解释,我们选用端口配置低寄存器CLR,每个口有32位,每4位是一个IO的配置,CNF表示模式,MODE表示设置频率,我们同时配置模式
2.代码
GPIOE->CRL &= ~(0xffff<<8);//先清零指定寄存器位GPIOE->CRL |= 0x1111<<8;//设置模式为推挽输出模式
关灯操作
1.给对应IO口置高电平,端口输出高电平,同样的32位,高16保留
2.代码
0xf=1111<<2,再或上,给对应口置0
GPIOE->ODR |= 0xf<<2;//关灯操作
灯反转宏定义
LED1是PE2端口,如果表示当灯原来的状态位为1时,ODR置0,反之为1.实现灯闪烁/反转效果
#define LED1_Toggle() GPIOE->ODR ^= (1<<2)//反转灯操作
最后给自己说
切莫眼高手低