求助大佬,我的代码一直卡在读取传感器数据代码不运行
#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]