详细页面:http://alanzjl.sinaapp.com/2015/02/gpio_brr_bsrr_odr/
BRR、BSRR、ODR都是用来控制16位针脚的。
其中,BRR和ODR高16位都不可用(Reserved),使用低16位控制针脚,而BSRR高16位和低16位皆可用,都用来控制16位针脚。
BRR与BSRR使用方法
BRR和BSRR的最显著用处就是可以只改变某一个或某几个针脚的值而不改变其他。
1.BRR:如果程序对其某针脚赋值0,则该针脚维持原值不变,比如BRR的位0本来为1,则GPIOx->BRR=0x0语句之后该位值还为1。若对其赋值1,则该位值变为0(即复位值),比如BRR的位0本来为1,则GPIOx->BRR=0x01语句之后该位值为0。
2.BSRR:对于高16位,与BRR相同。对于低16位,如果程序对其某针脚赋值0,则该针脚维持原值不变。若对其赋值1,则该位值变为1,比如BSRR的位0本来为0,则GPIOx->BRR=0x01语句之后该位值为1。
举个例子,GPIOx->BRR=0x01与GPIOx->