DSP665x串列埠接收一段時間後不響應串列埠中斷

2021-10-07 20:07:03 字數 684 閱讀 6392

使用的平台是6657,專案中需要使用dsp自帶的串列埠接收資料,接收頻率是100hz,但是接收一段時間之後,串列埠中斷突然不響應了,但是外部確實還在輸入資料,用串列埠助手將資料接收下來,一看,資料也沒問題,那麼最大的可能是dsp出問題了,沒有響應串列埠中斷。

因此開始排查問題。

從串列埠的驅動配置到引數設定都檢視了一下,系統中有三個中斷,串列埠中斷的優先順序低於另兩個中斷,首先懷疑到是否因為串列埠中斷在執行過程中被另外兩個中斷打斷了,導致串列埠異常。

有了思路,修改程式:在4~15個可遮蔽中斷中,將串列埠中斷的優先順序設定到最高,另外兩個中斷的優先順序降低,實驗,發現問題依舊:串列埠仍然接收一段時間資料就不響應中斷了。

再次修改:把系統中的其他中斷和任務全部關閉,系統中只留下串列埠中斷,實驗,發現問題依舊。。。。。

看來偷懶是不行了,翻開uart的資料手冊,同時將ccs的暫存器檢視欄開啟,乙個乙個對暫存器,看暫存器狀態。。。。

發現lsr暫存器的0bit為「1」,而我將串列埠設定的是fifo模式,因此就說明,fifo中有資料未完全讀出,串列埠模組就在這一直等fifo為空。。。

因此修改讀uart的方式,使用while迴圈讀,直到fifo為空。

修改之後測試,長時間執行串列埠接收正常。。

歡迎同行**。

最近一段時間

嗯。乙個是從那時候開始忙了一段時間,然後就沒有時間寫博,而且那段時間也緊張,還有就是人的劣根性 惰性。從那時候開始,大概過了一周5.30號的進候辭職了,因為拿到了南京一家公司的offer,很快,大概是週三面試,周五面試,周五下午發offer。然後周一去辭職的。一切都是這麼快。其實為什麼決定這麼快,因...

告別一段時間

不談過去。在這個學期,認真的做好兩個地理資訊系統。畢業 不用去管。初步的想法,是空間資料結構和演算法,空間資料探勘和知識發現,smartclient webservice和空間資訊網格三部分。第一部分,是很最重要的,也是最實在的,最具有挑戰性的,第二部分,其實就是吹牛,第三部分,也是很重要的,主要是...

告別了一段時間

時間長了就想寫這篇文章!其實,這是不是真的文章,依靠的就是自己乙個警鐘。或者提示。不得不踏上了六個月的旅程再次考研,去年考研的三個月。加上考研之後的一段時間去找學校調劑,找工作去實習,總感覺跟自己的想法漸行漸遠,這裡鄭重宣告 不是說找工作不好。就是本人比較喜歡玩一些有意思的東西,可能就不是非常喜歡去...