尊敬的论坛用户:
我在写入 BQ35100的数据闪存时遇到一些问题。
由于写入配置 A 寄存器有效、我尝试使用配置 A 的相同顺序和代码来写入电池容量。
这是我用于设置电池容量的代码:
uint8_t writeToDataFlash (uint16_t writeRegister、uint16_t data、uint8_t dataSize) { 如果(!dataSize)返回失败; uint8_t check[2]={0}; uint16_t 校验缓冲= 0; uint8_t pData[4]={0}; pData[0]= writeRegister; pData[1]= writeRegister >> 8; pData[2]=数据>> 8; pData[3]=数据; if (I2cWriteBuffer (&I2C、c_BQ35100I2CAddr、c_ManufacturerAccessControlAddr、pData、2 + dataSize)==故障) { printf( llerror,"writetodataflash: write register + data failed"); 返回失败; } DelayMs(100); //计算校验和并写入 MacDataSum + MacDataLen 对于(uint8_t i = 0;i <= 2+dataSize;i++) { CheckBuffer += pData[i]; } CHECK[0]=~CHECKBuffer; check[2]= 4 + dataSize; //下一个写入函数自动递增! I2cWriteBuffer (&I2C、c_BQ35100I2CAddr、c_ManufacturerAccessControlDataSummer、check、2); DelayMs(100); 返回成功; }
我要发送的数据是寄存器0x41FE 的17Ah (0x4268)容量:
writeToDataFlash (0x41fe、0x4268、2);
读取容量始终会提供默认值、即2200mAh。
我出了什么问题?
感谢您的帮助!
问候 Jorg