si26
si26
This guy hasn't written anything yet

注冊於 2 years ago

回答
1
文章
0
關注者
0

@ZYQ 感謝您的回答!只是您的回答對我來說沒有任何幫助。我大概也知道應該是代碼的問題,或者說應該是對這個U使用過程中規避一些坑的用法不熟悉;我如果貼代碼,只知道是串口部分的,具體貼哪段,如果知道了就不用在這裡尋求幫助了。所以,現在反馈的是測試過程和現象;如果您理解不了,還請原諒,個人表達能力有限。
值得慶幸的是,這個問題目前在群友4061N的幫助下已經解決!在次表示感謝!
下面我們說一下這個研究這個問題的原因,
我的串口部分程序是基於原廠固件庫修改而來的,因原廠固件庫有很多bug,0.6.0版本中斷發送方式是不能正常工作的,此處改了兩個地方,還有接收完後對指針進行減操作,在頻繁大批量傳輸時很不安全且會數據錯亂!
在校正了這些問題後,串口操作時仍然會偶爾死機的情況……由此特做了以上的測試!
官方固件對處理中斷的操作是先清中斷標識,然後讀取FIFO,會出現以上測試的情況;群友4061N的分析,是清過中斷後,由於FIFO中還存在數據,二次觸發了中斷!
最終,在讀取完FIFO後再清一次中斷,即可解決雙倍中斷的情況!
希望各位在使用串口的時候特別注意!
至於我在項目中出現的死機情況是否跟此有關,後續會做進一步測試,到時再告知大家,謝謝!
再次感謝群友4061N的幫助!

發布
問題