大家好:
我开发的一个QT应用程序,下到开发板,运行,用串口线将开发板(linux系统的QT界面)的串口和PC机(Windows xp操作系统)的串口相连,在PC机端我用的是串口调试助手,结果在开发板的QT界面上显示正常,但是在调试助手上却显示乱码,检查一下,是程序代码的原因,经过一番调试,从开发板的串口输出到串口调试助手上已经没有问题了,但是要从开发板的串口输入显示的却还是乱码,怎么也找不出原因所在,只有麻烦各位大侠看一下了,我的从串口读入函数如下,您帮忙看一下,是哪里的问题,
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行,在屏幕上输出的乱码是一样的,那样就不是字符变量转换的问题,而是串口读入函数的问题,可我检查了好几遍,没有问题啊。