c# - Raspberry PI - I2C 不写入数据
问题描述
我正在使用 Raspberry PI 3B+ 尝试.NET Core ( https://github.com/dotnet/iotSystem.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
。
会是什么呢?
解决方案
在覆盆子上,确保您在 raspi-config 中启用了 I2C(sudo raspi-config、接口选项、启用/禁用自动... I2C 内核模块)
使用 System.Device.I2c;// 管理 Nuget 包..
I2cConnectionSettings 的“DeviceAddress”是您使用 I2cDevice 向其中写入单个字节的“Slave”的地址。写字节。从设备(例如 Arduino)在其接收数据事件中接收该字节。这可用于向设备发送命令。
当您呼叫设备时。ReadByte您实际上向设备发送了一个请求以回答数据。例如,一个 Arduino Slave会在它的请求数据事件中得到这个请求,并可以发回一些东西(在一个字节以上的情况下)。这应该与 0 不同,因为如果没有读取数据,函数也会返回 0。
推荐阅读
- python - python django 休息框架。如何以某种特定格式序列化外键 UUID?
- maven - 抢先将工件下载到 Sonatype Nexus 以供离线使用
- angular - 使用 Azure AD 在 Angular 应用中进行 SAML 身份验证
- python - 执行拼写检查程序时得到错误的输出
- javascript - 如何在下一页内容完全加载之前显示加载或进度条?
- python - Python 中的迭代器除外是如何工作的?
- c# - 在 M-T532AP 上打印条码
- javascript - 开玩笑地监视模块功能
- node.js - Node.js 等待相同函数完成两次的最佳实践
- chromecast - 投射访问受保护的媒体