fix(slave_node): Stabilize Modbus RTU communication

The Modbus server was previously unstable, leading to intermittent CRC errors when polled by a master. This was caused by the main thread exiting after initialization, which created timing and race condition issues for the interrupt-driven Modbus stack.

This fix ensures the main thread continues to run in a low-power sleep loop (). This provides a stable context for the Modbus server, resolving the CRC errors and ensuring reliable communication.
This commit is contained in:
Eduard Iten 2025-07-01 14:30:22 +02:00
parent 6f81e84541
commit 1067796df4
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,17 @@
/ {
chosen {
zephyr,console = &rtt;
zephyr,shell-uart = &rtt; // If using shell
};
rtt: rtt {
compatible = "segger,rtt-uart";
#address-cells = <1>;
#size-cells = <0>;
label = "RTT";
status = "okay";
};
};
&usart1 {
modbus0 {
compatible = "zephyr,modbus-serial";

View File

@ -111,5 +111,10 @@ int main(void)
LOG_ERR("Modbus RTU server initialization failed");
}
LOG_INF("APP started");
while (1) {
k_sleep(K_MSEC(1000));
}
return 0;
}
}