73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
/**
|
||
******************************************************************************
|
||
* @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
|