郁闷死了。快跳楼了。最基本的我随便在switch 语句里加个灯点亮来判断都不亮郁闷
最基本的解析都不对,郁闷。不知道啥原因你们帮忙看看啊!我接收完协议前面的几个字母接收到$然后点亮灯都不亮。不知道啥毛病,在pc上可以显示gps信息,我用232试过了。说明初始化没问题的啊。
//串口初始化程序
void sys_int()
{
light=1;
light1=1;
tmod=0x20; //t1自动从装,方式2
scon=0x50;//方式1
th1=0xfd; //晶振为11.0592m 波特率为9600
tl1=0xfd;
ea=1; //开总中断
es=1; //开串行中断
tr1=1; //开串行口波特率发生器(t1)
}
//串口接收程序
void uart(void) interrupt 4
{
char tmp;
ri=0;
tmp=sbuf;
switch(tmp)
{
case '$':
cmd_number=0; //命令类型清空
mode=1; //接收命令模式
byte_count=0; //接收位数清空
break;
light1=0;
case ',':
seg_count++; //逗号计数加1
byte_count=0;
break;
case '*':
switch(cmd_number)
{
case 1:
buf_full|=0x01;
break;
light1=0;
case 2:
buf_full|=0x02;
break;
case 3:
buf_full|=0x04;
break;
}
mode=0;
break;