STM32用寄存器实现电平翻转(一个按键控制LED灯的开关)

代码

GPIOx -> ODR ^= GPIO_Pin_x

@加载了32标准库

如果加载了32标准库要方便些,直接用标准库的宏定义。

GPIOx中的x可以为(A,B,C,D……)GPIO_Pin_x中的x可以为(1,2,3……)

@没有加载32标准库

通过32官方手册查找GPIOx和GPIO_Pin_x对应的寄存器地址

解释

@ODR寄存器

ODR寄存器对应端口位写0,则GPIO呈现低电平;写1,则GPIO呈现低电平。

@异或

^是异或,异或上1,1变0,0变1,异或上0不改变原来的数。

@GPIO_Pin_x

GPIO_Pin_x是在ODR寄存器中的对应位写1。

所以ODR^GPIO_Pin_x就是让对应端口位0变1,1变0从而实现电平的反转。

posted @ 2022-12-11 13:06  Sound_Sleep  阅读(1854)  评论(0编辑  收藏  举报