[STM32F1] stm32模拟i2c读取bq40z50问题

[复制链接]
1120|15
 楼主| 午夜粪车 发表于 2021-11-13 17:15 | 显示全部楼层 |阅读模式
现在用stm32的F103芯片用GPIO模拟i2c读取bq40z50电源管理芯片的数据,
unsigned char i2cRead(void)
{
        unsigned char count=8,Data=0;
        DAT_IN;//set SDA as input
        //NOP(4);
        while(count--)
        {
                SET_CLK;delay();
                Data=Data<<1;//Data shift left 1 bit
                if(READ_DAT)//==1)//问题:READ_DAT永远不为1
                Data=Data|0x01;//read data and save in Data
                CLR_CLK;delay();
        }        
        DAT_OUT;//set SDA as input
        delay();
        return(Data);
}
问题:READ_DAT永远不为1,导致读不到正确的数据,用示波器量也量不到波形,能给个建议我应该怎么做?
jlyuan 发表于 2021-11-13 17:17 | 显示全部楼层
如果有I2C硬件直接用硬件接口更换。
yszong 发表于 2021-11-13 17:20 | 显示全部楼层
首先要保证前面的发送地址等操作正确才有意义
dingy 发表于 2021-11-13 17:22 | 显示全部楼层
前面的地址对吗,我也正在在搞这个,读取也不正常,你的应答都正常吗
wuhany 发表于 2021-11-13 17:24 | 显示全部楼层
请问搞定了吗,刚开始搞,想请教一下
jiahy 发表于 2021-11-13 17:25 | 显示全部楼层
给的信息不全啊
shimx 发表于 2021-11-13 17:27 | 显示全部楼层
电流测到的老是不对,能指导下电流矫正怎么做吗
chenjunt 发表于 2021-11-13 17:29 | 显示全部楼层
可能还是时序不太对
 楼主| 午夜粪车 发表于 2021-11-13 17:34 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
labasi 发表于 2021-12-7 08:29 | 显示全部楼层
模拟的一般时序掌握好就行了
tpgf 发表于 2021-12-7 08:31 | 显示全部楼层
为什么是电流不对呢
paotangsan 发表于 2021-12-7 08:48 | 显示全部楼层
模拟的比较好用点
renzheshengui 发表于 2021-12-7 08:54 | 显示全部楼层
估计是时序不对了
wakayi 发表于 2021-12-7 08:57 | 显示全部楼层
用示波器看看波形吧
wowu 发表于 2021-12-7 08:59 | 显示全部楼层
能正常定义地址吗
xiaoqizi 发表于 2021-12-7 09:00 | 显示全部楼层
是使用的外部晶振吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部
0