完成继电器三个通道的设置,还有1通道引脚占用错误要修改

This commit is contained in:
Wang Beihong
2026-04-20 23:48:54 +08:00
parent f426d52175
commit fc906db35f
4 changed files with 60 additions and 117 deletions

View File

@@ -1,9 +1,7 @@
#pragma once
#include <stdbool.h>
#include "driver/gpio.h"
#include "esp_err.h"
#include "driver/gpio.h"
#ifdef __cplusplus
extern "C" {
@@ -11,51 +9,31 @@ extern "C" {
typedef enum {
RELAY_CTRL_ID_1 = 0,
RELAY_CTRL_ID_2 = 1,
RELAY_CTRL_ID_3 = 2,
RELAY_CTRL_ID_4 = 3,
RELAY_CTRL_ID_MAX,
RELAY_CTRL_ID_2,
RELAY_CTRL_ID_3,
RELAY_CTRL_ID_4,
RELAY_CTRL_ID_MAX
} relay_ctrl_id_t;
/**
* @brief 初始化四路继电器控制模块。
*
* @param relay1_gpio 继电器1控制引脚
* @param relay2_gpio 继电器2控制引脚
* @param relay3_gpio 继电器3控制引脚
* @param relay4_gpio 继电器4控制引脚
* @param active_high 继电器有效电平true=高电平吸合false=低电平吸合
* @brief 继电器配置结构体
*/
esp_err_t relay_ctrl_init(gpio_num_t relay1_gpio,
gpio_num_t relay2_gpio,
gpio_num_t relay3_gpio,
gpio_num_t relay4_gpio,
bool active_high);
typedef struct {
gpio_num_t pin; // GPIO 引脚
bool active_high; // 该继电器是否为高电平触发
} relay_config_t;
/**
* @brief 设置指定继电器状态。
*
* @param relay_id 继电器编号
* @param on true=吸合false=断开
* @brief 初始化继电器控制模块
*
* @param config 包含 4 个继电器详细配置的数组
* @return esp_err_t
*/
esp_err_t relay_ctrl_init(const relay_config_t config[RELAY_CTRL_ID_MAX]);
esp_err_t relay_ctrl_set(relay_ctrl_id_t relay_id, bool on);
/**
* @brief 翻转指定继电器状态。
*/
esp_err_t relay_ctrl_toggle(relay_ctrl_id_t relay_id);
/**
* @brief 获取指定继电器状态。
*
* @param relay_id 继电器编号
* @param on_out [out] 当前逻辑状态true=吸合false=断开
*/
esp_err_t relay_ctrl_get(relay_ctrl_id_t relay_id, bool *on_out);
/**
* @brief 一次性设置四个继电器状态。
*/
esp_err_t relay_ctrl_set_all(bool relay1_on, bool relay2_on, bool relay3_on, bool relay4_on);
#ifdef __cplusplus