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