1.除錯目標
mcu通過串列埠發資料到模組中,中間通過乙個232晶元,再通過乙個插座,最後轉接到模組中
模組中是乙個232晶元 + 控制晶元
結構順序:
板子mcu-->232晶元-->插座-->模組中-->232晶元
2.除錯步驟
(1)剛剛開始除錯的時候,思想很混亂,不知道從**開始除錯,先把**寫完,其實也不知道寫的什麼**,往板子上面一燒,程式果然跑不通,雖然百分百心裡有預備,但是還是忍不住的失望,但是工作還是要繼續。
不管怎麼說,第一步,肯定是檢查連線的線問題,**上述流程,明顯有個插座,檢查結束,沒啥用,主要還是太年輕,不同的按照順序來除錯,,
接下來公司同事一頓操作,,教學,,然後慢慢懂了這個過程,以及原理圖的**,有時候遇到困難並不是壞事,反而是經驗的累積和增加處理問題的能力。
廢話不多說,上除錯步驟,第一步,配置好除錯環境,這個特別的重要,不然後面除錯特別的痛苦,第二步,開始檢查,資料有沒有從mcu發出,經過除錯,回頭看來,這個經驗特別的重要,不管怎麼說,先看看資料有沒有發出時最主要的,通過示波器抓波形,發現是有資料的,這個相當的好。
第二步成功後,按照同事的建議,直接將mcu的tx,rx連線,自發自收,直接就可以排除問題了。這樣絕對是個好辦法,但是因為後面還有很多的路要走,這個先留在後面說。mcu發出資料後,至少證明我的初始化沒有問題,這樣有了基礎的條件了,然後看232 的原理圖發現:
觀察這部分電路,發現自己**裡面寫反了,這個是n構型的mos管,所以初始化的時候應該是高電平,使用的時候高電平,這個錯誤檢查好久才發現,不得不說,我們的程式設計應該根據原理圖來程式設計,不能一味的想當然,但是這個只是我寫的**的一小部分錯誤,後面還有更多的錯誤。
第三步要做的就是看這個232晶元轉出之後的資料對不對,其實在做這個的時候很糾結,因為要動手焊板子,很幸運之前焊了一段時間的板子,現在至少自己可以稍微動手,不得不說,作為乙個嵌入式工程師,焊板子是真的基礎知識,可以驗證自己的不少想法,也可以增加自己的動手能力。
這個步驟,我覺得採用乙個同事的方法,將tx和rx相連線,發現程式直接宕機了,不敢相信,但是事實證明還是程式有問題,對我打擊一大波的大,但是不得不承認,最後檢查**,用到iar除錯工具,慢慢除錯,最後發現是在中斷的時候,我們用的是串列埠2,但是在接受資料的時候,我取資料的物件是串列埠1,導致一直宕機,最後所幸發現了,然後對資料發現還是挺正確的。
3.總結
有時候心裡肯定很急躁,不願相信是自己的問題,但是不得不說,冷靜的思考還是很重要的。
在此種我們用232串列埠線除錯,直接除錯工具,看看自己**的資料通訊情況。
最後還有波特率的問題,以及電平不匹配的問題,tx,rx順序的問題,給對方板子供電的問題,滿滿的一大堆問題。
串列埠程式除錯總結
除錯能否成功一方面在於方法,另外很大程度上取決於個人的經驗。但是在除錯的時候,通常要遵循以下一些原則 1 確定錯誤的性質和位置 分析 思考與錯誤徵兆有關的資訊,避開死胡同。除錯工具只是一種輔助手段,充分利用vc自帶的除錯工具可以幫助思考,但不能代替思考。通常避免使用 試探法,最多只能將它當作最後的手...
串列埠程式除錯總結
除錯能否成功一方面在於方法,另外很大程度上取決於個人的經驗。但是在除錯的時候,通常要遵循以下一些原則 1 確定錯誤的性質和位置 分析 思考與錯誤徵兆有關的資訊,避開死胡同。除錯工具只是一種輔助手段,充分利用vc自帶的除錯工具可以幫助思考,但不能代替思考。通常避免使用 試探法,最多只能將它當作最後的手...
高速串列埠除錯總結
高速串列埠除錯總結 最近有個模組專案使用的是 qualcomm 6290 的bb,該晶元的 main uart 口支援高達 4mbps 的速率.由於一般 pc上的超級中端等最高僅支援 921600 的速率,因此給該 uart 口測試產生了一些難度 下面就簡要描述一下測試的過程.我們的測試想法是先讓模...