首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2012-03-06 
高分! 在51里的串口接收中如何加入超时处理?我现在需要用到2051接收来自PC的数据(长度不定,但长度信息是在

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

请指教  


[解决办法]
用状态机...

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


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

}
else //超时
{

}

热点排行