stm32學(xué)習(xí)筆記(通用I/0寄存器)

M3系列的單片機(jī)的普通I/O口可以設(shè)計為輸入或者輸出模式,并且程序中間可以動態(tài)變換;輸入時可以配置為模擬輸入,浮空輸入,上拉/下拉輸入;輸出時可以配置為推挽輸出、開漏輸出、復(fù)用功能開漏輸出,同時也可以設(shè)置輸出I/O電平翻轉(zhuǎn)速度。

(1): 模擬輸入:一般作為ADC采集時使用。

(2):上拉/下拉輸入:引腳內(nèi)部接上拉/下拉電阻后作為輸入引腳。

(3):浮空輸入:引腳既沒有上拉也沒有下拉,懸空作為輸入,此時引腳為高阻態(tài)模式,當(dāng)外部沒有明確的高電平輸入時,引腳讀出的0和1沒有實(shí)際意義。

(4):開漏輸出:就是I/O不輸出電壓,在低電平接地,在高電平類似浮空,需要外接上拉電阻。

(5):推挽輸出:這種模式下,I/O引腳通過MOS管進(jìn)行輸出放大,輸出高電平平時為3.3v,輸出電流最大50mA,驅(qū)動能力比較強(qiáng)。

相關(guān)寄存器

(1):GPIOx_CRL(端口配置低寄存器) 每個I/O需要4位進(jìn)行輸入輸出的配置,每個寄存器32位,一個寄存器只配置8個引腳,M3每組端口一般有16個I/0引腳,所以有高低寄存器。

復(fù)位值:0x4444 4444?

(2):GPIOx_CRH(端口配置高寄存器),與GPIOx_CRL(端口配置低寄存器)配置一樣。

復(fù)位值:0x4444 4444

(3):GPIOx_IDR(端口輸入數(shù)據(jù)寄存器),0-15位端口輸入,這些位只讀,讀出值對應(yīng)I/O狀態(tài);16:31保留。讀出數(shù)據(jù)始終為0;

(4):GPIOx_ODR(端口輸出數(shù)據(jù)寄存器),0-15位:這些位可讀可寫;16:31保留。讀出數(shù)據(jù)始終為0;

(5):GPIOx_BSRR(端口位設(shè)置/清除寄存器);0-15(BS)位置1,16:31(BR)位復(fù)位;優(yōu)先級BS>BR;

(6):GPIOx_BRR(端口位清除寄存器);0-15(BR)復(fù)位,16:31位保留;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容