GPIOx->BSRR

GPIOx->BSRR

連線埠位設定/清除暫存器

stm32中常見的一種處理連線埠的方式

定義,性質,套用,

定義

該暫存器的地址偏移為0x10,復位值為0x0000 0000

性質

描述
位31:16
BRy:清除連線埠x的位y(y=0...15)
這些位只能寫入並只能以字(16位)的形式操作
0:對對應的ODRy位不產生影響
1:清除對應的ODRy位為0
位15:0
BSy:設定連線埠x的位y(y=0...15)
這些位只能寫入並只能以字(16位)的形式操作
0:對對應的ODRy位不產生影響
1:清除對應的ODRy位為1
註:如果同時設定了BRy和BSy的對應位,BSy起作用。

套用

GPIOx->BSRR = GPIO_Pin; //連線埠位設定或清除
註:GPIO_Pin為(0..15)中任意接口
有了GPIOx->BRR清除暫存器,並且與GPIOx->BSRR高16為功能相同,有人問是否BSRR的高16位是多餘 的,請看下面的例子:
假如你想在一個操作中對GPIOE的位1置'1',位15置'0',則使用BSRR非常方便:
GPIOE->BSRR = 0x80000002;
低16位中的0002將位1置‘1’,高16位中的8000將位15置清零,一步就可以做到。
如果沒有BSRR的高16位,則要分2次操作,結果造成位1和位15的變化不同步!
GPIOE->BSRR = 0x02;
GPIOE->BRR = 0x8000;

相關詞條

熱門詞條

聯絡我們