#ifndef MODBUS_H #define MODBUS_H #include "stm32f1xx_hal.h" // callback function definition typedef void (*ModbusCallback)(uint8_t slave, uint16_t addr, uint8_t *data); typedef struct callback_node{ uint8_t slave; uint16_t addr; ModbusCallback callback; struct callback_node *next; }CallbackNode; typedef struct modbus_task_node{ uint8_t task_id; uint8_t slave_addr; uint8_t func_code; uint16_t reg_addr; uint16_t reg_count; uint16_t interval; uint32_t last_task_time; struct modbus_task_node *next; }modbus_task; typedef struct { uint8_t slave; uint16_t reg_addr; uint8_t *target; }AlignTable; uint8_t is_ready1; uint8_t is_ready2; uint8_t is_ready3; uint8_t bitmap1[5]; uint8_t bitmap2[5]; uint8_t bitmap3[5]; AlignTable table[] = { {1,1000,&is_ready1}, {1,2000,bitmap1}, {2,1000,&is_ready2}, {2,2000,bitmap2}, {3,1000,&is_ready3}, {3,2000,bitmap3}, }; #endif