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