【问题标题】:Changing Wire library's Hardware I2C pins for custom arduino为自定义 arduino 更改 Wire 库的硬件 I2C 引脚
【发布时间】:2019-08-20 23:18:51
【问题描述】:

我正在尝试将电线 i2c 引脚更改为 11,12(SDA、SCL)。我构建了自己的 PCB,但在同一位置没有 i2c 线。我使用了 adafruits feather52 引导程序。

我在网上发现更改 variant.h 文件会更改 i2c 行,但我的计算机 (PC) 上没有该文件,尽管我的 mac 有。

我已经尝试过 Wire.begin(SDA, SCL) 虽然那是为 esps 设计的

我还尝试在 C/programs/Arduino 下的默认线和 user/AppData/Arduino/adafruit 下的默认线中编辑 wire.h 文件,尽管我还没有找到引脚设置的位置。

【问题讨论】:

标签: arduino i2c


【解决方案1】:

硬件包安装在 Arduino15 文件夹中。 Windows 上的文件夹位置在 C:\Users\\AppData\Local\Arduino15\packages 中的用户主目录中。

变体文件在variants/feather_nrf52832/variant.h中

The nRF52 MCU can use any pair of pins for I2C.

所以尝试在 variant.h 中进行更改

#define PIN_WIRE_SDA         (25u)
#define PIN_WIRE_SCL         (26u)

你需要的别针。

如果可行,请考虑定义 your own hardware definition 而不是修补 variant.h。

【讨论】:

  • 这是问题的解决方案(我曾尝试过),但事实证明这不是我的问题。我的问题是我应该在文件中使用北欧 ic 号码,而不是 pin 号码。感谢您的帮助。
【解决方案2】:

您无法更改硬件 I2C 引脚。它们是硬件。这意味着它们在芯片内部物理连接到驱动 I2C 的部分。您可以使用软件 I2C 来“bit-bang”您的通信。但这不会使用常规的电线库。

【讨论】:

  • 我用不同于默认 Arduino 和 Bluefruit 的硬件 i2c 线构建了 PCB,并试图让线库与这些线一起工作。您不能更改库以使用新行吗?
  • 这正是我所说的。您不能更改硬件 I2C 引脚。您可以使用软件 I2C,但它不会使用线库。其中哪一部分让您感到困惑?
  • 下次在构建 PCB 之前进行原型制作,这样您就知道连接会正常工作。
  • 对不起,错误的答案。在 nRF52 上,您可以将任何引脚用于硬件 I2C
  • 对不起,我以为他想改变 Arduino 上的硬件 I2C 引脚。
【解决方案3】:

你有一个解决方案。两年前我面临同样的问题,我最终做的是使用软件 I2C。它在 Arduino 的任何数字引脚上“Bit Bangs”I2C 协议。有几个图书馆。例如,检查这个: https://github.com/Testato/SoftwareWire

开始阅读 I2C 协议并尝试了解库在做什么。然后可以在你硬连线的 GPIO 引脚上模拟 I2C 协议

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多