STM32 開發(fā)板入門教程 (一) GPIO
第一部份: GPIO 的基本應用和 IO 口的配置
第二部份: 外部中斷的使用
--------------------------------------------------------------------------
1: 設計要求:
2: 硬件電路:
3: 軟件程序設計:
(1) 根據(jù)要求配置 GPIOA 中的 PA0,PA1 為輸出, PA3, PA8 為輸入
對于下面程序中的
STM32 GPIO的十大優(yōu)越功能綜述
備注: 當STM32的GPIO端口設置為輸出模式時,有三種速度可以選擇:2MHz、10MHz和50MHz,這個速度是指I/O口驅(qū)動電路的速度,是用來選擇不同的輸出驅(qū)動模塊,達到最佳的噪聲控制和降低功耗的目的。
STM32 GPIO端口的輸出速度設置
備注: 共有8種模式,可以通過編程選擇:
模式7和模式8需根據(jù)具體的復用功能決定。
void GPIO_Configuration(void)
{
}
(2) 打開 GPIOA 的時鐘, 因為 STM32 是一個低功耗的 MCU , 每一個你使用的外圍設備都需要單獨開啟時鐘, 如果不開啟將不能使用, 這個也是對于 STM32 初學者容易疏忽的地方
STM32共有5種時鐘源,其中三種不同的時鐘源可用作為驅(qū)動系統(tǒng)時鐘(SYSCLK);
1、HSI 由內(nèi)部8MHz RC振蕩器產(chǎn)生,它是可以直接用來作為系統(tǒng)時鐘或經(jīng)2分頻后作為PLLSRC輸入。
HIS時鐘頻率在出廠時被校準在1%(25°C),在系統(tǒng)復位時,工廠校準值會被裝載到時鐘控制寄存器的HISCAL[7..0] 位。
用戶可以通過更改HISCAL[4..0]來調(diào)整HSI頻率。
另外時鐘寄存器中有一個HSIRDY位用來指示HSI RC是不穩(wěn)定工作,在時鐘啟過后,直到這個標志位置被硬件置1后,HSI RC時鐘才被輸出。
HSI RC時鐘還可以用時鐘寄存器中的HSION位來啟動和關閉。
HSI時鐘同時也是HSE晶體蕩振器的備用時鐘源。
使用HSE時鐘,程序設置時鐘參數(shù)流程:
1、將RCC寄存器重新設置為默認值
2、打開外部高速時鐘晶振HSE
3、等待外部高速時鐘晶振工作
4、設置AHB時鐘
5、設置高速AHB時鐘
6、設置低速速AHB時鐘
7、設置PLL
8、打開PLL
9、等待PLL工作
10、設置系統(tǒng)時鐘
11、判斷是否PLL是系統(tǒng)時鐘
12、打開要使用的外設時鐘
具體設置請參考下面的文章
STM32時鐘系統(tǒng)與軟件配置
STM32的時鐘系統(tǒng)分析
STM32 的時鐘與RTC
(3) 設置外部中斷, 所有的 GPIO 口都可以作為外部中斷源. 具體可以參考下面這篇文章.
STM32中外部中斷與外部事件
同樣不要忘記打開時鐘, 我們在打開 PA 口的時候已經(jīng)加上了 RCC_APB2Periph_AFIO, 這里再提醒大家一下.
最后就是編寫外部中斷入口函數(shù).
void EXTI3_IRQHandler(void)
{
}
不要忘記在中斷函數(shù)處理完成后清掉標志位,不然會不停的進入中斷.
(4) 編譯與調(diào)試
評論