打印
[STM32F1]

stm32模拟i2c读取bq40z50问题

[复制链接]
1515|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
军督神威|  楼主 | 2019-10-8 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用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,导致读不到正确的数据,用示波器量也量不到波形,能给个建议我应该怎么做?

使用特权

评论回复
沙发
heisexingqisi| | 2019-10-9 00:40 | 只看该作者
如果有I2C硬件直接用硬件接口更换。

使用特权

评论回复
板凳
ayb_ice| | 2019-10-9 10:43 | 只看该作者
首先要保证前面的发送地址等操作正确才有意义

使用特权

评论回复
地板
weisan111| | 2019-10-10 16:52 | 只看该作者
前面的地址对吗,我也正在在搞这个,读取也不正常,你的应答都正常吗

使用特权

评论回复
5
风一样| | 2019-10-16 11:13 | 只看该作者
weisan111 发表于 2019-10-10 16:52
前面的地址对吗,我也正在在搞这个,读取也不正常,你的应答都正常吗

请问搞定了吗,刚开始搞,想请教一下

使用特权

评论回复
评论
weisan111 2019-12-9 15:36 回复TA
还是时序的问题,应答出现问题了,调整了频率,可以正常通信 
6
hemu01| | 2019-10-16 15:23 | 只看该作者
给的信息不全啊

使用特权

评论回复
7
风一样| | 2019-10-17 14:50 | 只看该作者
电流测到的老是不对,能指导下电流矫正怎么做吗

使用特权

评论回复
8
coshi| | 2019-11-13 13:19 | 只看该作者
可能还是时序不太对

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

38

帖子

0

粉丝