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,第二种写法收到的数据才是正常的。第一种写法错在哪个地方? |
|