风景旧曾谙 发表于 昨天 01:14

求助大佬,我的代码一直卡在读取传感器数据代码不运行

#include <Arduino.h>
#include <ModbusMaster.h>

#define RS485_RX   16
#define RS485_TX   17

ModbusMaster node;

void setup() {
Serial.begin(115200); // 用于打印输出到串口监视器

Serial.println("Setup Start");

Serial1.begin(115200, SERIAL_8N1, RS485_RX, RS485_TX); // 用于和485设备通讯
node.begin(1, Serial1); // Modbus主站节点初始化

Serial.println("Modbus RTU Wind Speed Sensor Test");
}

void loop() {

Serial.println("Loop running...");

uint8_t result = node.readHoldingRegisters(0x0000, 1);


if (result == node.ku8MBSuccess) {
    uint16_t windSpeedRaw = node.getResponseBuffer(0);
    float windSpeed = windSpeedRaw / 10.0f;
    Serial.print("Wind Speed: ");
    Serial.print(windSpeed);
    Serial.println(" m/s");
} else {
    Serial.print("Modbus Error: ");
    Serial.println(result, HEX);
}

delay(1000);
}
这是代码
连线图大概是图片里的方式,只是芯片用的是esp32-wroom,电源模块直接用了12v的电源模块。
然后烧录程序之后我的串口监视器运行到Serial.println("Loop running...");
直接跳到Serial.print("Modbus Error: ");
             Serial.println(result, HEX);
然后串口输出一直是这样的:
---- 已打开串行端口 COM8 ----
Modbus Error: E2
Loop running...
Loop running1...
Modbus Error: E2
Loop running...
Loop running1...
Modbus Error: E2
Loop running...
Loop running1...
Modbus Error: E2
Loop running...
Loop running1...
Modbus Error: E2
Loop running...
Loop running1...
求助大佬,是哪里出了问题,要怎么解决啊?
页: [1]
查看完整版本: 求助大佬,我的代码一直卡在读取传感器数据代码不运行