我做STM32 RS485通訊測驗時發現用串口除錯助手發送資料時前兩個位元組的資料STM32接受不到,比如我用串口除錯助手發送00 01 00 03 00 02給STM32,STM32收到的是00 03 00 02 前兩個數沒了!!

如果我發送11 11 00 03 00 02那么STM32緩沖區里接受的是03 00 02

我暈啊!這是咋回事兒?那個大俠能幫解答下?
void USART3_IRQHandler(void)//串口2中斷服務程式
{
u8 res;
u8 err;
if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET)
{
if(USART_GetFlagStatus(USART3,USART_FLAG_NE|USART_FLAG_FE|USART_FLAG_PE))
err=1;//檢測到噪音、幀錯誤或校驗錯誤
else
err=0;
res=USART_ReceiveData(USART3);
if(err==0)
{
RS485_RX_BUFF[RS485_RX_CNT]=res;
RS485_RX_CNT++;
}
}
}
uj5u.com熱心網友回復:
STM32連接的串口芯片,拿示波器抓抓那些管腳上的波形先uj5u.com熱心網友回復:
rs232芯片也許有問題,我試過批量生產的板子經常有很多無法正常通信,232芯片好多假貨。有時除錯一個電路板,死活不正常,就是不懷疑芯片是壞的,結果一換芯片馬上正常。uj5u.com熱心網友回復:
有時錯誤在硬體上,特別是RS485芯片。從某寶上賣的開發板,485芯片可能是劣質品。我自己有過經歷,除錯了一天半,最后確定是RS485芯片問題,買了顆新的,還上去,問題馬上解決。解決完心里有些小激動,馬上回來給大家匯報下,以免有同樣問題的筒子們再走我的冤枉路。
uj5u.com熱心網友回復:
可能是發送函式有問題uj5u.com熱心網友回復:
換個串口助手!你用了MODBUS專用串口助手了,把你的前面當地址了,參與決議,但沒當資料顯示!!!
哈哈哈,我也發過這個錯誤,沒注意。整了3天才發現。
uj5u.com熱心網友回復:
查那個HSPi協議就知道了,esp這玩意需要cmd和add在頭幾個位元組,他的buff收發公用轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45650.html
標籤:單片機/工控
