C# i2c使用Netduino从传感器读取数据

C# i2c使用Netduino从传感器读取数据,c#,.net,frameworks,i2c,netduino,C#,.net,Frameworks,I2c,Netduino,我不久前开始学习Netduino。现在,我想用它与MS5803 30BAR传感器。该组件与I2C协议通信。我学了一点这个协议,但还不够 我写了一段代码。当我来到主代码,我什么也没做。我的代码如下 有人能帮上忙吗?我将非常高兴:) 看起来你错过了I2C.Execute调用。在不了解任何与您通信的设备的情况下,这至少会启动传输 创建读取事务后,尝试添加此行 i2c.Execute(i2cTX[0],500) 下面是一篇关于netMF i2c的优秀文档: 设备数据表: 感谢您提前@gismofx给出答

我不久前开始学习Netduino。现在,我想用它与MS5803 30BAR传感器。该组件与I2C协议通信。我学了一点这个协议,但还不够

我写了一段代码。当我来到主代码,我什么也没做。我的代码如下

有人能帮上忙吗?我将非常高兴:)


看起来你错过了I2C.Execute调用。在不了解任何与您通信的设备的情况下,这至少会启动传输

创建读取事务后,尝试添加此行

i2c.Execute(i2cTX[0],500)

下面是一篇关于netMF i2c的优秀文档:

设备数据表:

感谢您提前@gismofx给出答案。我在项目中尝试了此解决方案。我添加了“i2c.Execute(i2cTX[0],500);”行,并添加了“if(Execute_value==0){}else{}”框图。我的项目总是在if-else方框图中返回零值,我无法与Netduino Plus 2通信。在你看来,会有什么问题?@BerkAltun有很多事情是错误的。你的设备连接正确吗?您是否在I2C总线上使用上拉电阻器?您使用的是正确的I2c地址吗?(说明书上说有两个可能的地址。另外,当你进行读取事务时,你需要返回3个字节。我稍微修改了我的答案。我非常感谢你的搜索和花费的时间。我尝试了很多解决方案,再加上你的建议和解决方案。我的设备连接正确,我测试了它。)嵌入的上拉电路。目前,我认为我可能使用了错误的i2c地址。也许我可能定义了错误的设备配置。此外,我用Netduino进行了闪烁测试,以了解其工作原理。闪烁测试成功,但这不是…:/@BerkAltun你有i2c/逻辑嗅探器吗?你可以监控SDA/SCL线路s、 如果你的中微子发送了地址,而你没有得到响应,那可能是你的设备设置有问题。此外,你可能还想尝试移植一个arduino驱动程序。
public class Program
{
    public static void Main()
    {
        // Configuration of MS5803 30BA
        I2CDevice i2c = new I2CDevice(new I2CDevice.Configuration(0x76>>1, 400));

        byte[] read = new byte[1];

        I2CDevice.I2CTransaction[] i2cTx = new I2CDevice.I2CTransaction[1];
        i2cTx[0] = I2CDevice.CreateReadTransaction(read);


        // ???
    }
}
        byte[] returnByte = new byte[3];

        var readX = new I2CDevice.I2CTransaction[] {I2CDevice.CreateReadTransaction(returnByte) };
        int executed = 0;
        I2CDevice i2c = new I2CDevice(new I2CDevice.Configuration(0x76, 400));            
        executed = i2c.Execute(readX, 400);
            if (executed == 0)
            {
                //Debug.Print("Read FAIL!");
                                }
            else
            {
                //Debug.Print("Read SUCCESS!");
            }
            //throw new Exception("I2C transaction failed");

         //you will need to do some bit shifting with the readX array to get your values.

    }