<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 相關(guān)寄存器(二)

STM32 GPIO 相關(guān)寄存器(二)

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏
STM32單片機,有了端口才能和外界聯(lián)系,學(xué)會(huì )了端口控制,才能更好地利用外設。建立和外界的聯(lián)系,發(fā)揮自身的優(yōu)點(diǎn)。
首先介紹一下基本的GPIO相關(guān)的寄存器
1,GPIOX_CRL 低8位端口配置寄存器
這個(gè)寄存器主要是對配置管腳是輸入還是輸出:
其中1)MODEy[1:0]主要是配置是輸入端口還是輸出端口的。配置為輸出得時(shí)候還可以配置輸出的管腳速度等級。
2)CNFy[1:0] 主要是兩種形式,在端口配置輸入的時(shí)候,即MODEy[1:0]位00(輸入),用來(lái)配置輸入的模式,主要是模擬輸入,浮空輸入,上拉模式和下拉模式。
3)CNFy[1:0]在端口配置為輸出的時(shí)候,用來(lái)控制輸入的模式。具體看手冊吧。
總得來(lái)說(shuō),就是MODEy[1:0] 先配置管腳是輸入還是輸出,是輸入就繼續配置CNFy[1:0]來(lái)配置輸出管腳的連接模式。要是輸出的話(huà),就繼續配置MODEy[1:0]的管腳速度速度等級,之后再配置管腳的連接模式。上拉,下拉,推免,開(kāi)漏等等。具體運用的時(shí)候看看手冊就明白了。
2,GPIOX_CRH高8位端口配置寄存器
和GPIOX_CRH 完全一樣,只是端口換成高8位了。不說(shuō)了,看看就明白了!
3,GPIOX_ODR端口輸出數據寄存器
學(xué)過(guò)AVR的都知道,輸出的時(shí)候有輸出數據寄存器,STM32也一樣。思想COPY過(guò)來(lái),就自然知道了GPIOX_ODR是做什么的了。不過(guò)要注意的是,這個(gè)玩意不能一個(gè)位一個(gè)位的去操作,還是51的簡(jiǎn)單啊,不過(guò)原子大哥已經(jīng)把那個(gè)端口映射可操作位段,不明白,還是看自己的吧。一個(gè)GPIOA端口就16位,自然的32位的GPIOX_ODR 就只有低16位有效了,想輸出什么就給這個(gè)寄存器賦值就OK了。
或者用GPIOA->ODR |=(1<ODR &=(0<
完成了這一步,我們就可以軟件延時(shí),控制輸出流水燈了。前提是開(kāi)啟設備時(shí)鐘哦。
4,GPIOX_IDR 端口輸入數據寄存器
這個(gè)寄存器用到的前提是端口配置為輸入模式時(shí)候。什么時(shí)候想讀取值,就什么時(shí)候讀取吧。大家都明白。
5,GPIOX_BSRR 端口位設置/清除寄存器
這個(gè)寄存器我用了一些,別的也不會(huì )。就感覺(jué)超級好用。用起來(lái)很方便。比如你端口配置好了。想PA5輸出“1”。就GPIOA->BSRR |=(1<<5);5是對應的哦。輸出“0”,一樣的
GPIO->BSRR |=(1<<(5+16));為什么加16,你明白的。
6,GPIOX_BRR 端口位清除寄存器
晚上百度了一下,有了GPIOX_BSRR 為什么還要有GPIOX_BRR ,沒(méi)看明白。有了拿來(lái)就用就對了。一樣的和GPIOx_BSRR一樣的用法。專(zhuān)門(mén)清除的。GPIOA->BRR |= (1<
7,端口配置鎖定寄存器GPIOX_LCKR,鎖定了當然就不能修改了。保護了。避免不小心造成的失誤。以后用到了在琢磨吧。


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

評論


技術(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>