找回密码
 立即注册
查看: 392|回复: 3

IIC挂载多个从机,地址如何修改

[复制链接]
  • TA的每日心情
    开心
    2024-4-16 17:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    65

    积分

    注册会员

    积分
    65
    发表于 2023-7-27 11:32:00 | 显示全部楼层 |阅读模式
    IIC挂载多个从机,地址如何修改-1.png

    单从机模式中,一直使用地址如上图,但是多从机模式下,这个地址不唯一,求大神指导如何修改文件,slave addr分别为  0XEC  0X80  0X40
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-7-27 13:22:38 | 显示全部楼层
    访问不同从机时使用不同的地址就行,例如定义3个从机地址:
    #define SLA1W    0xEC
    #define SLA2W    0x80
    #define SLA3W    0x40
    SLAR是将SLAW的bit0置1,做为读地址。

    读写时使用不同的地址访问不同的从机:
    I2C_WriteNbyte(SLAxW, 0, tmp, 4);
    I2C_ReadNbyte(SLAxW, 0, tmp, 4);
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-16 17:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    65

    积分

    注册会员

    积分
    65
     楼主| 发表于 2023-7-27 13:35:19 | 显示全部楼层
    乘风飞扬 发表于 2023-7-27 13:22
    访问不同从机时使用不同的地址就行,例如定义3个从机地址:
    #define SLA1W    0xEC
    #define SLA2W    0x80

    有没有一种可能,我在头文件中定义三个或更多的从机地址(为了方便以后更换不同地址的从机设备),在不大面积改动I2C.C的读写程序,
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2023-7-27 13:40:28 | 显示全部楼层
    飞快旋转的风车 发表于 2023-7-27 13:35
    有没有一种可能,我在头文件中定义三个或更多的从机地址(为了方便以后更换不同地址的从机设备),在不大 ...

    可以的,把从机地址定义放到头文件,I2C.c文件就不用再修改了。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-19 01:25 , Processed in 0.058975 second(s), 44 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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