<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 GPIO BRR和BSRR寄存器

STM32 GPIO BRR和BSRR寄存器

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏
使用BRRBSRR寄存器可以方便地快速地實(shí)現對端口某些特定位的操作,而不影響其它位的狀態(tài)。

比如希望快速地對GPIOE的位7進(jìn)行翻轉,則可以:

本文引用地址:http://dyxdggzs.com/article/201611/321402.htm

GPIOE->BSRR = 0x80; // 置1
GPIOE->BRR = 0x80; // 置0

如果使用常規讀-改-寫(xiě)的方法:

GPIOE->ODR = GPIOE->ODR | 0x80; // 置1
GPIOE->ODR = GPIOE->ODR & 0xFF7F; // 置0

有人問(wèn)是否BSRR的高16位是多余的,請看下面這個(gè)例子:

假如你想在一個(gè)操作中對GPIOE的位7置1,位6置0,則使用BSRR非常方便:
GPIOE->BSRR = 0x00400080;

如果沒(méi)有BSRR的高16位,則要分2次操作,結果造成位7和位6的變化不同步!
GPIOE->BSRR = 0x80;
GPIOE->BRR = 0x40;

規則:

一、置GPIOD->BSRR低16位的某位為1,則對應的I/O端口置1;而置GPIOD->BSRR低16位

的某位為0,則對應的I/O端口不變。

二、置GPIOD->BSRR高16位的某位為1,則對應的I/O端口置0;而置GPIOD->BSRR高16位

的某位為0,則對應的I/O端口不變。

三、置GPIOD->BRR低16位的某位為1,則對應的I/O端口置0;而置GPIOD->BRR低16位的

某位為0,則對應的I/O端口不變。

例如:

1)要設置D0、D5、D10、D11為高,而保持其它I/O口不變,只需一行語(yǔ)句:

GPIOD->BSRR = 0x0C21;// 使用規則一

2)要設置D1、D3、D14、D15為低,而保持其它I/O口不變,只需一行語(yǔ)句:

GPIOD->BRR = 0xC00A;// 使用規則三

3)要同時(shí)設置D0、D5、D10、D11為高,設置D1、D3、D14、D15為低,而保持其它I/O口不變

,也只需一行語(yǔ)句:

GPIOD->BSRR = 0xC00A0C21;// 使用規則一和規則二

如果中斷中要對IO口設置,最好使用BSRR和BRR操作,而不要用ODR .



關(guān)鍵詞: STM32GPIOBRRBSRR寄存

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>