|
在STM32單片機(jī)中,要想使用外設(shè)首先要開啟其時(shí)鐘。例如我們要使用單片機(jī)的GPIOA那么首先我們需要開啟GPIOA的對(duì)應(yīng)時(shí)鐘,完后我們才能對(duì)GPIOA端口進(jìn)行配置。那么GPIOA的時(shí)鐘該依據(jù)什么配置呢?STM32單片機(jī)有個(gè)時(shí)鐘樹,我們可以通過時(shí)鐘樹看GPIOA掛載那個(gè)時(shí)鐘樹上完后進(jìn)行對(duì)應(yīng)的配置。 STM32時(shí)鐘樹 通過上面的時(shí)鐘樹圖我們可以看到STM32單片機(jī)的ADC,USART、GPIOABCDEF等外設(shè)都掛載在APB2總線上,所以我們?cè)谂渲脮r(shí)鐘的時(shí)候只需要如下圖配置即可。 開啟GPIOA端口時(shí)鐘 通過上圖我們就打開了GPIOA端口的時(shí)鐘。接下來我們就開始配置端口了,所謂配置端口就是你想要把GPIOA的哪個(gè)引腳配置成輸入或者是輸出。 端口配置 通過上述配置我們就將GPIOA的端口1配置成了輸出。接下來我們就可以用STM32庫函數(shù) GPIO庫函數(shù) 在GPIO庫函數(shù)中包含了對(duì)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ā)變得簡(jiǎn)單了許多。 |
|
|