1. 程式人生 > >建立keil工程並點亮STM32板子的LED燈(詳解)

建立keil工程並點亮STM32板子的LED燈(詳解)

開啟之前建立的工程,如下圖所示(keil工程的建立在之前的文章中有,不瞭解的同學可以翻一下上一篇文章。)


(上圖是已經建立完成的工程)

然後,再次開啟我們之前下載的對應開發板版本的例程包中的點亮LED燈的例程

(路徑為:en.stsw-stm32077 \STM32L1xx_StdPeriph_Lib_V1.3.1 \project\STM32L1xx_StdPeriph_Examples \GPIO \IOToggle)

找到mian.c檔案開啟,全選複製裡面的內容


再回到我們之前已經建立完畢的工程中,開啟mian.c檔案清空,並將GPIO檔案中的main.c裡面的內容貼上到我們工程的mian.c中。

此時可以看到有很多錯誤存在,下面就要修改程式了(因為例程中的很多引數的定義並不是準確對應到每一個板子的,所以要修改。而為了實現最簡單的led燈點亮功能,我們將多餘的程式刪除)

第一步,刪除兩段程式:


(上圖為刪除的第一段程式)


(上圖為需要刪除的第二段程式——while迴圈中的所有內容)

好了,現在主函式基本已經刪除完畢了。

第二步,看一下板子,我用的是STM32L152c-discovery,然後我的兩個LED燈的埠分別是PB7和PB6(後面的內容需要根據板子情況改)


所以,我要先把例程中的D埠改成B埠



(上述兩處均要改成B,因為我的LED燈連線的是B埠)

第三步,配置輸出模式


分別將 GPIO_PIN_X 和 GPIO_PIN_Y 改成 GPIO_Pin_6 和 GPIO_Pin_7 , 注意這裡有兩處要改,一處是將XY改成67,因為我的引腳是PB6和PB7,另一個是PIN要改成Pin,因為我這個版本的庫函式中定義的模式是這樣的。修改完畢後:


第四步,迴圈內容修改(控制led燈關鍵步驟)


在while中(剛才刪除第二段程式的地方)加入上圖所示程式。

第五步,新增Delay函式的宣告(此處不知道是我之前不小心把宣告誤刪了,還是例程中原本就沒有,如果你的有,就不用添加了)


到此,程式修改完成,rebuild,然後燒寫,就可以看到兩個led燈迴圈閃爍了。

特別強調,這裡面對程式的修改依賴於你板子本身的埠和連線情況,需要對號入座!(另外關於程式的解釋都在上面的圖片中了,只要兩段很簡單的程式就可以了!)