关于c3-470的串口中断的1602显示程序,望大虾能指点一二
串口中程序如下:void GetRs232_Data() interrupt 4{
uchar i,j,temp;
if(RI)
{
RI=0;
temp=SBUF;
if(temp=='$')
{
Rsbuf =temp;
for(i=1;i<sizeof(GPS_ASC)-1;i++)
{
j=GetUart_Data();
if(j<256)
{
Rsbuf=(uchar)j;
if(Rsbuf!=GPS_ASC) return;
}
}
//
for(;i<sizeof(Rsbuf);i++)
{
j=GetUart_Data();
if(j<256)
Rsbuf=(uchar)j;
else
break;
}
LCD_Write_String(5,0,Rsbuf+0x07,6);//
}
}
}
/*-----------------------------------------------*/
LCD_Write_String()函数是一个1602显示,x代表第几列,y代表第几行,s就是指向读取数据的指针,num是读取的位数
/*-----------------------------------------------*/
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s,uchar num)
{
uchar i;
if (y == 0)
{
LCD_Write_Com(0x80 + x); //表示第一行
}
else
{
LCD_Write_Com(0xC0 + x); //表示第二行
}
for(i=0;i<num;i++)
{
LCD_Write_Data( *s);
s ++;
}
}
同样的一段程序放在主函数里面会有显示,如下:
void main()
{
uchar num;
unsigned char Data="Date:";
unsigned char Time="Time:";
//Buf_data=0;
//Buf_data=0;
LCD_Init();
LCD_Write_String(0x10,0,Data,5);
LCD_Write_String(0x10,1,Time,5);
..............}
可是在串口的那段就是没有显示,是什么原因??? 回复【楼主位】Helloeveryon
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_627919K8R6O0.png
显示如上 (原文件名:QQ截图未命名.png)
在keil调试时,接收的数组时有数据的,即Rsbuf,....是有值的。 关注帮顶
页:
[1]