gpiob->bsrr与通过gpiob->odr设置输出相比优点是什么
时间: 2023-12-24 14:02:58 浏览: 42
使用GPIOB->BSRR与通过GPIOB->ODR设置输出相比,有以下优点:
1. 原子性:GPIOB->BSRR具有原子性,可以在一条指令内完成GPIO引脚的设置或复位,保证了在多线程或中断处理中对GPIO引脚状态的正确性。
2. 速度:GPIOB->BSRR的操作速度比GPIOB->ODR更快,因为它可以在一条指令内同时设置或清除多个GPIO引脚的状态。
3. 可读性:GPIOB->BSRR可以通过读取寄存器的值来获得当前GPIO引脚的状态,而GPIOB->ODR只能读取到写入寄存器前的状态。
4. 灵活性:GPIOB->BSRR可以通过设置高16位或低16位来分别设置或清除GPIO引脚的状态,具有更高的灵活性和控制能力。
综上所述,GPIOB->BSRR操作更加高效、原子、灵活,是控制GPIO输出的更好选择。
相关问题
GPIOB->ODR |= 1<<15
这段代码的作用是将GPIOB的ODR寄存器的第15位设置为1。具体来说,代码中的`1<<15`表示将二进制数1左移15位,即得到二进制数10000000000000000。然后,通过`|=`操作符将这个二进制数与GPIOB的ODR寄存器进行按位或操作,将第15位设置为1。最终的结果是将GPIOB的ODR寄存器的第15位设置为1。\[3\]
#### 引用[.reference_title]
- *1* [STM32的GPIO的寄存器配置学习1](https://blog.csdn.net/qq_21990661/article/details/104749416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [GPIO 配置之ODR, BSRR, BRR 详解](https://blog.csdn.net/byhunpo/article/details/88996657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [对 GPIOB_ODR|=(1<<10) GPIOB_ODR&=~(1<<10)的理解](https://blog.csdn.net/qq_57064185/article/details/119870019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
stm32的PB10和PB11是什么仇口
在STM32中,PB10和PB11是GPIOB的第10和11个引脚,它们可以用作通用输入输出口,也可以用作其他功能的引脚,例如定时器通道输入捕获、PWM输出等。
具体来说,PB10和PB11是STM32的LQFP64封装中的引脚,也可以在其他封装中找到。它们对应于GPIOB的第2个字节,可以通过GPIOB->IDR、GPIOB->ODR、GPIOB->BSRR、GPIOB->BRR等寄存器来读写它们的输入输出状态。
需要注意的是,PB10和PB11也可能被用作其他外设的引脚,例如USART3的TX和RX引脚、I2C2的SCL和SDA引脚、TIM2的CH3和CH4引脚等,使用时需要查看相关资料并进行正确的配置。