stm32 485通讯程序出错了。电脑一串数据然后返回是没错的。但是一个个字节解析的时候出错了
时间:10-02
整理:3721RD
点击:
- //接收缓存区
- u8 RS485_RX_BUF[1024]; //接收缓冲,最大1024个字节.
- //接收到的数据长度
- u16 RS485_RX_CNT=0;
- u16 Rs485_RX_Read_Cnt = 0; // 485数据的当前读取位置
-
- <blockquote>void USART2_IRQHandler(void)
- <blockquote>void UartCheck(void)
//RS485查询接收到的数据
//buf:接收缓存首地址
//len:读到的数据长度
void RS485_Receive_Data(u8 *buf,u8 *len)
{
u8 rxlen=RS485_RX_CNT;
u8 i=0;
*len=0; //默认为0
delay_ms(10); //等待10ms,连续超过10ms没有接收到一个数据,则认为接收结束
if(rxlen==RS485_RX_CNT&&rxlen)//接收到了数据,且接收完成了
{
for(i=0;i<rxlen;i++)
{
buf=RS485_RX_BUF;
}
*len=RS485_RX_CNT; //记录本次数据长度
RS485_RX_CNT=0; //清零
}
delay_ms(5);
}
初始化的就不贴上来。现在是这种情况用这个void RS485_Receive_Data(u8 *buf,u8 *len)接收数据再发回电脑是验证到数据没问题的,但是如果用解析的函数,就无法实现。大家帮忙看看啊