雷达传感器也遇到了问题最终原因查明仍然是需要接入5v电压的问题

#include <SPI.h>
#include <SD.h>
#include <SoftwareSerial.h>
#include <HMMD_Radar.h>

// 自定义SPI引脚定义
#define SD_CS_PIN     10    // 片选引脚
#define SD_MOSI_PIN   2    // 主输出从输入
#define SD_MISO_PIN   1    // 主输入从输出
#define SD_SCK_PIN    3    // 时钟引脚

// 定义UART和引脚
#define RADAR_RX_PIN 20
#define RADAR_TX_PIN 21

SoftwareSerial mySerial(RADAR_TX_PIN, RADAR_RX_PIN);

File dataFile;
const char* filename = "/data.txt"; // 存储数据的文件名

void setup() {
  Serial.begin(115200);
  Serial.println("Initializing SD card...");

  // 初始化自定义SPI引脚
  SPI.begin(SD_SCK_PIN, SD_MISO_PIN, SD_MOSI_PIN, SD_CS_PIN);

  // 初始化SD卡
  if (!SD.begin(SD_CS_PIN, SPI, 1000000)) {
    Serial.println("SD初始化失败");
    return;
  } else {
    Serial.println("SD初始化成功");
  }

  // 检查文件是否存在,如果不存在则创建并写入标题行
  if (!SD.exists(filename)) {
    dataFile = SD.open(filename, FILE_WRITE);
    if (dataFile) {
      dataFile.println("Timestamp,Data"); // 添加标题行
      dataFile.close();
      Serial.println("Created new file with headers.");
    } else {
      Serial.println("Error creating file!");
    }
  }

  Serial1.begin(115200, SERIAL_8N1, RADAR_TX_PIN, RADAR_RX_PIN); // UART1 初始化
}

void loop() {
  if (Serial1.available()) {
    String line = Serial1.readStringUntil('\n'); // 按行读取 UART1 数据
    line.trim(); // 去除多余的 \r 或空格
    
    if (line.length() > 0) {
      Serial.println("接收到: " + line);
      
      // 将数据写入SD卡
      dataFile = SD.open(filename, FILE_APPEND);
      
      if (dataFile) {
        // 添加时间戳(以毫秒为单位)
        dataFile.print(millis());
        dataFile.print(",");
        dataFile.println(line);
        dataFile.close();
        Serial.println("数据已写入SD卡");
      } else {
        Serial.println("错误:无法打开文件进行写入!");
      }
    }
  }

  delay(10);
}
最后修改:2025 年 05 月 30 日 11 : 07 AM
如果觉得我的文章对你有用,请随意赞赏