树莓派 - I2C无法写入数据

4
我正在尝试在我的Raspberry PI 3B+上使用.NET Core中的新System.Device.Gpio库(https://github.com/dotnet/iot),但是I2C通信出了一些问题。
我想要复现已经成功运行的一些Python代码的行为,从一些简单的数据写入和读取开始。
I2cConnectionSettings settings = new I2cConnectionSettings(1, 0x18); // I2C BUS is 1, ADDRESS is 0x18
I2cDevice device = I2cDevice.Create(settings);
device.WriteByte(8);
Console.WriteLine("Byte written: " + device.ReadByte().ToString());

给出的结果始终是 0,没有任何错误提示,而期望的结果应该是 8

这可能是什么问题呢?

1个回答

1
  1. 在树莓派上,请确保您在raspi-config中启用了I2C(sudo raspi-config,Interface Options,Enable/Disable autom... I2C kernel module)。

  2. 使用System.Device.I2c; //管理Nuget Packages..

  3. I2cConnectionSettings的“DeviceAddress”是您要使用I2cDevice.WriteByte向其写入单个字节的“Slave”的地址。例如,Arduino接收此字节并在其接收数据事件中使用。这可用于向设备发送命令。

  4. 当您调用device.ReadByte时,实际上会向设备发送一个请求以回答数据。例如,Arduino Slave将在其请求数据事件中接收到此请求,并可以发送回某些内容(在上面的情况下为一个字节)。这应该是与0不同的其他内容,因为如果未读取任何数据,则该函数也会返回0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接