|
每個(gè)通用IO口都有兩個(gè)32位的配置寄存器(GPIOx_CRL, GPIOx_CRH),兩個(gè)32位的數(shù)據(jù)寄存器 (GPIOx_IDR, GPIOx_ODR), 一個(gè)32位的set/reset寄存器 (GPIOx_BSRR),一個(gè)16位的reset寄存器(GPIOx_BRR),一個(gè)32位的鎖定寄存器(GPIOx_LCKR).
每個(gè)general purpose io口都可以獨(dú)立配置為以下八種模式的其中一種,浮空輸入,上拉輸入,下拉輸入,模擬輸入,開漏輸出,推挽輸出,復(fù)用開漏輸出,復(fù)用推挽輸出。
每個(gè)io口都可以獨(dú)立配置,但是寄存器只能32位的訪問,不支持半個(gè)字的訪問和位訪問,GPIOx_BSRR和GPIOx_BRR寄存器允許對(duì)任何gpio寄存器的讀和修改獨(dú)立訪問,這樣,在讀和修改訪問之間產(chǎn)生IRQ時(shí)不會(huì)有風(fēng)險(xiǎn)。
stm32的io口是3.3V的但兼容5V輸入,在3.3V供電的stm32芯片中,要輸出5V電平,只需將io口配置為開漏輸出然后接上拉電阻即可。
復(fù)位后stm32的io口默認(rèn)為浮空輸入模式 (CNFx[1:0]=01b, MODEx[1:0]=00b). JATG管腳為上拉或下拉模式,
PA15: JTDI 上拉 PA14: JTCK 下拉 PA13: JTMS 上拉 PB4: JNTRST 上拉 。
當(dāng)配置為輸出模式時(shí)被寫入輸出數(shù)據(jù)寄存器 (GPIOx_ODR) 里的值在管腳上輸出,可能用推挽輸出和開漏輸出(輸出低電平時(shí)僅NMOS使能)。
在每個(gè)APB2時(shí)鐘下 Input Data register (GPIOx_IDR) 捕獲io口的狀態(tài)。
每個(gè)GPIO口內(nèi)部有弱上拉電阻和弱下拉電阻,輸入時(shí)可選使能。
|
|