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