关于STM32的简单问题,GPIOA->BSRR=0x080004;这样写对吗?

GPIOx_BSRR寄存器是32位的,但书上这样写的,才24位,这样写对吗?对的话,是不是对低24位进行设置了呢?(c语言)

“=”就是是对寄存器的32位都设置了,并不只是对24位设置。
这么写是前面省略了几个0而已,与 GPIOA->BSRR=0x00080004 是一样的。
这就好像你的十进制数写“500块”而不会写“0000000500块”一样,但两种写法又都对。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-19
BSRR寄存器高16bit对端口位清零,低16bit对端口位置1.
GPIOA->BSRR=0x080004实际就是GPIOA->BSRR=0x00080004,结果就是对PA3清零,PA2置1.本回答被提问者和网友采纳
相似回答