stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读\更改的独立访问;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读\更改的独立访问;相关的知识,希望对你有一定的参考价值。

这样在读或更改之间产生的IRQ时不会发生危险。这是什么意思呀,各位帮忙理解一下,谢谢呀。

一般情况下控制控制IO口高低电平就直接控制GPIOx->ODR寄存器即可。
而控制GPIOx->BSRR和GPIOx->BRR就等于间接控制GPIOx->ODR寄存器,而且手册也说了,BSRR、BRR是只写寄存器,写1有效写0无影响,这是什么意思呢;就是对BSRR和BRR寄存器写1就是对相应的IO口电平操作,写0的话IO口电平不变,这样就达到了上面所说的:允许对任何GPIOx进行读、更改的独立访问。
比如我要让GPA0变为高电平,可以有两种做法:
1、GPIOA->ODR|=GPIO_Pin_0;
2、GPIOA->BSRR=GPIO_Pin_0;
比如我要让GPA0变为低电平,可以有两种做法:
1、GPIOA->ODR&=~GPIO_Pin_0;
2、GPIOA->BSRR=GPIO_Pin_0;
可以看到都是只改变一个IO口电平的时候,明显第2中方法要更加简单一些。
参考技术A 比如我要让GPIOA变为高电平,可以有两种做法:
1、GPIOA->ODR|=GPIO_Pin_0;
2、GPIOA->BSRR=GPIO_Pin_0;
比如我要让GPIOA变为低电平,可以有两种做法:
1、GPIOA->ODR&=~GPIO_Pin_0;
2、GPIOA->BRR=GPIO_Pin_0;
总结和纠正一下前面大佬的错别字,本人也是在学习过程中,感谢各位大佬的回答
参考技术B 需要帮你做设计吗 参考技术C 这句话出自何处/?来个完整的看看追问

完整的就是上面加下面的话,因为上面有字数限定,这句话来自刘凯stm32视频GPIO的手册,不太明白,帮忙看一下怎样理解,谢了

追答

就当他放屁了吧,我从来没遇到过什么危险的事情一直用32呢,我进行io口操作的时候来中断的话cpu也会保护现场的

以上是关于stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读\更改的独立访问;的主要内容,如果未能解决你的问题,请参考以下文章

STM32GPIO配置为输出和输入捕获怎么配置(HAL库)?

嵌入式STM32F1学习-驱动led灯(寄存器版本)

STM32从设置IO输入上下拉到寄存器GPIOx_BSRRGPIOx_BRR

STM32中的BRR寄存器与BSRR寄存器重复么?

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

STM32F 103C8T6开发板 点亮LED灯