/* * modbus.h * * Created on: Jul 3, 2025 * Author: shiyanlei */ #ifndef __MODBUS_SLAVE_H #define __MODBUS_SLAVE_H #include "stm32g0xx_hal.h" /* 定义Modbus相关参数 */ #define MODBUS_SLAVE_ADDRESS 0x42 #define MODBUS_FUNCTION_CODE_03 0x03 #define MODBUS_FUNCTION_CODE_06 0x06 #define MODBUS_FUNCTION_CODE_10 0x10 // 写多个寄存器功能码 #define MODBUS_BUFFER_SIZE 256 #define MODBUS_TIMEOUT_MS 5 #define MODBUS_CRC_OFF 0 //==1关闭CRC校验 /* 定义寄存器相关参数 */ #define REGISTER_START_ADDRESS 0x0000 #define REGISTER_COUNT 10 extern uint8_t modbusBuffer[MODBUS_BUFFER_SIZE]; //extern uint16_t holdingRegisters[REGISTER_COUNT]; extern int16_t holdingRegisters[REGISTER_COUNT]; #define registerWritable_0 1 //IO_1 #define registerWritable_1 1 //IO_2 #define registerWritable_2 0 //Encoder #define registerWritable_3 1 //PWM 1-99 #define registerWritable_4 0 //Current mA #define registerWritable_5 1 //Zero Encoder #define registerWritable_6 1 //Auto Position Enable #define registerWritable_7 1 //Auto Position Target #define registerWritable_8 0 #define registerWritable_9 1 //Auto Position Tolerance /* 初始化Modbus从机 */ void Modbus_Init(void); /* 处理Modbus消息 */ void Modbus_Process(void); #endif /* __MODBUS_SLAVE_H */