www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]用stm32 的配置GPIO 來控制LED 顯示狀態(tài),可用ODR,BSRR,BRR 直接來控制引腳輸出狀態(tài).ODR寄存器可讀可寫:既能控制管腳為高電平,也能控制管腳為低電平。管腳對于位寫1 gpio 管腳為高電平,寫 0 為低電平BSRR 只寫寄存

用stm32 的配置GPIO 來控制LED 顯示狀態(tài),可用ODR,BSRR,BRR 直接來控制引腳輸出狀態(tài).

ODR寄存器可讀可寫:既能控制管腳為高電平,也能控制管腳為低電平。

管腳對于位寫1 gpio 管腳為高電平,寫 0 為低電平

BSRR 只寫寄存器:[color=Red]既能控制管腳為高電平,也能控制管腳為低電平。
對寄存器高 16bit 寫1 對應(yīng)管腳為低電平,對寄存器低16bit寫1對應(yīng)管腳為高電平。寫 0 ,無動作

BRR 只寫寄存器:只能改變管腳狀態(tài)為低電平,對寄存器 管腳對于位寫 1 相應(yīng)管腳會為低電平。寫 0 無動作。

剛開始或許你跟我一樣有以下疑惑:

1.既然ODR 能控制管腳高低電平為什么還需要BSRR和SRR寄存器?
2.既然BSRR能實現(xiàn)BRR的全部功能,為什么還需要SRR寄存器?

對于問題 1 ------ 意法半導(dǎo)體給的答案是---

“This way, there is no risk that an IRQ occurs between the read and the modify access.”
什么意思呢?就就是你用BSRR和BRR去改變管腳狀態(tài)的時候,沒有被中斷打斷的風(fēng)險。也就不需要關(guān)閉中斷。

用ODR操作GPIO的偽代碼如下:

disable_irq()
save_gpio_pin_sate = read_gpio_pin_state();
save_gpio_pin_sate = xxxx;
chang_gpio_pin_state(save_gpio_pin_sate);
enable_irq();

關(guān)閉中斷明顯會延遲或丟失一事件的捕獲,所以控制GPIO的狀態(tài)最好還是用SBRR和BRR

對于問題 2 ------- 個人經(jīng)驗判斷意法半導(dǎo)體僅僅是為了程序員操作方便估計做么做的。

因為BSRR的 低 16bsts 恰好是set操作,而高16bit是 reset 操作 而BRR 低 16bits 是reset 操作。

簡單地說GPIOx_BSRR的高16位稱作清除寄存器,而GPIOx_BSRR的低16位稱作設(shè)置寄存器。

另一個寄存器GPIOx_BRR只有低16位有效,與GPIOx_BSRR的高16位具有相同功能。

舉個例子說明如何使用這兩個寄存器和所體現(xiàn)的優(yōu)勢。

例如GPIOE的16個IO都被設(shè)置成輸出,而每次操作僅需要

改變低8位的數(shù)據(jù)而保持高8位不變,假設(shè)新的8位數(shù)據(jù)在變量Newdata中,

這個要求可以通過操作這兩個寄存器實現(xiàn),STM32的固件庫中有兩個函數(shù)

GPIO_SetBits()和GPIO_ResetBits()使用了這兩個寄存器操作端口。

上述要求可以這樣實現(xiàn):

GPIO_SetBits(GPIOE, Newdata & 0xff);
GPIO_ResetBits(GPIOE, (~Newdata & 0xff));

也可以直接操作這兩個寄存器:

GPIOE->BSRR = Newdata & 0xff;
GPIOE->BRR = ~Newdata & 0xff;

當(dāng)然還可以一次完成對8位的操作:

GPIOE->BSRR = (Newdata & 0xff) | ( (~Newdata & 0xff)<<16 );

當(dāng)然還可以一次完成對16位的操作:

GPIOE->BSRR = (Newdata & 0xffff) | ( (~Newdata )<<16 );

從最后這個操作可以看出使用BSRR寄存器,可以實現(xiàn)8個端口位的同時修改操作。

有人問是否BSRR的高16位是多余的,請看下面這個例子:

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

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

BSRR還有一個特點,就是Set比Reset的級別高,

就是說同一個bit又做Set又做Reset,最后結(jié)果是Set

要同步變化只要簡單的 GPIOx->BSRR = 0xFFFF0000 | PATTEN;

即可,不用考慮哪些需要置1,哪些需要清零

從最后這個操作可以看出使用BSRR寄存器,可以實現(xiàn)8個端口位的同時修改操作。


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

Sept. 10, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《全球電動車逆變器市場數(shù)據(jù)》,2025年第二季受惠純電動車(BEV)銷售成長,全球電動車(注1)牽引逆變器裝機量達(dá)766萬臺,年增19%。...

關(guān)鍵字: 增程式電動車 SiC 牽引逆變器

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達(dá)) Blackwell平臺規(guī)模化出貨,以及北美CSP業(yè)者持續(xù)擴大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機,除了外觀辨識度升級,處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場趨勢與技術(shù)分析》報告,2025年隨著國際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價上漲、出貨量顯著增長,加上HBM出貨規(guī)模擴張,整體營收為3...

關(guān)鍵字: DRAM 智能手機 ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國市場消費補貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機、筆電/PC、Server新品所需帶動,整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場政策推動,整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達(dá))近日推出的Jetson Thor被視為機器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機器人 大型語言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過程也需要保護。鋰電池的放電電壓不能低于3.0V,否則電池壽命會大幅縮短。為了實現(xiàn)這一保護,工程師們設(shè)計了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池
關(guān)閉