论坛风格切换切换到宽版
  • 2964阅读
  • 4回复

bg4uvr大哥 [复制链接]

上一主题 下一主题
离线lulei
 
发帖
47
只看楼主 倒序阅读 0楼 发表于: 2008-05-21
你的那个串行中断程序我改了。不知道为什么不行了。buf_full始终不等于1,让我主程序就死在while(buf_full==0)难道用51的不行那个中断。我加了ri=0我感觉这就可以了。别的没啥特殊的 啊!
离线appcat
发帖
145
只看该作者 1楼 发表于: 2008-05-21
buf_full总是为零,说明你的命令接收解析不正常,没有能够完成任何一个命令的解析,所以在
case '*':
                 switch(cmd_number){
                       case 1:
                             buf_full|=0x01;
                             break;
                       case 2:
                             buf_full|=0x02;
                             break;
                       case 3:
                             buf_full|=0x04;
                             break;
                       case 4:
                             buf_full|=0x08;
                             break;
                       case 5:
                             buf_full|=0x16;
                             break;
                    case 6:
                             buf_full|=0x32;
                             break;      
                 }
                 mode=0;
                 break;
这段无法使得buf_full赋值。
仔细检查一下default:这个部分的程序吧
离线lulei
发帖
47
只看该作者 2楼 发表于: 2008-05-21
appcat 谢谢你。      pcon=0x80;
     tmod=0x20; //t1自动从装,方式2
     scon=0x40;//方式1
     th1=0xfa; //晶振为12m.波特率为9600
     tl1=0xfa;
     es=1;   //开串行中断
     ea=1;   //开总中断
     ren=1;   //允许串行接受
     tr1=1;       //开串行口波特率发生器(t1)
我的中断初始化没问题吧,我仔细检查了好几遍。
离线appcat
发帖
145
只看该作者 3楼 发表于: 2008-05-21
51的中断我不会了,所以没法看。但是你要想办法确认你的中断已经进去了。如果中断没进去,你的程序就会死循环的。
离线BG4UVR
发帖
11288
只看该作者 4楼 发表于: 2008-05-21
你应该没有确认gps串口速率和输出协议。