g0b1vetx-board/middleware/modbus/modbus-s.h
2023-05-19 18:02:00 +08:00

31 lines
640 B
C

#ifndef _MODBUS_S_H
#define _MODBUS_S_H
#include "stm32g0xx_hal.h"
// modbus 支持的最大地址
#define MODBUS_S_MAX_ADDR 0X000A
typedef struct ModBusSlave_t{
uint8_t ID; // 从机地址
uint8_t func;
uint16_t Addr; // 寄存器地址
uint16_t length; // 寄存器长度
uint8_t * data; // 写入的数据
uint16_t crc; // crc
uint16_t * reg;// 寄存器
uint16_t regmax;
} ModBusSlave_t;
void ModbusSlaveInit(ModBusSlave_t * drv,uint8_t ID,uint8_t * data,uint16_t * reg,uint16_t max);
int ModbusSlaveHandle(ModBusSlave_t * drv,uint8_t * data,uint16_t length );
int ModbusSlavePacket(ModBusSlave_t * drv,uint8_t *data);
#endif