午夜粪车 发表于 2021-11-13 17:15

stm32模拟i2c读取bq40z50问题

现在用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

是使用的外部晶振吗
页: [1]
查看完整版本: stm32模拟i2c读取bq40z50问题