高分! 在51里的串口接收中如何加入超时处理?

请求权   2007-1-12 09:04 楼主
我现在需要用到2051接收来自PC的数据(长度不定,但长度信息是在接收的第一个字节里),打算用方式1,定时器2,串口超时了就表示接收已经完成,现在问题是:如何实现串口的超时处理? 是用另外一个定时器?还是在等待RI的过程中DJNZ某数以实现计时?

请指教

回复评论 (7)

用状态机...

在定时器中断里改变状态即可...

点赞  2007-1-12 09:12
用另外一个定时器就可以实现了啊
点赞  2007-1-12 10:46
没大看明白你的意思,不过你记下串口中断的次数不就行了,每次接受一个字节的话,中断次数就是你数据的长度,到时判断就行了
点赞  2007-1-12 11:03
应该是都可以,而且从你的说法上来看,你好像是用汇编实现的,基于这样的前提(汇编每条指令的时间可以预估),你都可以实现精确的计时,从而判断是否超时;如果用计时器的话,另一个定时器资源就被占用了。
点赞  2007-1-12 11:07
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2007-1-12 14:14
已经解决,散分,见者有份!!!
点赞  2007-1-12 22:48
study
点赞  2007-7-9 23:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复