我的电路跟数据手册上电基本一致,微控制器使用的是STM32F1系列单片机。
遇到的问题是,在初始化的过程中,需要写入寄存器,这个时候iic的写入数据有四个字节(除了设备地址和寄存器地址):0x10, 0x3E, 0x34,0x92, 0x80,0x2D。
但是发送到0x92之后就遇到NACK了。
查看单片机的IIC发送过程,发现还未完全发送完成就退出发送了。在`I2C_WaitOnTXEFlagUntilTimeout`函数处遇到了错误,然后发送了STOP。
我的电路跟数据手册上电基本一致,微控制器使用的是STM32F1系列单片机。
遇到的问题是,在初始化的过程中,需要写入寄存器,这个时候iic的写入数据有四个字节(除了设备地址和寄存器地址):0x10, 0x3E, 0x34,0x92, 0x80,0x2D。
但是发送到0x92之后就遇到NACK了。
查看单片机的IIC发送过程,发现还未完全发送完成就退出发送了。在`I2C_WaitOnTXEFlagUntilTimeout`函数处遇到了错误,然后发送了STOP。
下面是Microcontroller Code Examples for BQ769x2 Battery Monitors,里面有STM32 I2C代码,您可以参考下:
https://www.ti.com.cn/tool/cn/download/SLUC701
还有下面两个软件开发资料: