日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]詳細頁面:http://alanzjl.sinaapp.com/2015/02/gpio_brr_bsrr_odr/BRR、BSRR、ODR都是用來控制16位針腳的。其中,BRR和ODR高16位都不可用(Reserved),使用低16位控制針腳,而BSRR高16位和低16位皆可用,都用來控制1

詳細頁面: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:如果程序?qū)ζ淠翅樐_賦值0,則該針腳維持原值不變,比如BRR的位0本來為1,則GPIOx->BRR=0x0語句之后該位值還為1。若對其賦值1,則該位值變?yōu)?(即復位值),比如BRR的位0本來為1,則GPIOx->BRR=0x01語句之后該位值為0。

2.BSRR:對于高16位,與BRR相同。對于低16位,如果程序?qū)ζ淠翅樐_賦值0,則該針腳維持原值不變。若對其賦值1,則該位值變?yōu)?,比如BSRR的位0本來為0,則GPIOx->BRR=0x01語句之后該位值為1。


舉個例子,GPIOx->BRR=0x01與GPIOx->BSRR=0x01<<16相同,后者為通過0x01左移16位來控制高16位。

BRR、BSRR都可以做到假如只想改變位0的值,則不論其他位為何值,用一個等號就可以完成。

而ODR改變時則是全部改變。

比如16位本來為1010101010101010,經(jīng)過GPIOx->BSRR=0x01后變?yōu)?010101010101011,而經(jīng)過GPIOx->ODR=0x01后變?yōu)?000000000000001。


借用之前看到的一個例子,

GPIOE->BSRR = 0x80; // 置’1'

GPIOE->BRR = 0x80; // 置'0'

如果使用常規(guī)'讀-改-寫'的方法:

GPIOE->ODR = GPIOE->ODR | 0x80; // 置’1'

GPIOE->ODR = GPIOE->ODR & 0xFF7F; // 置’0'

二者作用相同。

附上官網(wǎng)手冊截圖:





本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉