先上代码
#pragma vector=UART1RX_VECTOR
__interrupt void UART1_RX_ISR(void)
{
uint i; uint j=0;
data[ j++]=U1RXBUF;
//delay_ms(1000);
data[5]=0x1a;
data[6]='
';
for(i=0;i<7;i++)
{
while(!(IFG1&UTXIFG0));
U0TXBUF=data
;
IFG2=0;
}
}
这是中断处理部分,我想把串口1收到的值存入数组,然后加上个后面两个字节,之后再从串口0发送出去,data[]是全局变量,别的地方没有任何引用
然后我用串口助手发十六进制的1234567890,收到的却是十六进制的12 00 00 00 00 1a 0a,说明存入数组的只有第一个字节,
为什么会这样呢,请各位指点迷津,先谢谢各位了。
此帖出自小平头技术问答
串口发的是十六进制的1234567890
收到的:(发第一次)12 00 00 00 00 1A 0A 12 90 00 00 00 1A 0A
(发第二次) 12 90 12 00 00 1A 0A 12 90 12 90 00 1A 0A
(发第三次) 12 90 12 90 12 1A 0A 12 90 12 90 12 1A 0A
之后再发就跟第三次一样了,虽然数组后面的几个字节是有收到数据了,但是对应的不对,
而且只按了一次发送之后会受到2组数据。帮帮忙了,谢谢
一周热门 更多>