• 3901阅读
  • 2回复

调试问题 [复制链接]

上一主题 下一主题
离线zhangjifei
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-31
                                                                          
各位大侠,好!
我在做开发板串口通讯的调试,就是我开发的一个QT应用程序,下到开发板,运行,用串口线将开发板(linux系统的QT界面)的串口和PC机(Windows xp操作系统)的串口相连,在PC机端我用的是串口调试助手,结果在开发板的QT界面上显示正常,但是在调试助手上却显示乱码,为什么,是程序代码的原因,还是由于不同的系统造成的,请问怎么解决?不知大侠们有没有遇到过这样的情况,谢谢!
离线wd007

只看该作者 1楼 发表于: 2009-03-31
首先两边的编码格式最好取得一致,win上默认是GB18030的话,Linux上也改为相同的。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线zhangjifei
只看该作者 2楼 发表于: 2009-04-01
谢谢2楼回复
我经过一番调试,从开发板的串口输出到串口调试助手上已经没有问题了(我修改的只是串口代码,这可能不是编码格式的原因了),但是要从开发板的串口输入显示的却还是乱码,怎么也找不出原因所在,只有麻烦各位大侠看一下了,我的从串口读入函数如下,您帮忙看一下,是哪里的问题,
void frmclient::ReadBoardPort()
{
  char BoardRecvbuf[256];
    int buflen= -1;
     if(GPSEnable)
     {
         memset(BoardRecvbuf,0,sizeof(BoardRecvbuf));
          buflen=::read( gpsfd, BoardRecvbuf, sizeof(BoardRecvbuf));
          if (buflen>0)
             {
               BoardRecvbuf[buflen]=0;
               QString str(BoardRecvbuf);
               txtMsgContent->insertLine(BoardRecvbuf);// line 14
               txtMsgContent->insertLine(str);//line 15
               this->ProcessGpsData(str);
              }  
    }
}
如上程序,我分析了一下,14,15行,在屏幕上输出的乱码是一样的,那样就不是字符变量转换的问题,而是串口读入函数的问题,可我检查了好几遍,没有问题啊。
快速回复
限100 字节
 
上一个 下一个