如题。<br />大概流程是利用串口助手发送一个字符串到单片机,在lcd1602上显示。<br />我原来的思路是定义一个全局数组,单片机每一次SBUF上的数据存放在数组里。<br />程序如下:<br /><br />//每一次中断,把接收到的字符存放在数组里<br />void receive() interrupt 4 using 1<br /> {<br /> if(RI)<br /> {<br /> input[t] = SBUF; <br /> t++; <br /> SBUF = input[t]; //返回接收值<br /> if(TI)<br /> TI = 0;<br /> RI=0;<br /> }<br /> <br /> }<br /><br />void main(void)<br /> { <br /> t = 0;<br /> initialLcd1602(); //1602初始化<br /> serial(); //串口初始化函数<br /> <br /> while(1) <br /> { <br /> if(t == 16)<br /> display_string(0,0,input); //1602显示字符串 <br /> }<br /> } <br />其中,input[16]和t为全局变量。<br />但结果要么没有显示,要么就显示第一个。我想应该是数组没有很好的赋值。<br /><br />接收单个字符没有问题,但是字符串就是有问题了。SBUF不是每次中断只接收一个8位的字节吗?为什么不能把接收到的值存到那个全局数组呢?<br />还望高手大侠帮帮忙阿~~<br /><br /> |
|