STM32F4 HAL库开发 --时钟使能和配置
在STM32F4的HAL庫中,外設時鐘使能操作都是在RCC相關固件庫文件頭文件stm32f4xx_hal_rcc.h 定義的。外設時鐘使能在HAL庫中都是通過宏定義標識符來實現。首先,我們來看看GPIOA的外設時鐘使能宏定義標識符。
#define __HAL_RCC_GPIOA_CLK_ENABLE() do { \__IO uint32_t tmpreg = 0x00U; \SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOAEN);\/* Delay after an RCC peripheral clock enabling */ \tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOAEN);\UNUSED(tmpreg); \} while(0U)主要是定義了一個宏定義標識符__HAL_RCC_GPIOA_CLK_ENABLE(),它的核心操作是通過下面這行代碼實現的:
SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOAEN);
這行代碼的作用是,設置寄存器RCC->AHB1ENR的相關位為1。
我們只需要在我們的用戶程序中調用宏定義標識符__HAL_RCC_GPIOA_CLK_ENABLE()
就可以實現 GPIOA 時鐘使能。使用方法為:
對于其他外設,同樣都是在 stm32f4xx_hal_rcc.h頭文件中定義,大家只需要找到相關宏定義標識符即可,這里我們列出幾個常用使能外設時鐘的宏定義標識符使用方法。
__HAL_RCC_DMA1_CLK_ENABLE();//使能 DMA1 時鐘 __HAL_RCC_USART2_CLK_ENABLE();//使能串口 2 時鐘 __HAL_RCC_TIM1_CLK_ENABLE();//使能 TIM1 時鐘禁止某個外設時鐘使用方法和使能外設時鐘非常類似,同樣是頭文件定義的宏定義標識符。同樣以GPIOA為例,宏定義標識符為:
#define __HAL_RCC_GPIOA_CLK_DISABLE() \ (RCC->AHB1ENR &= ~(RCC_AHB1ENR_GPIOAEN))同樣,宏定義標識符__HAL_RCC_GPIOA_CLK_DISABLE()的作用是設置RCC->AHB1ENR寄存器的最低位為0,也就是禁止GPIOA時鐘。
我們這里同樣列出幾個常用的禁止外設時鐘的宏定義標識符使用方法:
總結
以上是生活随笔為你收集整理的STM32F4 HAL库开发 --时钟使能和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32F4 HAL库开发 -- 工程
- 下一篇: 互联网晚报 | 9月16日 星期四 |