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
|