2019-07-20 04:00发布
cjsyrzy 发表于 2019-1-25 10:50 看参考手册,BSRR寄存器最终目的是改变ODR Bits 31:16 BRy: Port x Reset bit y (y= 0 .. 15)
cjsyrzy 发表于 2019-1-25 13:28 因为ODR只能以字节的形式写入,每次写入,一个端口上的16个引脚电平都会更新,全部更新很多情况下不方便 ...
最多设置5个标签!
也就是说你的例子里,GPIOA->BSRR |= 1<<1;这条指令执行完以后,BSRR的第1位自动又变为0了(BSRR中写0没有任何变化)。
可以参考一下库函数的写法,还有一个寄存器BRR
信谢谢了,这个意思我明白,只是想请教下,设置高电平1的那个位还在,在设置低电平0这个位也在,相当于两个地方都设置了?是我理解错了,不是只设置一个位,是设置整个寄存器,全部位都更新了。
按您说的这个,上面的例子,第一位设置1,A1输出高电平,接下来第十七位设置1,A1输出低电平。在第十七位设置1的时候,第一位仍然是1,我最开始疑惑的地方就在这。
一周热门 更多>