3.27_433:添加UART2调试打印、IO监控、指令解析和继电器控制模块。

能够接收UART2指令控制继电器开关,或向UART2发送四路IO输入状态,并使用轮询方式检测IO状态进行及时反馈。
This commit is contained in:
2026-03-27 10:09:13 +08:00
parent f548593c59
commit 71027ebc46
76 changed files with 6789 additions and 1803 deletions

72
Core/Inc/relay_control.h Normal file
View File

@ -0,0 +1,72 @@
/**
******************************************************************************
* @file relay_control.h
* @brief 继电器控制模块头文件
* @author Application Layer
* @version 1.0
******************************************************************************
* @attention
* 本模块提供继电器的安全控制接口
* 当前硬件配置PA15连接继电器控制端
******************************************************************************
*/
#ifndef __RELAY_CONTROL_H
#define __RELAY_CONTROL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
#define RELAY_COUNT 1
#define RELAY_MIN_INTERVAL 100
/**
* @brief 初始化继电器控制模块
* @note 将继电器初始状态设为关闭
* @param 无
* @retval 无
*/
void Relay_Init(void);
/**
* @brief 设置继电器状态
* @note 带最小间隔保护,防止频繁切换损坏继电器
* @param relay_id: 继电器编号(1-4)当前硬件只有1
* @param state: true=打开, false=关闭
* @retval 无
*/
void Relay_SetState(uint8_t relay_id, bool state);
/**
* @brief 获取继电器当前状态
* @note 读取GPIO输出状态
* @param relay_id: 继电器编号(1-4)
* @retval true=打开, false=关闭
*/
bool Relay_GetState(uint8_t relay_id);
/**
* @brief 翻转继电器状态
* @note 带最小间隔保护
* @param relay_id: 继电器编号(1-4)
* @retval 无
*/
void Relay_Toggle(uint8_t relay_id);
/**
* @brief 获取继电器切换次数
* @note 用于调试和诊断
* @param 无
* @retval 切换次数
*/
uint32_t Relay_GetToggleCount(void);
#ifdef __cplusplus
}
#endif
#endif