31 lines
640 B
C
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
|
|
|
|
|