*buf 存放串口接收的数据
len 串口接收数据长度
本程序作用是根据串口第一位内容控制12864对应位置显示,
现在问题是用PutString显示的内容都正常,
用PutChar显示的内容只在屏幕上闪一下就消失了
PutString(显示字符串函数),PutChar(显示字符函数)这两个函数本身是好的,买开发板的时候例程里带的,一直正常使用的
PutString也是调用PutChar显示每个字符的,为什么我单独使用PutChar时,显示一下就消失了,
void xianshi (unsigned char *buf ,unsigned char len)
{
unsigned char i=0;
// CLSLcd();//这里清屏闪烁只能在后面清屏,
switch (buf[0]) //只判断接收到的第一个数据
{
case 0x36:CLSLcd();PutString(3,29,"kai");break;//kai清屏,并将kai显示到12864
case 0x31:CLSLcd();PutString(3,29,"guan");break;//guan清屏,并将关显示到12864
case 0x32:CLSLcd();PutString(3,29,"zuo"); break;
case 0x33:CLSLcd();PutString(3,29,"you"); break;
case 0x34:CLSLcd();PutString(3,29,"shang");break;
case 0x35:CLSLcd();PutString(3,29,"xia"); break;
default:uartwrite("bad cmmand.\r\n",sizeof("bad cmmand.\r\n")-1);
return;//没有对应命令,给上位机发送bad
}
for(i;i<len;i++) //将串口接收到的完整数据显示到12864
{ PutChar(2,i*6,buf[ i]); //逐个显示串口接收的数据到屏幕
}
PutString(0,28,"dghedftgewrft");//随便显示什么都正常
PutChar(4,29,len);
PutString(6,29,"ab36547HIJKLMNmn");
uartwrite(buf,len); //发送到上位机,表示已执行,*/
}
|