55智能网
新记
STM32 既然可以直接操作ODR,为什么还要设置BSRR和BRR?
我的意思是既然可以直接操作ODR,那么再通过BSRR或BRR来设置端口的值是不是很多余?
举报该文章
相关建议 推荐于2017-11-29
如果你想改变某个位的状态而不影响其他的,那用BSRR或BRR就很容易了。直接操作ODR需要“读-操作-写”的过程,速度反而变慢了。
比如说让PA1、PA3、PA7清零而不影响其他位的状态,那就是:
GPIOA->BRR=PA1|PA3|PA7;
你要用ODR来操作的话,那就变成这样了:
GPIOA->ODR&=~(PA1|PA3|PA7);
虽然C的语句都只有一个,但你看汇编代码,就发现使用BRR比ODR快的多。
温馨提示:内容为网友见解,仅供参考
当前网址:
https://55.aolonic.com/aa/fiercggegfl4geqlqcr.html
其他看法
无其他回答
相似回答
大家正在搜
相关问题
stm32中GPIOx_BSRR和 GPIO_xBRR寄存允...
请教STM32知识点:GPIOA->BSRR 与GPIOA-...
配置_BSRR时为什么还要配置CRL
GPIO->ODR与GPIO_Pin同作为实现输出时的区别是...
关于STM32 GPIO->BSRR GPIO->BRR的问...
STM32 的GPIO流水灯,程序下进去后,4个LED先全部...
stm32 如何取int型的最高位给gpio口