用的原子哥的485通讯做测试,第一次读数据正常出来,第二次就死在for循环哪里了(能串口打印第一ok,第二就打印不出,而且进入for循环也不运行for循环里面的代码),
void USART2_Receive_Data(u8 *buf,u8 *len)
{
u8 rxlen=RS485_RX_CNT;
u8 i=0;
*len=0;
delay_ms(10);
printf("%c",RS485_RX_CNT);
printf("%c",rxlen);
if(rxlen==RS485_RX_CNT&&rxlen)
{
printf("ok");
for(i=0;i<rxlen;i++)
{
buf[i]=RS485_RX_BUF[i];
}
*len=RS485_RX_CNT;
printf("ok");
RS485_RX_CNT=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
测试了 ,数据不是很长10ms刚好,原因是*buf溢出了。
一周热门 更多>