都是串口工具惹的禍
五一假期這幾天,魚鷹準備寫一個方便使用、移植的串口框架(適用于 STM32、GD32),花了幾天時間,終于把 DMA 發送、接收的框架寫好了,進入了最終的測試階段。
于是魚鷹使用 XCOM 這個串口工具準備測試一波。
畢竟之前用的時候,感覺也還行,沒啥大問題,比較穩定,一般串口穩定性測試的時候都用它。
不過這次通過定時 20 ms 發送字符串的方式驗證串口接收程序,發現工具發送的字節數和單片機接收的字節數總是對不上。
剛開始幾百 K 字節,是沒問題的,當達到 1 M 左右字節時,發現總是單片機接收的字節數大于工具顯示的已發送字節數,莫名其妙(從這得到經驗,代碼測試一定要經過長時間測試才行)。
魚鷹對自己寫的無鎖隊列串口程序還是比較自信的《終極串口接收方式,極致效率》《附源碼-終極串口接收(二)》,畢竟驗證了多年,雖然這次為了減少空間使用,稍微修改了一下代碼,但也檢查了使用這些變量的位置,并沒有發現問題。
所以,出于對自己的自信,懷疑是串口工具出現了問題,于是準備搬出魚鷹學習 51 時的老古董工具:STC -ISP
同樣的代碼,同樣的字符串,同樣的 20 ms 定時發送,發現不管是短期測試,還是長期測試,工具顯示的發送數據長度和代碼打印的接收數據長度總是保持一致,這說明魚鷹的接收程序不存在問題。
這下石錘了,XCOM 工具有問題!
虧咱那么信任它。果然除了自己,誰都要持懷疑態度。
做技術就是如此,懷疑所有,直到你通過測試消除你的懷疑。
STC 這款多功能工具,魚鷹也是用了很久了,大學四年+工作一年都在用它的串口功能,直到后來,用了 XCOM,感覺也不錯,而 STC-ISP 軟件,如果串口拔出,操作不當(沒有關閉串口的情況下直接發送數據),會導致該工具卡死(只能通過任務管理器關閉,很煩),而且界面做的也不是很好,于是棄用了。
不過現在看來,有些工具看著很 LOW,真正用起來,核心功能還是非常給力的,不應該有了新歡,忘了舊愛。
最后,最近微信出了顯示 IP 歸屬地的功能,大家可以在此留言看看自己的歸屬地在哪,是不是還在國內。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
加速度計相關文章:加速度計原理