30| 0
|
[项目] Beetle树莓派RP2350代码篇五稿 |
#include <Wire.h> #include <Adafruit_SSD1306.h> #include <SoftwareSerial.h> #define OLED_WIDTH 128 #define OLED_HEIGHT 64 #define OLED_ADDR 0x3C SoftwareSerial hrSerial(18, 19); // RX=18, TX未用 Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); int bpm = 0; void setup() { Serial.begin(9600); hrSerial.begin(9600); // 波特率需与传感器匹配 // 初始化OLED if (!oled.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) { Serial.println("OLED初始化失败"); while (1); } oled.clearDisplay(); oled.setTextSize(1); oled.setTextColor(SSD1306_WHITE); oled.display(); } void loop() { // 读取心率传感器数据 if (hrSerial.available()) { String data = hrSerial.readStringUntil('\n'); parseBPM(data); // 解析BPM值 updateDisplay(); // 刷新OLED } } void parseBPM(String data) { // 假设数据格式为"BPM:72" int startIdx = data.indexOf("BPM:"); if (startIdx != -1) { String valStr = data.substring(startIdx + 4); bpm = valStr.toInt(); } } void updateDisplay() { oled.clearDisplay(); oled.setCursor(0, 0); oled.print("心率监测"); oled.setCursor(0, 20); oled.print("BPM: "); oled.print(bpm); oled.display(); } |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed