初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2015-5-19
- 在线时间
- 64 小时
|
10金钱
RT,我想实现的功能是,串口1向串口2发送一个字符串,然后通过串口2打印出来,我这么写的
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
USART_SendData(USART1, p[t]);
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
buf[t] =USART_ReceiveData(USART2);
USART_ClearFlag(USART2, USART_IT_RXNE);
}
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
USART_SendData(USART2, buf[t]);
}
然后串口打印出来的数据不完整,串口1发送的字符串长是12位,但是串口2只能打印出7位,请问一下是什么原因?
|
最佳答案
查看完整内容[请看2#楼]
if改成while带超时退出的,或者直接发送完等2ms(或以上)再进行判断,用中断主要是可以应付突发传输免得丢包,再就是节省CPU
|