打印
[STM32F1]

stm32模拟i2c读取bq40z50问题

[复制链接]
735|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 | 只看该作者
前面的地址对吗,我也正在在搞这个,读取也不正常,你的应答都正常吗

使用特权

评论回复
5
wuhany| | 2021-11-13 17:24 | 只看该作者
请问搞定了吗,刚开始搞,想请教一下

使用特权

评论回复
6
jiahy| | 2021-11-13 17:25 | 只看该作者
给的信息不全啊

使用特权

评论回复
7
shimx| | 2021-11-13 17:27 | 只看该作者
电流测到的老是不对,能指导下电流矫正怎么做吗

使用特权

评论回复
8
chenjunt| | 2021-11-13 17:29 | 只看该作者
可能还是时序不太对

使用特权

评论回复
9
午夜粪车|  楼主 | 2021-11-13 17:34 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
10
labasi| | 2021-12-7 08:29 | 只看该作者
模拟的一般时序掌握好就行了

使用特权

评论回复
11
tpgf| | 2021-12-7 08:31 | 只看该作者
为什么是电流不对呢

使用特权

评论回复
12
paotangsan| | 2021-12-7 08:48 | 只看该作者
模拟的比较好用点

使用特权

评论回复
13
renzheshengui| | 2021-12-7 08:54 | 只看该作者
估计是时序不对了

使用特权

评论回复
14
wakayi| | 2021-12-7 08:57 | 只看该作者
用示波器看看波形吧

使用特权

评论回复
15
wowu| | 2021-12-7 08:59 | 只看该作者
能正常定义地址吗

使用特权

评论回复
16
xiaoqizi| | 2021-12-7 09:00 | 只看该作者
是使用的外部晶振吗

使用特权

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

本版积分规则

867

主题

10194

帖子

3

粉丝