单片机/MCU论坛
直播中

ytrwv

8年用户 887经验值
擅长:EMC/EMI设计
私信 关注

如何使用I2C Reg模式发送1个从站地址和8字节命令并回读信息?

大家好
作为标题,我需要向ADC设备发送1字节的从属地址和8字节的命令(总共9字节)。
然后从从站地址回读 + 1
但是,i2c 前导缓冲区总共只有 8 个字节。 我怎么 CAN ?
有没有办法自己用 GPIO 构建 i2c 信号来解决扩展字节发送问题?

回帖(1)

自我清欢

2024-2-23 16:06:19
您好!对于使用I2C Reg模式发送9字节命令并回读信息,可以通过以下步骤完成:

1. 配置I2C主站
   - 初始化I2C总线,设置通信速率。
   - 配置I2C主站的GPIO引脚。
   - 启用I2C控制器。

2. 发送从站地址和命令
   - 将第一个字节设置为从站地址。
   - 将接下来的8个字节设置为命令。
   - 将这9个字节写入I2C发送缓冲区。

3. 回读信息
   - 设置I2C发送字节数为1。
   - 设置I2C接收字节数为9。
   - 发送从站地址加1作为读命令。
   - 读取接收缓冲区中的9个字节。

请注意,如果I2C前导缓冲区只有8个字节,而你需要发送9个字节数据,这可能会导致问题。你可能需要考虑使用硬件信号转接器或者其他解决方案来扩展字节发送。

如果硬件支持,你可以尝试使用GPIO来模拟I2C信号并进行扩展字节发送。这需要根据I2C信号的时序和协议规范,使用GPIO实现I2C的START、STOP、ACK、NACK、读、写等操作。

总之,详细的实现步骤还需要根据你所使用的主控芯片和操作系统的具体情况来确定。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分