c# - Raspberry PI - I2C 不写入数据

标签 c# .net-core raspberry-pi raspbian i2c

我正在使用 Raspberry PI 3B+ 尝试 .NET Core ( https://github.com/dotnet/iot ) 中的新 System.Device.Gpio 库,但 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. 在树莓派上,确保在 raspi-config 中启用了 I2C (sudo raspi-config、接口(interface)选项、启用/禁用自动... I2C 内核模块)

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

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

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

关于c# - Raspberry PI - I2C 不写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57441762/

相关文章:

C# EndsWith 有时会给出错误结果

c# - Moq 验证是否以指定的顺序使用不同的参数调用相同的方法

c# - 如何删除Windows窗体应用程序中的标题栏

f# - 将字符串转换为流

hadoop - Raspberry Pi 到 Kafka 主题

ffmpeg - OMXPlayer 不显示嵌入的字幕

c# - 在一个列表中总结相同的项目

c# - 签网核心类库

asp.net-core - .NET Core 是否支持 SqlDependency?

php exec() 未通过 cron 作业运行