在操作STM32单片机的IO端口时,可以使用BSRR寄存器快速操作同一端口的位数据。
例如,操作PA端口。 程序代码为: GPIOA-BSRR=0x00F0000F;
将0x00F0000F分割为高位16位和低位16位。 分别如下所示。
高16: 0 0 0 0 | 0 0 0 0 | 1 1 1 1 |0 0 0 0
低16点0000|0000| 0000| 111
ODR: x x x x | x x x x | 0 0 0 0 |1 1 1 1
如果16位最高有效位为0,16位最低有效位为1,则ODR为1;
如果高16对应位为1,低16对应位为0,则ODR为0;
如果高16位支持1,低16位支持1,则ODR为1;
在高位16比特为0、低位16比特也为0的情况下,端口数据的比特保持不变;
因此,我们可以得到PA口的各对应数据:
PA0=1; PA1=1; PA2=1; PA3=1;
PA4=0; PA5=0; PA6=0; PA7=0;
更多相关技术疑问,请关注【制造可思考的单片机】,制造电子技术,解渴,谦虚愚蠢,分享更多设计经验。