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