斑竹帮忙

[复制链接]
2843|1
 楼主| lijay 发表于 2007-1-24 12:14 | 显示全部楼层 |阅读模式
串口通讯时被0x0d这个回车符搞晕了&nbsp;<br /><br />这是我写的串口发送程序,目的是想显示百分比(hour_per),第二个数把第一个数覆盖掉,我在keil中仿真,串口显示正常的,但是连上硬件,用串口调试助手,百分比显示不能覆盖,而是一条龙地显示下去。我一为0x0d没有发送出去,但是我把0x0d改成别的字符却能够发送出去的,是不是硬件不认0X0D啊?<br />还有,是不是0x0d仅回车,0x0a仅换行啊?<br />高手帮忙!<br />void&nbsp;UART_send_hour_per(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;xdata&nbsp;uchar&nbsp;temp[4]={0x00,0x00,0x25,0x0d};<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;*p;<br />&nbsp;&nbsp;&nbsp;&nbsp;IE&=~0x10;//disable&nbsp;uart&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;temp[0]=(hour_per/10)+0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;temp[1]=(hour_per%10)+0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;p=&temp[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;do{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF0=*p++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(TI0==0);//等待发送结束<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI0=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}while(!(0x0d==*(p-1)));<br />&nbsp;&nbsp;&nbsp;&nbsp;IE|=0x10;//enable&nbsp;uart&nbsp;interrupt<br />}<br />&nbsp;<br />&nbsp;<br />
 楼主| lijay 发表于 2007-1-24 15:38 | 显示全部楼层

问题以解决

用超级终端调试,问题就不存在了<br />不知道这些个调试助手软件是怎么编的!<br />不过认识到一个问题:能用硬件仿真的情况下尽量别用软件仿真
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

43

帖子

0

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