內載了demo程序,上電如圖所示。
0.png (828.06 KB, 下載次數: 94)
下載附件
2016-6-17 22:47 上傳
0.png (658.92 KB, 下載次數: 78)
下載附件
2016-6-17 22:47 上傳
首先,說一下環境的搭建。 萬事開頭難,這句話也應驗在STM32L476的調試中。因為我使用的編譯環境是keil5.11,這里怎么都找不到stm32L476的影子。于是乎,嘗試安裝keil5.15,記得之前我在一臺機子上,調試GD103的時候,也遇到如此問題。所以,這個問題對于我來說,可能比較容易,但是對于沒有使用高版本keil的TX來說,有點小難。 其次,說一下串口模塊的調試。 隨著點擊藍色按鈕的次數不同,綠色閃爍燈的閃爍頻率也不同(三種輪訓進行)。 有了指示燈的顯示,無疑減少了開發的難度。 一般上,玩一個開發板,都是從指示燈和信號數據開始的。既然有了指示燈,那就繼續開始通信接口的調試吧。先從串口開始。 在通信接口中,串口是比較簡單,而且常用的接口。 由原理圖文檔《MB1136.pdf》的截圖,我們選擇PA9/PA10作為調試串口管腳。
0.png (108.79 KB, 下載次數: 82)
下載附件
2016-6-17 22:46 上傳
我做了三個實驗: 第一個實驗:串口對發。利用軟件包中提供的串口例程,有中斷方式,有polling方式,但前提都是需要兩塊板子。借助于之前調試過的stm32f072開發板。
http://v.youku.com/v_show/id_XMTM3MDk5MDU4MA==.html
實驗完成之后,對串口代碼調試中遇到的問題,進行總結。 第一, 習慣于STM32F407的代碼調試之后,突然發現,nucleo版本的代碼庫,突然讓我找不到方向。著急之下,我強行把代碼移植過來,然后邊編譯,邊改寫宏等代碼定義。IO口的修改完成之后,突然發現串口代碼完全不同,而且中斷都沒有找到。放下板子,冷靜了兩天,重新拾起L476的代碼之后,心里在想,既然工程師把這樣的代碼整理成包,就說明必有高明之處。于是乎,開始靜下心來,研究代碼。 第二, 研究串口代碼N天之后,感覺到代碼的高明之處,內心非常欽佩如此的代碼邏輯安排。其實,對于底層驅動代碼熟悉的工程師或者興趣愛好者來說,可能這不算的什么,但能寫出一套驅動代碼,也并非一蹴而就。明白之后,頓覺收獲匪淺。 第三, 實驗簡單,但耗費我幾天的功夫,希望后續更多模塊調試成功。比如12864的調試,激光測距調試,頻率合成器調試等等,都是我最擅長的調試。
【經驗】 1、 小結 (1) main開始,進行模塊初始化;初始化過程中,包含管腳的功能定義,并會調用stm32l4xx_hal_tim.c或者stm32l4xx_hal_spi.c (驅動文件); (2) 驅動文件中,會調用HAL_TIM_Base_MspInit(htim)或者HAL_SPI_MspInit(htim); (3) HAL_TIM_Base_MspInit(htim)或者HAL_SPI_MspInit(htim)函數中,包含有中斷的初始化;同時,在stm32l4xx_it.c內,定義中斷函數; 中斷函數會再次調用驅動文件stm32l4xx_hal_tim.c或者stm32l4xx_hal_spi.c內的xxxxHandle函數(比如:HAL_TIM_IRQHandler函數),該函數內有相應的回調函數,回調函數內,用戶可以自由發揮,比如定時器中斷時要干啥,或者接收到數據等等。 |
|