串口通讯程序问题请教

[复制链接]
2916|1
 楼主| Tomzong 发表于 2007-1-24 15:39 | 显示全部楼层 |阅读模式
我想从串口所读的数据中分离出&quot;$1#&quot;有用数据,进行LED灯延时实验.但测试了一下未能通过,还望大家指点一二!<br />void&nbsp;ISR_ES(void)&nbsp;interrupt&nbsp;4<br />{&nbsp;<br />&nbsp;unsigned&nbsp;char&nbsp;temp;&nbsp;&nbsp;&nbsp;<br />&nbsp;if(RI==1)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;RI&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;SBUF;<br />&nbsp;&nbsp;&nbsp;if(temp&nbsp;==&nbsp;0x24)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recvLen&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff[0]=&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else&nbsp;if(temp==0x23)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//#&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff[2]&nbsp;=&nbsp;temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(recvLen==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//协议报文收齐,进行判断并处理<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(buff[1]==0x31)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch3=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ledFlag=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff[recvLen]=temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recvLen++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;if&nbsp;((recvLen==2)&nbsp;&&&nbsp;(temp!=0x23))<br />&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//接收的数据有误&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;}<br />&nbsp;if(TI==1)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;TI=0;<br />&nbsp;}<br />}<br /><br />void&nbsp;main()<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;while(1)<br />&nbsp;{<br />&nbsp;&nbsp;if(ledFlag)&nbsp;<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;ch3&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(10000);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ch3&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(10000);&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;}<br />}
 楼主| Tomzong 发表于 2007-1-30 14:58 | 显示全部楼层

谢谢!

我把程序修改了一下,通了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

93

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部