更改线库的硬件I2C引脚以用于自定义arduino

时间:2019-08-20 23:18:51

标签: arduino i2c

我正在尝试将导线的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文件,尽管我没有找到设置引脚的位置。

3 个答案:

答案 0 :(得分:0)

您不能更改硬件I2C引脚。它们是硬件。这意味着它们在芯片内部物理连接到驱动I2C的部分。您可以使用软件I2C对通信进行“位爆”。但这不会使用常规的线库。

答案 1 :(得分:0)

但是您有解决方案。两年前,我遇到了同样的问题,而最终要做的是使用软件I2C。它在Arduino的任何数字引脚上“ Bit Bangs” I2C协议。有几个库。例如,检查以下一项: https://github.com/Testato/SoftwareWire

开始阅读有关I2C协议的文章,并尝试了解库的功能。这样就可以在您硬接线的GPIO引脚上模拟I2C协议

答案 2 :(得分:0)

将硬件软件包打包到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

# Join To table Bill - not using table customer in grouping argument 
select Bill.Id
,       Bill.Subs
,       Bill.billNumber
,       Bill.billDateBegin
,       Bill.billDateEnd
,       Dem.age
,       Dem.ageCategory 
,       Dem.gender
into   #Demographics2
from dbo.Bill Bill
left join #Demographics Dem on Bill.Id = Dem.Id
and Dem.creationDate >= Bill.billDateBegin
and Dem.creationDate < Bill.billDateEnd
where 1=1
group by Bill.Id
,       Bill.Subs
,       Bill.billNumber
,       Bill.billDateBegin
,       Bill.billDateEnd
order by Id, billNumber

根据需要固定针脚。

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