向芯片的寄存器0xfe的地址写进去一个值,提示写成功了,但是读的时候为什么不是写的那个值??


Sleep(500);
WriteSensorReg(0x2e,0xfe,0x03,0,iDevID);//在0xfe的地址写进去0x03这个值

Sleep(500);

ReadSensorReg(0x2e,0xfe,&pValue,0,iDevID);
qDebug()<<"写成功的值为:"<<pValue;
Sleep(500);

有一百多个地址,只有前面九个地址写的值跟读的值能吻合。这是为什么呢?

寄存器不是RAM,有些寄存器可能是只读,有些可能是只写,读出来的值无意义,有些读和写的意义不一样。比如51单片机的SBUF寄存器,写表示发送一个字符,而读表示读取接收到的字符。要先了解每个寄存器的功能。

你这个问题只能查芯片的开发文档来解决