STM32的BRSS和BRR寄存器
GPIOC->BSRR = GPIO_Pin_10 //将PC10设为高电平GPIOC->BRR= GPIO_Pin_10 //将PC10设为低电平
GPIOx->BSRR是STM32微控制器GPIO模块的32位端口位设置/清除寄存器,高16位31:16写1则对应的ODRy位0,低16位15:0写1则对应的ODRy位1,写0无反应,而GPIO一共15个引脚,
#define GPIO_Pin_0 ((uint16_t)0x0001)
#define GPIO_Pin_1 ((uint16_t)0x0002)
#define GPIO_Pin_2 ((uint16_t)0x0004)
···
#define GPIO_Pin_10 ((uint16_t)0x0400)
#define GPIO_Pin_11 ((uint16_t)0x0800)
#define GPIO_Pin_12 ((uint16_t)0x1000)
#define GPIO_Pin_13 ((uint16_t)0x2000)
#define GPIO_Pin_14 ((uint16_t)0x4000)
#define GPIO_Pin_15 ((uint16_t)0x8000)
所以GPIOC->BSRR = GPIO_Pin_10 => GPIOC->BSRR = 0x0400 =0100 0000 0000,相当于将第10位写1,对应的引脚就置为1。
GPIOx->BRR是STM32微控制器GPIO模块的32位清除寄存器,高16位31:16无作用,低16位15:0写1则对应的ODRy位0,所以GPIOC->BRR= GPIO_Pin_10 => GPIOC->BRR = 0x0400 =0100 0000 0000,相当于将第10位写1,对应的引脚就置为0。
————————————————
版权声明:本文为CSDN博主「小盆油」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Woaishaqian/article/details/149937485
页:
[1]