#1楼主:cc2430上串口通信问题
文章发表于:2008-07-06 02:51
INTERRUPT_FUNC urx0_service_IRQ(void){
BYTE x,y;
BYTE length;
BYTE data[16];
BYTE i;
BYTE check;
y = U0DBUF;
if (y=='a')
{
conPrintROMString("cl!\n");
while (!URX0IF);
length = U0DBUF-'0';
conPrintROMString("x!\n");
URX0IF = FALSE;
for(i=0;i<length-2;i++)
{
while (!URX0IF);
data[i] = U0DBUF;
conPrintROMString("y\n");
URX0IF = FALSE;
}
serio_rxHead++;
serio_rxBuff[serio_rxHead] ='a';
conPrintUINT8(serio_rxBuff[serio_rxHead]);
serio_rxHead++;
serio_rxBuff[serio_rxHead] =length;
conPrintUINT8(serio_rxBuff[serio_rxHead]);
for(i=0;i<length-2;i++)
{
serio_rxHead++;
serio_rxBuff[serio_rxHead] =data[i];
conPrintUINT8(serio_rxBuff[serio_rxHead]);
}
conPrintROMString("\nhandsome!");
}
}
上面是我的串口中断程序,我的问题是:
当我用串口调试助手分开向串口发送a,4,1,2时串口输出为:
cl!
x!
y
y
0x610x040x310x32
handsome!
这个答案是正确的.但是当我用串口助手一次性发送a412时,串口输出为:
cl!
x!
0x610x02
handsome!
我想要的结果应该也是第一种.请问程序中哪里有问题?先谢谢大家了!