从串口调试助手向开发板发送一个数据0x55,再将接收到的数据发送出去。
串口中断服务函数如下:
if( USART_GetITStatus(USART_CHANNEL, USART_IT_RXNE) != RESET )
{gg_rs232_recv_buf[gg_recv_index]=(T_U8)USART_ReceiveData(USART_CHANNEL);
USART_SendData(USART_CHANNEL, gg_rs232_recv_buf[gg_recv_index]);
gg_recv_index++;
}
在Debug模式下,在接收的缓存中gg_rs232_recv_buf[]收到的是0x30(即只有第一个字符被接收到了),如图1所示:
从串口发送出来的也是0x30,如图2所示:
然而在连续运行的时候,发送的0x55,接收之后,然后可以通过串口正常地发送出来,如图3所示:
为什么在Debug的时候不正常呢?没找出原因,求大神指点!
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
嗯,和发送的模式有关的,改成16进制的发送就没有问题了。
一周热门 更多>