STM32 端口复用与重映射及低功耗引脚配置
STM32 端口復(fù)用與重映射及低功耗引腳配置
什么是復(fù)用?
在TSM32里面,大部分的引腳都是有GPIO復(fù)用功能,也就是說,一個 GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么當(dāng)這個 GPIO 作為內(nèi)置外設(shè)使用的時候,就叫做復(fù)用。
配置步驟
詳細步驟為:
1)首先 GPIO 端口時鐘使能。因為要使用到端口復(fù)用,當(dāng)然要使能該端口的時鐘了。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2)復(fù)用的外設(shè)時鐘使能。比如你要將端口 PA9,PA10 復(fù)用為串口,所以要使能串口時鐘。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
3)端口模式配置。?
在 IO 復(fù)用位內(nèi)置外設(shè)功能引腳的時候,必須設(shè)置 GPIO 端口的模式,至于在復(fù)用功能下 GPIO 的模式是怎么對應(yīng)的,這個可以查看手冊《STM32 中文參考手冊 V10》(根據(jù)引腳配置不同的)
總結(jié):我們在使用復(fù)用功能的是時候,最少要使能 2 個時鐘!!!!
什么是重映射?
為了使不同器件封裝的外設(shè) IO 功能數(shù)量達到最優(yōu),可以把一些復(fù)用功能重新映射到其他一些引腳上,目的為了讓設(shè)計工程師可以更好地安排引腳的走向和功能,在 STM32 中引入了外設(shè)引腳重映射的概念,即一個外設(shè)的引腳除了具有默認的端口外,還可以通過設(shè)置重映射寄存器的方式,把這個外設(shè)的引腳映射到其它的端口。簡單的講就是把管腳的外設(shè)功能映射到另一個管腳去使用,但是不是可以隨便映射的,根據(jù)手冊是否可以映射。
配置步驟
1)使能 GPIOB 時鐘:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
2)使能串口 1 時鐘:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//因為用到了復(fù)用功能,則要使能時鐘
3)使能 AFIO 時鐘:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
4)開啟重映射:
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
5)端口模式配置:
?
低功耗引腳配置:
1.將未使用的GPIO輸入配置為模擬輸入
GPIO始終有一個輸入通道,可以是數(shù)字或模擬通道。
如果不需要讀取GPIO數(shù)據(jù),則優(yōu)先配置為模擬輸入。這節(jié)省了輸入施密特觸發(fā)器的消耗。
當(dāng) I/O 端口被配置為模擬輸入配置時:
? ?輸出緩沖器被禁止
? ?禁止施密特觸發(fā)輸入,實現(xiàn)了每個模擬I/O引腳上的零消耗。施密特觸發(fā)輸出值被強
置為’0’
? ?弱上拉和下拉電阻被禁止
? ?讀取輸入數(shù)據(jù)寄存器時數(shù)值為’0’。
2.調(diào)節(jié)GPIO速度
上升時間,下降時間和最大頻率可使用GPIOx_OSPEEDR配置寄存器進行配置。
這種調(diào)整對EMI(電磁干擾)和SSO(同時開關(guān)輸出)有影響,因為開關(guān)電流峰值較高。因此必須平衡GPIO性能與噪聲。
每個GPIO信號的上升時間和下降時間必須適應(yīng)與相關(guān)信號頻率和電路板容性負載兼容的最小值。
3.不使用時禁用GPIO寄存器時鐘
如果某個GPIO組不需要長時間使用,請使用HAL_RCC_GPIOx_CLK_DISABLE()函數(shù)禁用其時鐘。
4.進入低功耗模式時配置GPIO
進入低功耗模式時,所有引腳信號必須連接到VDD或接地。
如果GPIO連接到外部接收器(外部元件輸入),則必須使用PP或PU/PD強制GPIO信號值。
當(dāng)GPIO連接到驅(qū)動器(外部元件輸出或總線)時,驅(qū)動器必須提供有效電平( VDD或接地)。如果未定義驅(qū)動器電平,則必須使用PU/PD強制GPIO上的信號。
出于實際原因,當(dāng)GPIO是運行模式下的輸入(模擬或數(shù)字)時,在低功耗模式下使用輸入PU/PD可能更容易;當(dāng)GPIO是運行模式下的輸出時,則使用輸出PP。這可以避免在進入或退出停止模式時管理更改。
5.退出關(guān)機模式
退出關(guān)機模式時, GPIO會在上電復(fù)位時重新配置為默認值。
在將它們重新編程為正確值之前,這會需要額外的系統(tǒng)消耗。
如果這是應(yīng)用程序的問題,則必須使用待機模式替代關(guān)機模式。
總結(jié)
以上是生活随笔為你收集整理的STM32 端口复用与重映射及低功耗引脚配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言中最常用标准库
- 下一篇: SPI/I2S调试心得与经验总结