|
stm32f103單片機(jī)做通信控制,發(fā)送的數(shù)據(jù)總是不對。抄了網(wǎng)上各種發(fā)送程序,禁止編譯器優(yōu)化等都試遍了。實在不知道錯在哪里,請網(wǎng)友幫忙指教。比如說我要發(fā)送的數(shù)據(jù):0x5a 0xa5 0x03 0x10 0x20 0x30 ;
上面0x5a 0xa5是幀頭,0x03是后面要發(fā)送的數(shù)據(jù)量(這里是3個), 0x10 0x20 0x30 就是要發(fā)送的數(shù)據(jù)了。
下面的圖片是我試著從發(fā)送一個字節(jié)到發(fā)送7個字節(jié)時收到了數(shù)據(jù)截圖,好給大伙分析;
最先發(fā)送一個字節(jié),是外圍接了一個按鈕,按一次發(fā)送一次。
圖9.jpg (57.87 KB, 下載次數(shù): 69)
下載附件
2021-5-6 15:31 上傳
發(fā)送一個字節(jié)后串口助手接收到正確的數(shù)據(jù)
圖10.jpg (103.96 KB, 下載次數(shù): 71)
下載附件
2021-5-6 15:31 上傳
從一次發(fā)送兩個字節(jié)開始接收就不對了
圖11.jpg (58.38 KB, 下載次數(shù): 70)
下載附件
2021-5-6 15:31 上傳
第一次按按鈕,接收到的是0x5a。沒錯,第一次只能收到一個字節(jié),按道理應(yīng)該接收到0x5a 0xa5。從第二次開始接收到的數(shù)據(jù)時0xa5 0x5a,這是一次收到了兩個字節(jié)但反了順序。不知道程序錯在哪里,求指點!
圖12.jpg (104.1 KB, 下載次數(shù): 76)
下載附件
2021-5-6 15:31 上傳
后面是發(fā)送3個字節(jié)
圖13.jpg (58.01 KB, 下載次數(shù): 67)
下載附件
2021-5-6 15:31 上傳
沒讓我失望,接收的還是2個字節(jié)。但從這里開始,接收到的都已經(jīng)不是原來發(fā)送了的數(shù)據(jù)了。發(fā)送的0x5a 0xa5 0x03已經(jīng)變成了0x5a 0x3f兩個字節(jié)了。
圖14.jpg (104.63 KB, 下載次數(shù): 63)
下載附件
2021-5-6 15:31 上傳
后面的我也懶得打字了,都是少了一個字節(jié)。0xa5 0x03 都變成了 0x3f。
圖15.jpg (58.2 KB, 下載次數(shù): 68)
下載附件
2021-5-6 15:31 上傳
圖16.jpg (104.49 KB, 下載次數(shù): 93)
下載附件
2021-5-6 15:31 上傳
圖17.jpg (58.11 KB, 下載次數(shù): 74)
下載附件
2021-5-6 15:31 上傳
圖18.jpg (104.63 KB, 下載次數(shù): 62)
下載附件
2021-5-6 15:31 上傳
圖19.jpg (57.91 KB, 下載次數(shù): 63)
下載附件
2021-5-6 15:31 上傳
圖20.jpg (104.83 KB, 下載次數(shù): 62)
下載附件
2021-5-6 15:31 上傳
圖21.jpg (58.23 KB, 下載次數(shù): 67)
下載附件
2021-5-6 15:31 上傳
圖22.jpg (104.85 KB, 下載次數(shù): 70)
下載附件
2021-5-6 15:31 上傳
請大神們幫我分析一下問題出在哪里了?
|
|