当前位置: 代码迷 >> 单片机 >> 高分! 在51里的串口接收中怎么加入超时处理
  详细解决方案

高分! 在51里的串口接收中怎么加入超时处理

热度:128   发布时间:2016-04-28 16:23:28.0
高分! 在51里的串口接收中如何加入超时处理?
我现在需要用到2051接收来自PC的数据(长度不定,但长度信息是在接收的第一个字节里),打算用方式1,定时器2,串口超时了就表示接收已经完成,现在问题是:如何实现串口的超时处理?   是用另外一个定时器?还是在等待RI的过程中DJNZ某数以实现计时?

请指教  


------解决方案--------------------
用状态机...

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


------解决方案--------------------
用另外一个定时器就可以实现了啊
------解决方案--------------------
没大看明白你的意思,不过你记下串口中断的次数不就行了,每次接受一个字节的话,中断次数就是你数据的长度,到时判断就行了
------解决方案--------------------
应该是都可以,而且从你的说法上来看,你好像是用汇编实现的,基于这样的前提(汇编每条指令的时间可以预估),你都可以实现精确的计时,从而判断是否超时;如果用计时器的话,另一个定时器资源就被占用了。
------解决方案--------------------
用定时器
接受的时候就启动,置标志states = false ;
定时一到
if(states) //完成
{

}
else //超时
{

}
  相关解决方案