在STM32單片機(jī)中,要想使用外設(shè)首先要開啟其時鐘。例如我們要使用單片機(jī)的GPIOA那么首先我們需要開啟GPIOA的對應(yīng)時鐘,完后我們才能對GPIOA端口進(jìn)行配置。那么GPIOA的時鐘該依據(jù)什么配置呢?STM32單片機(jī)有個時鐘樹,我們可以通過時鐘樹看GPIOA掛載那個時鐘樹上完后進(jìn)行對應(yīng)的配置。 STM32時鐘樹 通過上面的時鐘樹圖我們可以看到STM32單片機(jī)的ADC,USART、GPIOABCDEF等外設(shè)都掛載在APB2總線上,所以我們在配置時鐘的時候只需要如下圖配置即可。 開啟GPIOA端口時鐘 通過上圖我們就打開了GPIOA端口的時鐘。接下來我們就開始配置端口了,所謂配置端口就是你想要把GPIOA的哪個引腳配置成輸入或者是輸出。 端口配置 通過上述配置我們就將GPIOA的端口1配置成了輸出。接下來我們就可以用STM32庫函數(shù) GPIO庫函數(shù) 在GPIO庫函數(shù)中包含了對IO操作的所有函數(shù),我們直接使用就可以。打開GPIO.H一直下啦到底我們可以看到如下函數(shù)。 API函數(shù) 其中void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函數(shù)用來將端口拉高也就是輸出高電平1 例如: GPIO_SetBits(GPIOA, GPIO_Pin_1);這樣我們就將GPIOA1端口置為高電平。同樣GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 用來將端口置為低電平。同樣我們將GPIOA端口設(shè)置為低電平:GPIO_ResetBits(GPIOA,GPIO_Pin_1);是不是省去了復(fù)雜的寄存器配置。讓開發(fā)變得簡單了許多。 |
|