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