C# 在C语言中读取设备上的特定I2C寄存器#

C# 在C语言中读取设备上的特定I2C寄存器#,c#,windows,uwp,iot,i2c,C#,Windows,Uwp,Iot,I2c,我有一些I2C设备连接到树莓Pi。但是,我需要能够读/写I2C设备的特定寄存器。我在附带的UWP I2C库中尝试过这一点,但似乎找不到对I2C设备的特定内部寄存器的读/写支持 我已经阅读了给定的C#I2C教程,但没有发现任何关于从特定寄存器读取或写入的内容 以下是我必须从设备读取的代码: 公共静态异步void ReadFromRegisterAsync(字符串PinAddress、int I2CAddress、字符串寄存器) { 字符串i2cDeviceSelector=I2cDevice.Ge

我有一些I2C设备连接到树莓Pi。但是,我需要能够读/写I2C设备的特定寄存器。我在附带的UWP I2C库中尝试过这一点,但似乎找不到对I2C设备的特定内部寄存器的读/写支持

我已经阅读了给定的C#I2C教程,但没有发现任何关于从特定寄存器读取或写入的内容

以下是我必须从设备读取的代码:

公共静态异步void ReadFromRegisterAsync(字符串PinAddress、int I2CAddress、字符串寄存器)
{
字符串i2cDeviceSelector=I2cDevice.GetDeviceSelector();
IReadOnlyList devices=等待设备信息.findalAsync(i2cDeviceSelector);
var currentSensorSettings=新的I2cConnectionSettings((int)I2CAddress);
I2cDevice sensorDevice=等待I2cDevice.FromIdAsync(设备[0]。Id,currentSensorSettings);
字节[]SensorReadingByte=新字节[1024];
sensorDevice.Read(SensorReadingByte);
}

在此方面的任何帮助都将不胜感激。如果标准I2C库不具备该功能,那么推荐一个具备该功能的C#库就太棒了。

你这么做是为了什么操作系统?@0andriy Windows 10 IoT。我们有一个用python编写的不同版本,以防我们想使用linux,但我们更愿意使用windows/c,如果可能的话,您可能需要查看制造商关于您正在尝试读/写的特定I2C设备的数据表。通常,您会向设备写入数据,第一个字节为后续读/写命令选择寄存器。有些设备在第一个写入字节中可能有额外的位,这也会影响设备的操作模式。@PaulF我在使用UWP内置的I2C库,你是说我应该做一个写入操作,然后读取取决于制造商的规格?是的-它与库或操作系统无关-它是I2C设备本身的功能。只要看一下数据表,我必须手动-MAX6650风扇转速调节器-通过写入8位地址来选择寄存器-如果您想读取另一个寄存器,则需要写入该地址。使用PC9698 I/O扩展器-寄存器由写入命令的低6位选择,最高位用于选择自动增量模式。设置后,可以按顺序读取/写入寄存器,否则每次都需要写入所需的寄存器。