C# Raspberry pi 2和BMP280:未确认从属地址
我关注Windows IOT上的项目WheatherStation。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
我在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核心驱动程序/控制器吗?