2020-01-23 14:31发布
laujc 发表于 2013-2-26 23:11 字符是一个bit一个bit发来的,接收时,接收8bit就收到一个字节的内容,会放到缓存中. 缓存大小有不同,有的单片 ...
最多设置5个标签!
那么如何来确保我发送到数据的准确性,确保数据并没有丢失!
大家都说到了
单片机收到数据进入中断 中断中清buf
取出char
在接收第二个
如此反复....
还有如果上位机是自己的 注意波特率
不光要和下位机一致
还要注意到windows设备管理器中查看 你的串口的波特率
有时候只在软件中设置不行
最好能保证所有波特率一致
{
uchar i,l;
uint n;
if (RI==1)
{
i=0;
l=0;
while((RI==1)&&(l==0))
{
RI=0;
UART_rcv_buf[i] = SBUF;
i++;
n=0;
if(i >= 4) {l=1;}
while((RI==0)&&(l==0)) //判断是否超时
{
if(n>10000){l=1;}
n++;
}
}
}
TI = 0;
RI = 0;
if((UART_rcv_buf[0]==0xA0)&&(UART_rcv_buf[3]==0xFF))
{
UART_r_process();
}
}
一周热门 更多>