刚学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;
}
此帖出自小平头技术问答
一周热门 更多>