Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Raspberry pi 2和BMP280:未确认从属地址_C#_Windows_Arduino_Raspberry Pi2_Windowsiot - Fatal编程技术网

C# Raspberry pi 2和BMP280:未确认从属地址

C# Raspberry pi 2和BMP280:未确认从属地址,c#,windows,arduino,raspberry-pi2,windowsiot,C#,Windows,Arduino,Raspberry Pi2,Windowsiot,我关注Windows IOT上的项目WheatherStation。 我在github上下载了项目,并在Raspberry上连接了我的BMP280传感器。 你可以在网上查我的连接 对我来说,这是正确的,但我对bmp280.WriteRead(WriteBuffer,ReadBuffer)有一个例外 System.IO.FileNotFoundException:系统找不到指定的文件。未确认从属地址 这可能是I2C总线的问题(因为未接收到ACK) 如果可以,请交叉检查是否使用--recur

我关注Windows IOT上的项目WheatherStation
我在github上下载了项目,并在Raspberry上连接了我的BMP280传感器。
你可以在网上查我的连接

对我来说,这是正确的,但我对
bmp280.WriteRead(WriteBuffer,ReadBuffer)有一个例外

System.IO.FileNotFoundException:系统找不到指定的文件。未确认从属地址


这可能是I2C总线的问题(因为未接收到ACK)


如果可以,请交叉检查是否使用--recursive标志克隆了他们的回购协议?所有子模块都将使用此方法正确克隆。(否则可能会丢失一些文件。)

此问题有两种不同的原因,其中大多数与硬件有关

我看到您正在使用Adafruit突破板,并将基于此参考引脚

  • 确保SDO和SCL线路正确连接到Raspberry PI。SDO应连接至针脚3,SCL应连接至针脚5。从图表图片来看,这应该是正确的

  • 接下来是文。Hackster.io上的Fritzing图像不正确。Vin应连接至3.3V线路,PI上的引脚1

    这是因为Vin是逻辑信号的电源电平。在这种情况下,Raspberry PI为3.3V,将其设置为5会导致数据未通过I2C正确计时的问题

  • 最后,通过将SDO绑定到V3.3将其拉高

    原因是,如果您阅读BMP280/BME280的数据表并查看示意图,您将看到SDO有一个上拉电阻器,它将SDO的内部逻辑电平拉至3.3V。如果使用5v轨道,这将是非常奇怪的,因为从技术上讲,你不是在一个三态,既不低也不高,所以你可能会得到一个随机地址

    通过接地将其拉至0V将导致从机地址为0x76。将其拉高后,BMP280/BME280传感器的从机地址将为0x77。从他们提供的代码来看,他们希望这个pin被拉高,给出一个0x77地址

  • #3的另一种软件解决方案是更改BME280设备代码中的I2C从机地址。在示例代码中,这包含在课程\u 203\StartSolution\BMP280.cs中:

    class BMP280
    {
        //The BMP280 register addresses according the the datasheet: http://www.adafruit.com/datasheets/BST-BMP280-DS001-11.pdf
        const byte BMP280_Address = 0x77;  //If SDI is pulled high 0x77, if pulled low 0x76
        const byte BMP280_Signature = 0x58;
    
    最后,如果您从顶部查看Pi,HDMI端口指向您,SD卡插槽位于左侧,则您对40针标头中最左侧的管脚感兴趣,那么您的Pi上的管脚连接

    5V | 5V |接地
    3.3V | SDA(SDI)| SCLK


    另请参见此标题映射

    检查你的电线。确保它们被完全推到正确的位置。这是我的问题。

    您必须焊接BMP280…

    为什么不使用
    raspbian
    (有很多示例和模块)?@viiLink您成功编写了BMP280 Windows 10 IoT核心驱动程序/控制器吗?