串口收到的帧不对

2019-03-24 13:49发布

刚学430,依靠TI的例程和自己所想,写了以下的程序,
想实现的功能是:通过串口1接收中断,把串口1收到的数据,存入数组里面,然后加上后面几个字符,再从串口0发送出去
调试的时候用的串口助手,发送和接收都没问题,但是接收到的数据和发送的数据不一样,
比如我串口发的是十六进制的12 34 56 78 90五个字节,收到的却是12 90 90 90 90 1a 0d 0a
后来又试了各种数据组合,收到的都是第一个字节再加上4个最后的字节然后还有3字节的尾
自己分析了两天,实在找不出原因所在了,希望高手们指点指点,在此先谢谢了。

代码如下


#pragma vector=UART1RX_VECTOR
__interrupt void UART1_RX_ISR(void)
{
  
for(j=0;j<5;j++)
{
  data[j]=U1RXBUF;
   delay_ms(5);
   //IFG2&=0xef;
}
  data[5]=0x1a;  
  data[6]=' ';
  data[7]=' ';
     
  for(i=0;i<8;i++)
{  
while(!(IFG1&UTXIFG0));
  U0TXBUF=data;
IFG2&=0xef;
}                              
                                       
// Send_Byte0();                    
delay_ms(5);                        
// RS485_CTR0;                        
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
sint27
1楼-- · 2019-03-24 19:28
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章