/****************************************************************************** * @file MODBUS.h * @brief Modbus RTU 协议通信处理模块头文件 * @details 本文件声明了 Modbus RTU 通信相关的接口函数,包括主处理、LOGO 显示、 * 轮询计数与初始化等。配合 MODBUS.c 使用,通过 RS485 与从站通信。 * @author 阜阳师范大学物电学院 * @version V0.01 * @date 2026.1.23 * @note 通信协议:Modbus RTU * 通信接口:RS485 * 主站地址:0x01 ******************************************************************************/ #ifndef MODBUS_H__ #define MODBUS_H__ #include "./SYSTEM/sys/sys.h" #include "./SYSTEM/delay/delay.h" #include "key.h" /* ============================================================================ * 函数声明 * ============================================================================ */ /** * @brief Modbus 通信主处理函数(远程图片处理) * @param key 按键值(KEY_TYPE),用于上报按键事件 * @note 处理接收帧、按键上报、定时刷新、应答超时等;采用 138 端处理图片、 * 整体上传显示的方式刷图。需在周期任务中调用。 * @retval */ void RS485_Process(KEY_TYPE key); /** * @brief 从 Flash 读取 LOGO 并显示 * @note 调用 BMP_Get 读 Flash,再 LOGO_Printf 显示,合计延时约 2s * @retval 无 */ void NL_LOGO_Printf(void); /** * @brief 轮询计数处理(需在 5ms 周期定时器中调用) * @note 递增 RT_count;若 ACK_COUNT_ABLE 置位则递增 ACK_count,用于超时检测 * @retval 无 */ void Process_Count(void); /** * @brief Modbus 轮询与应答相关变量初始化 * @note 清零超时、应答计数等标志,置位 CMD_ACK 允许发送。上电或重新建立通信前调用 * @retval 无 */ void Process_Init(void); #endif /* MODBUS_H__ */