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点灯实验

使用ADXL345进行地震检测的加速度计

MicroPython RP2040通过ADC调节PWM输出示例

官版树莓派Pi Pico和YD-RP2040版本对比

MicroPython RP2040可编程IOs(PIO)示例介绍

CircuitPythonRaspberryPi Pico RP2040 自定义机械键盘实例