// // Created by dell on 24-12-3. // #ifndef RS485_H #define RS485_H #include "gd32e23x_it.h" #include "gd32e23x.h" #include "systick.h" #include #include #include #include #include #define RS485_RCU RCU_USART0 #define RS485_GPIO_RCU RCU_GPIOA #define RS485_GPIO_PORT GPIOA #define RS485_TX_PIN GPIO_PIN_2 #define RS485_RX_PIN GPIO_PIN_3 #define RS485_PHY USART0 #define RS485_BAUDRATE 115200U #define RS485_EN_PIN GPIO_PIN_1 #define RX_BUFFER_SIZE 64 typedef enum { VALIDATION_SUCCESS = 0, VALIDATION_CRC_ERROR = 1 } validation_result_t; void rs485_config(void); void process_command(uint8_t *cmd, size_t length); uint8_t calculate_crc(uint8_t data[], size_t data_length); validation_result_t validate_package_header(uint8_t *data); validation_result_t validate_package_type(uint8_t *data); void eddy_current_value_report(void); void tempture_value_report(void); #endif //RS485_H