硬汉嵌入式论坛

 找回密码
 立即注册
查看: 264|回复: 3
收起左侧

[I2C] 模拟i2c

[复制链接]

44

主题

158

回帖

290

积分

高级会员

积分
290
发表于 2024-4-30 16:36:36 | 显示全部楼层 |阅读模式
使用h7教程中i2c模拟函数代码,i2c_CheckDevice函数,可以检查到同一i2c其他设备地址,另外一个没有找到,可能原因是?

uint8_t i2c_CheckDevice(uint8_t _Address)
{
        uint8_t ucAck;

        if (I2C_SDA_READ() && I2C_SCL_READ())
        {
                i2c_Start();                /* 发送启动信号 */

                /* 发送设备地址+读写控制bit(0 = w, 1 = r) bit7 先传 */
                i2c_SendByte((_Address<<1)+0);
                ucAck = i2c_WaitAck();        /* 检测设备的ACK应答 */
                i2c_Stop();                                /* 发送停止信号 */

                return ucAck;
        }
        return 1;        /* I2C总线异常 */
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2024-5-1 08:42:56 | 显示全部楼层
所有7bit地址轮询扫描一遍。
回复

使用道具 举报

44

主题

158

回帖

290

积分

高级会员

积分
290
 楼主| 发表于 2024-5-1 09:23:18 | 显示全部楼层
eric2013 发表于 2024-5-1 08:42
所有7bit地址轮询扫描一遍。

轮询了,其他设备都找到了,只有运动传感器没找到
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2024-5-1 09:55:48 | 显示全部楼层
gck 发表于 2024-5-1 09:23
轮询了,其他设备都找到了,只有运动传感器没找到

那得查查你的设备问题了,这个查询函数还是贼好用的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 20:32 , Processed in 0.221179 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表