3.27_433:添加UART2调试打印、IO监控、指令解析和继电器控制模块。
能够接收UART2指令控制继电器开关,或向UART2发送四路IO输入状态,并使用轮询方式检测IO状态进行及时反馈。
This commit is contained in:
72
Core/Inc/relay_control.h
Normal file
72
Core/Inc/relay_control.h
Normal 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
|
||||
Reference in New Issue
Block a user