|
今天在研究串口調(diào)試的時候發(fā)現(xiàn)了一個極其吊詭的現(xiàn)象。
單片機從下位機發(fā)送字符“A”(二進制 01000001)給上位機,但上位機始終受到的是“”(二進制00000101)
踩坑.png (194.16 KB, 下載次數(shù): 64)
下載附件
2021-1-6 11:33 上傳
于是乎我打開示波器,但發(fā)現(xiàn)其波形與理論上的波形沒有任何區(qū)別。
字符“A”.png (86.73 KB, 下載次數(shù): 67)
下載附件
2021-1-6 11:33 上傳
發(fā)送的 01000001 為何會變成 00000101。經(jīng)過分析后大概知道了其中的緣故。
無標題.png (17.3 KB, 下載次數(shù): 79)
下載附件
2021-1-6 11:33 上傳
由于停止位和下一個起始位離得太近。如果上位機非常不巧地把數(shù)據(jù)位當(dāng)成了起始位,那么所有的數(shù)據(jù)就完全錯位了,就像圖中那樣。
所以建議發(fā)送每個字節(jié)之間加上一點延時。防止這種極端的情況發(fā)生
|
評分
-
查看全部評分
|