RP2040 和 adxl357 加速度计之间的 I2C 通信(C/C++ SDK)
Posted
技术标签:
【中文标题】RP2040 和 adxl357 加速度计之间的 I2C 通信(C/C++ SDK)【英文标题】:I2C communication between RP2040 and adxl357 accelerometer ( C/C++ SDK ) 【发布时间】:2022-01-07 01:26:56 【问题描述】:我需要通过 I2C 与 adxl357 加速度计进行通信,但出现了一些问题。 查看RP2040 sdk文档我看到有一种特殊的方法可以将数据发送到某个地址,例如i2c_write_blocking()。它的参数包括一个 7 位地址和要发送的数据。我的问题是,由于加速度计需要读/写位,是否仍然可以使用此功能?还是我应该去替代i2c_write_raw_blocking()?
另外,我不明白读/写位的符号,用R/#W报告,是不是意味着1是读而0是写?
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:I2C 地址有 7 位:这些在 8 位字节的高 7 位中发送,其余位(最低有效位)设置为 1 用于读取,0 用于写入。
文档说它需要一个 7 位地址的原因是因为它告诉您写函数会将地址左移 1 并加 1,而读函数函数会将地址左移1 加 0。
如果它没有告诉你这一点,你可能会自己预先转移地址,这是错误的。
【讨论】:
感谢您的回复。我现在知道了。我对写作和阅读的概念有点困惑。以上是关于RP2040 和 adxl357 加速度计之间的 I2C 通信(C/C++ SDK)的主要内容,如果未能解决你的问题,请参考以下文章
MicroPython RP2040通过ADC调节PWM输出示例