大家好,
我正在做我的 I2C 示例,我意识到 STM 板找到了一个左移一个的地址。
我将我的 Arduino 地址设置为 70 -> 0x46 用于十六进制
- void setup()
- {
- Wire.begin(0x46); // Wire communication begin
- }
我连接我的
STM32F429I_DISC1 并最终使其与 IsDeviceReady 函数一起使用。
它返回 0-1-130-131(我不知道为什么但不相关。)然后找到 140 和 141
当我检查我的二进制文件时,
70 -> 0100 1100
140 -> 1000 1100
141 -> 1000 1101
当我用 1 位左移 70 时,我得到 140,我不知道为什么我得到 141(最后一位可能不重要?)
所以我只是好奇为什么会这样?
我在这里提供我的项目,我没有添加任何额外的库,
我只使用 CubeMX 和 CubeIDE(甚至不使用 Keil uVision 5)
但是,由于我能够进行 I2C
通信(即使地址发生变化),我希望看到复杂的示例。
现在,我应该发送什么给我的奴隶 Arduino,70 或 140?
此外,当我在 Arduino 上进行扫描时,它会提供一些 I2C 地址,我不确定哪个属于我的 STM32。
STM32和Arduino只有STM32和Arduino与SDA和SCL的连接,它们有额外的4.7k上拉电阻连接到STM32的5V输出,STM和Arduino的地连接。