中级会员
- 积分
- 291
- 威望
- 161
- 贡献
- 86
- 兑换币
- 88
- 注册时间
- 2012-11-5
- 在线时间
- 22 小时
|
单片机发送部分:
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) // 接收数据可用 RDA
{
RxSign=U1RBR;
if(RxSign=='@')
{
for(i=0; i<13; i++)
{
RxBuf1[i] = U1RBR; // "读取FIFO的数据,并清除中断 "
}
}
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) //字符超时CTI 无中断挂起
{
while((U1LSR&0x01)==1) //U1RBR包含有效数据
{
if(i==0)
RxSign=U1RBR;
if(RxSign=='@')
RxBuf1[i-1] = U1RBR; // 读取FIFO的数据,并清除中断
else if(RxSign=='#')
RxBuf2[i-1] = U1RBR;
else if(RxSign=='$')
RxBuf3[i-1] = U1RBR;
i++;
}
其中ARM 初始化U1FCR = 0xc1; 触发点位14个字符
为什么RxBuf1接受的是123
RxBuf2和RxBuf3接收到的不是456,789而是56496,7855
刚接触串行通讯 网大神求解
怎么才能使RxBuf2和RxBuf3能接收到正确数字? |
|