我用一下程序做串口字符串接收,接收到的数据不知为什么第一个字符串的前2个字符有错,而以后的都没有出错

高手请帮我分析一下。我用单片机是STC12C5A60S2。voidUART_one_interrupt()interrupt4using1{uchardat,num,da... 高手请帮我分析一下。我用单片机是STC12C5A60S2。

void UART_one_interrupt() interrupt 4 using 1
{
uchar dat,num,dat_old;
if(RI==1)
{
dat=0;
num=0;
// if(Flag_rec==1) //接受更新数据
{
for(;;)
{
while(!RI);
dat_old=dat;
re_dat[hang][num]=SBUF;
dat=SBUF;
RI=0;
if(dat_old==0x0d&&dat==0x0a) //字符后只允许右一个回车
{
num=0;
break;
}
num++;
}
hang++;
}
}
else
{
TI=0;
}
}
展开
 我来答
手机用户00545
2011-08-29 · 超过35用户采纳过TA的回答
知道答主
回答量:154
采纳率:0%
帮助的人:110万
展开全部
{ if(ReceiveBuf[count] == 0x0d) //如果接收到的不是0x0d count会一直,如果是,就开始处理以下的字符。 串口接收是按字节收的,你可以建立不管
追问
我是想接收多组字符串,存入一二位数组。所以就通过for循环接收完一个完整的字符串以后推出中断,然后再进入中断接收下一组字符串。但不知什么只有第一个字符串的前三个字符有错,以后的都没有出错。
哈呀子人3269
2011-09-02
知道答主
回答量:37
采纳率:0%
帮助的人:29.2万
展开全部
这个 …… 我有学习到了东西!!!这个 有点深,我不太懂!感谢LZ 的问题,相信有更多的人会感谢的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hcylhcyl
2011-08-29
知道答主
回答量:5
采纳率:0%
帮助的人:8462
展开全部
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式