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中方法要更加简单一些。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-31
比如我要让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;
总结和纠正一下前面大佬的错别字,本人也是在学习过程中,感谢各位大佬的回答
第2个回答  2014-11-14
需要帮你做设计吗
第3个回答  2014-11-15
这句话出自何处/?来个完整的看看追问

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

追答

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

相似回答