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