|
|
實(shí)驗(yàn) 1 LED 閃爍實(shí)驗(yàn)
STM32 最簡(jiǎn)單的外設(shè)莫過于 IO 口的高低電平控制了,本章將通過一個(gè)經(jīng)典
的 LED 閃爍程序,帶大家開啟 STM32 之旅, 通過本章的學(xué)習(xí), 你將了解到
STM32 的 IO 口作為輸出使用的方法。在本章中我們將通過代碼控制普中科技
STM32 開發(fā)板上的 8個(gè) LED,實(shí)現(xiàn)閃爍燈的效果。 本章分為以下學(xué)習(xí)目標(biāo):
1、 了解 STM32用有幾種 GPIO模式。
2、 怎么學(xué)會(huì)設(shè)置 STM32的GPIO輸出控制 LED燈。
1.1 硬件設(shè)計(jì)
首先我們來看一下我們開發(fā)板上面 LED的接線圖:
0.png (78.75 KB, 下載次數(shù): 74)
下載附件
2017-5-6 19:47 上傳
0.png (95.28 KB, 下載次數(shù): 68)
下載附件
2017-5-6 19:47 上傳
LED 燈接線圖
從上面的圖,我們可以看到 LED 燈是接到單片機(jī)的 PC 口的 PC0 到 PC7。而
點(diǎn) 亮一盞LED的原理就是把相應(yīng)LED接到單片機(jī)的相應(yīng)的IO口輸出低電平, IO
口 輸出為高電平就能夠熄滅 LED,所以要實(shí)現(xiàn) LED閃爍也就是將單片機(jī) PC管腳
每間隔一段時(shí)間不輸出一個(gè)高低電平脈沖即可。
1.2: STM32 的IO 口簡(jiǎn)介
本章將要實(shí)現(xiàn)的是控制普中科技 STM32開發(fā)板上的8個(gè) LED 實(shí)現(xiàn)LED燈閃
爍的效果, 該實(shí)驗(yàn)的關(guān)鍵在于如何控制 STM32 的 IO 口輸出。了解了 STM32 的
IO 口如何輸出的,就可以實(shí)現(xiàn)閃爍燈了。通過這一章的學(xué)習(xí), 你將初步掌握
STM32 基本 IO 口的使用,而這是邁向 STM32 的第一步。這一章節(jié)因?yàn)槭堑谝?br />
個(gè)實(shí)驗(yàn)章節(jié),所以我們?cè)谶@一章將講解一些知識(shí)為后面的實(shí)驗(yàn)做鋪墊。在講解
STM32 的 GPIO之前,首先打開我們光盤的第一個(gè)實(shí)驗(yàn)工程 LED 閃爍實(shí)驗(yàn),可以
看到我們的實(shí)驗(yàn)工程目錄:
接下來我們逐一講解一下我們的工程目錄下面的組以及重要文件。
① StdPeriph_Driver 下面存放的是 ST 官方提供的固件庫(kù)函數(shù),里面的函數(shù)我
們可以根據(jù)需要添加和刪除,這里面的文件內(nèi)容用戶不需要修改。
② Startup 下面存放的是固件庫(kù)必須的啟動(dòng)文件。這里面的文件用戶不需要修
改。
③ cmsis 下面存放的是固件庫(kù)必須的核心文件。這里面的文件用戶不需要修改。
④ APP 下面存放的是每個(gè)實(shí)驗(yàn)的外設(shè)驅(qū)動(dòng)代碼,他的實(shí)現(xiàn)是通過調(diào)用
StdPeriph_Driver 內(nèi) 的 固 件 庫(kù) 文 件 實(shí) 現(xiàn) 的 , 比 如 led.c 里 面 調(diào) 用
stm32f10x_gpio.c 里面的函數(shù)對(duì) led 進(jìn)行初始化,這里面的函數(shù)是講解的重
點(diǎn)。 后面的實(shí)驗(yàn)中可以看到會(huì)引入多個(gè)源文件。
⑤ user 下面存放的主要是用戶代碼。 stm32f10x_it.c 里面存放的是中斷服
務(wù)函數(shù),public存放的是公用函數(shù),Main.c 函數(shù)主要存放的是主函數(shù)了,這個(gè)
大家應(yīng)該很清楚。
準(zhǔn)備內(nèi)容我們就講解到這里,接下來我們就要進(jìn)入我們 LED 閃爍實(shí)驗(yàn)的講解
部分了。 這里需要說明一下,我們?cè)谥v解固件庫(kù)之前會(huì)首先對(duì)重要寄存器進(jìn)行
一個(gè)講解,這樣是為了大家對(duì)寄存器有個(gè)初步的了解。大家學(xué)習(xí)固件庫(kù),并不需
要記住每個(gè)寄存器的作用,而只是通過了解寄存器來對(duì)外設(shè)一些功能有個(gè)大致的
了解,這樣對(duì)以后的學(xué)習(xí)也很有幫助。
首先要提一下,在固件庫(kù)中,GPIO 端口操作對(duì)應(yīng)的庫(kù)函數(shù)函數(shù)以及相關(guān)定
義在文件 stm32f10x_gpio.h 和 stm32f10x_gpio.c 中。STM32 的 IO 口相比
51 而言要復(fù)雜得多,所以使用起來也困難很多。 首先 STM32 的 IO 口可以由
軟件配置成如下 8 種模式:
0.png (67.52 KB, 下載次數(shù): 88)
下載附件
2017-5-6 19:48 上傳
0.png (190.03 KB, 下載次數(shù): 70)
下載附件
2017-5-6 19:50 上傳
余下內(nèi)容請(qǐng)下載附件
源碼:
- *
- --------------------------------------------------------------------------------
- * 實(shí) 驗(yàn) 名 : LED燈閃爍實(shí)驗(yàn)
- * 實(shí)驗(yàn)說明 : 通過delay延時(shí)實(shí)現(xiàn)LED燈閃爍效果
- * 連接方式 :
- * 注 意 : 延時(shí)函數(shù)及顯示函數(shù)在led.c文件內(nèi)
- *******************************************************************************/
- #include "public.h" //公共函數(shù)頭文件
- /****************************************************************************
- * Function Name : main
- * Description : Main program.
- * Input : None
- * Output : None
- * Return : None
- ****************************************************************************/
- int main()
- {
- LED_Init(); //LED端口及時(shí)鐘初始化
- while(1)
- {
- led_display(); //led顯示
- }
- }
復(fù)制代碼
0.png (47.98 KB, 下載次數(shù): 93)
下載附件
2017-5-6 19:54 上傳
余下內(nèi)容請(qǐng)下載附件:
32單片機(jī)LED閃爍.zip
(2.08 MB, 下載次數(shù): 52)
2017-5-6 09:28 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|