STM32單片機I

在STM32單片機中,要想使用外設首先要開啟其時鐘。例如我們要使用單片機的GPIOA那麼首先我們需要開啟GPIOA的對應時鐘,完後我們才能對GPIOA端口進行配置。那麼GPIOA的時鐘該依據什麼配置呢?STM32單片機有個時鐘樹,我們可以通過時鐘樹看GPIOA掛載那個時鐘樹上完後進行對應的配置。


STM32單片機I/O口初探

STM32時鐘樹

通過上面的時鐘樹圖我們可以看到STM32單片機的ADC,USART、GPIOABCDEF等外設都掛載在APB2總線上,所以我們在配置時鐘的時候只需要如下圖配置即可。

STM32單片機I/O口初探

開啟GPIOA端口時鐘

通過上圖我們就打開了GPIOA端口的時鐘。接下來我們就開始配置端口了,所謂配置端口就是你想要把GPIOA的哪個引腳配置成輸入或者是輸出。

STM32單片機I/O口初探

端口配置

通過上述配置我們就將GPIOA的端口1配置成了輸出。接下來我們就可以用STM32庫函數

STM32單片機I/O口初探

GPIO庫函數

在GPIO庫函數中包含了對IO操作的所有函數,我們直接使用就可以。打開GPIO.H一直下啦到底我們可以看到如下函數。

STM32單片機I/O口初探

API函數

其中void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函數用來將端口拉高也就是輸出高電平1

例如: GPIO_SetBits(GPIOA, GPIO_Pin_1);這樣我們就將GPIOA1端口置為高電平。同樣GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 用來將端口置為低電平。同樣我們將GPIOA端口設置為低電平:GPIO_ResetBits(GPIOA,GPIO_Pin_1);是不是省去了複雜的寄存器配置。讓開發變得簡單了許多。


分享到:


相關文章: