Thread 中讨论的其他器件:BQ40Z50
工具与软件:
我正在尝试通过 MCU I2C 使用命令0x1C 将序列号写入 BQ40Z50、但这样做是无效的。 我尝试了使用 Battery Management Studio、它成功地将序列号写入 BQ40Z50。 校验和似乎有问题。 我捕获了 Battery Management Studio 中写入序列号的 I2C 布线。 例如、如果我将序列号0x0152写入 BQ40Z50中、根据 I2C 布线、发送的数据为0x1C、0x52、0x01、0x6A、其中0x6A 假定为校验和。 如果我通过 MCU 发送相同的 I2C 跟踪、可以正常工作、但当我使用应用手册 SLUA801中的校验和函数时、不工作。
但是、此函数的输出是不同的。 请为我提供指导、以便我可以将所需的序列号写入 BQ40Z50。
// check_sum:
//pData:计算指向数据块的块传输指针的校验和
//nLength:数据块的长度
unsigned char check_sum (unsigned char * pData、unsigned char nLength)
{
unsigned char nsum = 0x00;
unsigned char n;
对于(n = 0;n < nLength;n++)
nsum += pData[n];
nsum = 0xFF-nsum;
返回 nsum;
}