1.环境配置: 参考Arduino IDE上手教程完成IDE安装, 并根据实际使用的开发板安装对应的板管理, 与需要的驱动库。
2.使用到的驱动库:
USING_BPS
注释来启用不同的实例。#include <M5Unified.h>#include "M5UnitENV.h" M5Canvas canvas(&M5.Display); // #define USING_BPS#define USING_BPS_V11 #if defined(USING_BPS) BMP280 bmp; #elif defined(USING_BPS_V11) QMP6988 qmp; #endif float calculate_altitude(const float pressure, const float seaLvhPa = 1013.25f){ return 44330.f * (1.0f - pow((pressure / 100.f) / seaLvhPa, 0.1903f));} void setup(){ M5.begin(); Serial.begin(115200); M5.Display.setFont(&fonts::lgfxJapanMinchoP_20); M5.Display.setTextSize(1); auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda); auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl); M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl); Wire.begin(pin_num_sda, pin_num_scl, 400000U); #if defined(USING_BPS) if (!bmp.begin(&Wire, BMP280_I2C_ADDR, pin_num_sda, pin_num_scl, 400000U)) { Serial.println("Couldn't find BMP280"); M5.Display.clear(TFT_RED); while (1) delay(1); } /* Default settings from datasheet. */ bmp.setSampling(BMP280::MODE_NORMAL, /* Operating Mode. */ BMP280::SAMPLING_X2, /* Temp. oversampling */ BMP280::SAMPLING_X16, /* Pressure oversampling */ BMP280::FILTER_X16, /* Filtering. */ BMP280::STANDBY_MS_500); /* Standby time. */ #elif defined(USING_BPS_V11) if (!qmp.begin(&Wire, QMP6988_SLAVE_ADDRESS_L, pin_num_sda, pin_num_scl, 400000U)) { Serial.println("Couldn't find QMP6988"); M5.Display.clear(TFT_RED); while (1) delay(1); } #endif} void loop(){ M5.update(); #if defined(USING_BPS) if (bmp.update()) { M5.Display.setCursor(0, 0); M5.Display.clear(TFT_BLACK); M5.Display.println("-----BMP280-----"); M5.Display.print(F("Temperature: ")); M5.Display.print(bmp.cTemp); M5.Display.println(" degrees C"); M5.Display.print(F("Pressure: ")); M5.Display.print(bmp.pressure); M5.Display.println(" Pa"); M5.Display.print(F("Approx altitude: ")); M5.Display.print(bmp.altitude); M5.Display.println(" m"); M5.Display.println("-------------\r\n"); } #elif defined(USING_BPS_V11) if (qmp.update()) { M5.Display.setCursor(0, 0); M5.Display.clear(TFT_BLACK); M5.Display.println("-----QMP6988-----"); M5.Display.print(F("Temperature: ")); M5.Display.print(qmp.cTemp); M5.Display.println(" *C"); M5.Display.print(F("Pressure: ")); M5.Display.print(qmp.pressure); M5.Display.println(" Pa"); M5.Display.print(F("Approx altitude: ")); M5.Display.print(qmp.altitude); M5.Display.println(" m"); M5.Display.println("-------------\r\n"); } #endif delay(1000);}
1.下载模式: 不同设备进行程序烧录前需要下载模式, 不同的主控设备该步骤可能有所不同。详情可参考Arduino IDE上手教程页面底部的设备程序下载教程列表, 查看具体的操作方式。
CoreS3长按复位按键(大约2秒)直到内部绿色LED灯亮起,便可松开,此时设备已进入下载模式,等待烧录。