Files
433_STM32/Core/Inc/relay_control.h
zhongxuanzhen 71027ebc46 3.27_433:添加UART2调试打印、IO监控、指令解析和继电器控制模块。
能够接收UART2指令控制继电器开关,或向UART2发送四路IO输入状态,并使用轮询方式检测IO状态进行及时反馈。
2026-03-27 10:09:13 +08:00

73 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
* @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