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