查看完整版本: [-- 为什么第一种获得串口数据的写法有问题? --]

QTCN开发网 -> Qt嵌入式开发 -> 为什么第一种获得串口数据的写法有问题? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

a2886015 2016-11-16 16:30

为什么第一种获得串口数据的写法有问题?



void MainWindow::readMyCom()
{
    QByteArray temp = myCom->readAll();
if(!temp.isEmpty()){
                for(int i = 0; i < temp.count(); i++){
                    QString s;
                    s.sprintf("0x%02x, ", (unsigned char)temp.at(i));
                    //0x是前缀,02是显示2位数,x代表16进制
                    //当然这里的意思是将temp当前值赋给s
                    bool ok;
                    myModbus->receBuf[myModbus->receCount]=(unsigned char)s.toInt(&ok,16);
         }
    }
}
这是第一种接收串口传上来的数据的写法


void MainWindow::readMyCom()
{
    QByteArray temp = myCom->readAll();
if(!temp.isEmpty()){
                for(int i = 0; i < temp.count(); i++){
myModbus->receBuf[myModbus->receCount]=(unsigned char)temp.at(i);
                    (myModbus->receCount)++;
         }
    }
}
这是第二种接收串口传上来的数据的写法

我利用单片机将数据传上来,传输的数据为
unsigned char testdata[7]={1,3,1,2,10,201,35};可是第一种写法收到的数据全为0,第二种写法收到的数据才是正常的。第一种写法错在哪个地方?


查看完整版本: [-- 为什么第一种获得串口数据的写法有问题? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled