單片機(jī)
單片機(jī)發(fā)送部分:
ADV1=123;
ADV2=456;
ADV3=789;
printf("@%05u\n",ADV1);
while(TI0==0);
delay(100);
printf("#%05u\n",ADV2);
while(TI0==0);
delay(100);
printf("$%05u\n",ADV3);
ARM接收部分:
if((U1IIR & 0x0F) == 0x04) // 接收數(shù)據(jù)可用 RDA
{
RxSign=U1RBR;
if(RxSign=='@')
{
for(i=0; i<13; i++)
{
RxBuf1[i] = U1RBR; // "讀取FIFO的數(shù)據(jù),并清除中斷 "
}
}
else if(RxSign=='#')
{
for(i=0;i<13;i++)
{
RxBuf2[i] = U1RBR;
}
}
else if(RxSign=='$')
{
for(i=0;i<13;i++)
{
RxBuf3[i] = U1RBR;
}
}
}
else if((U1IIR & 0x0F) == 0x0C) //字符超時(shí)CTI 無(wú)中斷掛起
{
while((U1LSR&0x01)==1) //U1RBR包含有效數(shù)據(jù)
{
if(i==0)
RxSign=U1RBR;
if(RxSign=='@')
RxBuf1[i-1] = U1RBR; // 讀取FIFO的數(shù)據(jù),并清除中斷
else if(RxSign=='#')
RxBuf2[i-1] = U1RBR;
else if(RxSign=='$')
RxBuf3[i-1] = U1RBR;
i++;
}
其中ARM 初始化U1FCR = 0xc1; 觸發(fā)點(diǎn)位14個(gè)字符
為什么RxBuf1接受的是123
RxBuf2和RxBuf3接收到的不是456,789而是56496,7855
剛接觸串行通訊 網(wǎng)大神求解
怎么才能使RxBuf2和RxBuf3能接收到正確數(shù)字?
先行謝謝各位