/* * mb_sample_rtu_master.c * * Change Logs: * Date Author Notes * 2024-04-02 qiyongzhong first version */ #include "rtthread.h" #include "modbus.h" #ifdef MB_USING_SAMPLE_RTU_MASTER #define DBG_TAG "mb.rtu.master" #define DBG_LVL DBG_LOG #include static const mb_backend_param_t mb_bkd_prm = { .rtu.dev = "uart1", //设备名 .rtu.baudrate = 9600, //波特率 .rtu.parity = 0, //校验位, 0-无, 1-奇, 2-偶 .rtu.pin = -1, //控制引脚, <0 表示不使用 .rtu.lvl = 0 //控制发送电平 }; static void mb_sample_read_regs(mb_inst_t *hinst) { if (mb_connect(hinst) < 0)//连接失败, 延时返回 { LOG_E("modbus connect fail."); return; } u16 regs[64]; int addr = 4000; int nb = 29; int total = mb_read_regs(hinst, addr, nb, regs); if (total <= 0) { LOG_E("modbus read register fail."); return; } LOG_D("modbus read register success."); for (int i=0; i