25浏览
查看: 25|回复: 0

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

[复制链接]
#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...
求助大佬,是哪里出了问题,要怎么解决啊?
FriJune-202506135123..png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail