小弟最近在折腾i2c,在写一个read bq40z50的函数,通讯地址我找到了,默认是0x16,那读地址呢?
Johnsin Tao:
HI见文档:www.ti.com.cn/…/sluubc1d.pdf
user5303184:
回复 Johnsin Tao:
我大概明白了,
1,BQ40Z50的器件地址是0x16,读写地址是0x44 ManufacturerBlockAccess()是吗?
2,目前我正在使用STM8L单片机和BQ40Z50进行通讯,出现了一点问题。按照手册说明,如果想得到BQ模拟前端某些寄存器的值,需要先通过I2C写相关寄存器的地址到0x44,然后再通过0x44读取信息回来,这个过程理解对吗?
3,目前我的程序在i2c写函数,发送器件地址0x16的时候一直卡在那里运行不过去,然后程序崩溃了。想问下BQ40Z50是不是需要预先配置好,或者激活什么的预处理才能开始通讯?大神方便的话能留个联系方式帮忙吗?
user5287985:
回复 user5303184:
不知道你是否已经解决好这个问题?我也是刚刚开始做这个,如果方便的话希望可以加好友咨询一下
user5287985:
回复 Hugo Zhang:
可是我发现设备写地址0x16发送过去之后设备没有应答信号而且0x16是BQ40Z50-R1手册里面给的,和BQ40Z50是一样的吗
user5287985:
回复 user5303184:
我也是遇见了你这样的情况,就是发送器件地址0x16之后程序卡在这里,也就是说设备对于这个地址没有产生应答应答,不知道你现在解决了这个问题没有?如果方便的话是否可以加个好友,qq号864431887
Hugo Zhang:
回复 user5287985:
需要确保BQ40Z50的板子接上电芯后,需要唤醒之后才能进行通讯。
user5287985:
回复 Hugo Zhang:
确实是唤醒了才进行的通讯,但是现在好像是设备有应答了,但是读取寄存器数据时好像又不太懂了,比如我要读取chemID,我应该发送地址0x06呢?还是0x44呢?
BMS:
回复 user5287985:
唤醒了才进行的通讯