完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一整天都在努力让 I²C 和 SPI 在我的 Wemos D1 Mini Pro 上同时工作,我想使用 BME280 + Wemos D1 Mini 1,4' TFT Shield。
如果我评论一个或另一个,传感器或显示器工作正常。但是一旦两者都处于活动状态,就必须存在某种竞争条件,有时显示器可以工作但传感器仅返回 NaN 或显示器冻结并且传感器返回有效数据。 有时显示器工作几秒钟,而传感器返回垃圾,然后突然切换,例如显示器冻结,传感器返回有效数据。 当显示器工作时,似乎 i2c aka Wire.h 崩溃,甚至我无法进行 i2c 扫描,当我在调试时尝试它并在每个地址上都出现错误。 我希望我只是忽略了一些非常基本的东西并且没有在库/硬件限制中运行。 谢谢你的帮助,祝你周末愉快, Fredyy 代码:全选#include #include #include #include #include #define TFT_CS D4 #define TFT_RST -1 // you can also connect this to the Arduino reset #define TFT_DC D3 #define I2C_SDL D1 #define I2C_SDA D2 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); BME280I2C bme; void setup(void) { Serial.begin(9600); while(!Serial) {} // Wait Wire.setClock(400000L); Wire.begin(I2C_SDL, I2C_SDA); while(!bme.begin()){ Serial.println("Could not find BME280 sensor!"); delay(250); } switch(bme.chipModel()) { case BME280::ChipModel_BME280: Serial.println("Found BME280 sensor! Success."); break; case BME280::ChipModel_BMP280: Serial.println("Found BMP280 sensor! No Humidity available."); break; default: Serial.println("Found UNKNOWN sensor! Error!"); } tft.initR(INITR_144GREENTAB); tft.setTextWrap(false); // Allow text to run off right edge tft.fillScreen(ST7735_BLACK); } void loop(void) { tft.fillScreen(ST7735_BLACK); tft.setCursor(0, 0); tft.setTextColor(ST7735_BLUE); tft.setTextSize(2); tft.println("Hello World"); tft.setRotation(tft.getRotation()+1); delay(1000); printBME280Data(&Serial); delay(3000); } void printBME280Data(Stream* client) { float temp(NAN), hum(NAN), pres(NAN); BME280::TempUnit tempUnit(BME280::TempUnit_Celsius); BME280::PresUnit presUnit(BME280::PresUnit_Pa); bme.read(pres, temp, hum, tempUnit, presUnit); client->print("Temp: "); client->print(temp); client->print("°"+ String(tempUnit == BME280::TempUnit_Celsius ? 'C' :'F')); client->print("ttHumidity: "); client->print(hum); client->print("% RH"); client->print("ttPressure: "); client->print(pres); client->println(" Pa"); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:46 , Processed in 0.868261 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号