串口通信調試總結

 

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順序的問題,給對方板子供電的問題,滿滿的一大堆問題。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章