为什么我的Heltec LoRa V3板在发送消息时卡在初始化状态?

问题描述 投票:0回答:2

我正在使用 Heltec WiFi LoRa 32 V3 板通过 LoRa 发送消息。但是,我的代码挂在设置阶段,特别是在 while (!LoRa.begin(868E6)) 循环中。主板从未成功初始化,我不知道为什么。

我已经使用 PlatformIO 设置了我的环境,配置如下:

PlatformIO 项目配置文件:

[env:heltec_wifi_lora_32_V3]
platform = espressif32
board = heltec_wifi_lora_32_V3
framework = arduino
lib_deps =
  sandeepmistry/LoRa @ ^0.8.0
monitor_speed = 115200

这是我正在运行的代码:

#include <LoRa.h>    // Library for LoRa communication
#include <Arduino.h> // Base Arduino library for compatibility

// Define pins used by the LoRa transceiver module
#define ss 18   // SS (Slave Select) pin for SPI communication with the LoRa module
#define rst 14  // RST (Reset) pin to reset the LoRa module
#define dio0 26 // DIO0 (Digital I/O) pin for interrupt, signals when a packet is available

int counter = 0; // Tracks the number of packets sent

void setup()
{
  Serial.begin(115200);          // Start serial communication at 115200 baud
  Serial.println("LoRa Sender"); // Print an initial message indicating the sender is active

  // Set the pins for communication with the LoRa module
  LoRa.setPins(ss, rst, dio0);

  // Attempt to start the LoRa module on the 868 MHz frequency (standard for Europe)
  while (!LoRa.begin(868E6)) // LoRa.begin returns 'false' if initialization fails
  {
    Serial.println("."); // Prints a dot every 500 ms to show it’s attempting initialization
    delay(500);          // Waits half a second between attempts
  }

  // Set a "sync word" to filter packets and receive only those intended for us
  LoRa.setSyncWord(0xF3);

  // Print a success message once the LoRa module is initialized
  Serial.println("LoRa Initialization OK!");
}

void loop()
{
  // Print the packet number to the serial monitor
  Serial.print("Sending packet: ");
  Serial.println(counter);

  // Begin packet creation
  LoRa.beginPacket();

  // Write "hello" and the counter value in the packet
  LoRa.print("hello ");
  LoRa.print(counter);

  // Complete the packet and send it via LoRa
  LoRa.endPacket();

  // Increment counter for the next packet
  counter++;

  // Wait 10 seconds before sending the next packet
  delay(10000); // Sends a new packet every 10 seconds
}

问题: 当我运行代码时,它停留在初始化循环中,我只看到 .串行监视器中连续打印,这表明 LoRa 模块无法初始化。我检查了引脚定义,但不确定它们是否正确。

附加信息: LoRa 库:sandeepmistry/LoRa @ ^0.8.0 平台:PlatformIO 主板:Heltec WiFi LoRa 32 V3(基于 ESP32) 频率:868兆赫 问题: Heltec WiFi LoRa 32 V3 的引脚定义是否正确? 在这种情况下,什么可能导致 LoRa 模块初始化失败? 此设置在 macOS M1/M2 硬件上是否存在任何已知的兼容性问题? 任何见解将不胜感激!预先感谢您。

arduino esp32 platformio lora
2个回答
1
投票

在此阶段,要么是硬件问题,要么是引脚配置问题...代码无法通过 SPI 与 LoRa 模块通信。两个设备上的情况相同吗?在这种情况下,引脚配置是最有可能的罪魁祸首。

#编辑

我刚刚意识到 V3 有一个 s,1262。 Sandeep 的图书馆无法使用。使用radiolib。


1
投票

引脚配置检查:我根据 Heltec WiFi LoRa 32 V3 板的引脚图仔细检查了引脚定义。引脚定义(SCK、MISO、MOSI、SS、RST 和 DI0)似乎是正确的。

我不知道你所说的“文档”是什么。根据Heltec_wifi_lor_32_v3板的ESP32 Arduino框架变体定义源代码和原理图v3.2,SPI端口和Lora连接定义为:

// shown on both the pin definition and schematic
SS = 8
MOSI = 10
MISO = 11
SCK = 9
// shown on schematic
Lora_RST = 12
Lora_BUSY = 13
DIO1 = 14

我建议您阅读文档和来自Heltec示例的示例代码,而不是某些第三方库。

© www.soinside.com 2019 - 2024. All rights reserved.