更新配置代码

This commit is contained in:
LokLiang
2025-04-10 10:57:28 +08:00
parent 59ca87af0d
commit 133181c542
10 changed files with 364 additions and 37 deletions

View File

@@ -27,6 +27,8 @@
#include "drivers/chip/_hal.h"
#include "sdkconfig.h"
#include "hal/adc_types.h"
#include "driver/ledc.h"
#define GPIO_USED(pin) ((pin) < 255)
@@ -44,12 +46,27 @@ typedef struct // 对应 GPIO 单个引脚的输入/输出配置的基础定义
typedef struct // LED: WS2812
{
hal_id_t spi_id; // 模拟 PWM 用的 SPI
uint8_t strip_pin[4]; // 用于驱动灯带的输出引脚。[0] 为默认脚,[1..3] 为附加的另外几路,非 255 表示有效,程序根据这些脚判断接多少根灯带
uint8_t bat_led_pin; // 用于指示电池电量的 LED 灯,非 255 表示有效
uint8_t rf_status_pin; // 板上用于指示状态的 RGB 灯珠,非 255 表示有效
hal_id_t spi_id; // 模拟 PWM 用的 SPI
uint8_t strip_pin[4]; // 用于驱动灯带的输出引脚。[0] 为默认脚,[1..3] 为附加的另外几路,非 255 表示有效,程序根据这些脚判断接多少根灯带
uint8_t bat_led_pin[2]; // 用于指示电池电量的 RGB 灯,[0]为IO非 255 表示有效,[1]为电量灯珠数目
uint8_t rf_status_pin; // 板上用于指示状态的 RGB 灯珠,非 255 表示有效
} cfg_board_led_spi_t;
typedef struct
{
ledc_channel_t pwm_output; // pwm 输出控制引脚,有效电平为打开热输出的电平
uint32_t pwm_period; // pwm 输出周期
} cfg_pwm_config_t;
typedef struct
{
uint8_t adc_short; // 设测温电阻短路阻值为0时将表现的电平0 表示接地1 表示接电源
uint16_t adc_max; // 元器件量程(采样最大值)
uint16_t thermistor_b; // 热敏电阻的材料常数(B值。一般2000~6000之间单位为K)
uint16_t thermistor_ohm; // 热敏电阻在25℃时的阻值(Ω)
uint16_t load_res_ohm; // 测温度负载分压电阻(Ω)
} cfg_thermistor_config_t;
typedef enum __packed // 用于与飞控通讯的数据接口
{
CFG_BOARD_FC_PORT_UART = 0, // 使用串口与飞控通讯
@@ -85,6 +102,7 @@ typedef struct // 数据结构一旦定下不可随意变更
cfg_board_pin_io_t key_reset; // 按键检测:开机时长安 10 秒恢复出厂设置的按键,有效电平为按下电平
cfg_board_pin_io_t key_led_strip_switch; // 按键检测:切换灯带效果,适用于灯带固件,有效电平为按下电平
cfg_board_pin_io_t key_led_color_switch; // 按键检测:切换灯带效果,适用于竞速灯带切换颜色,有效电平为按下电平
cfg_board_pin_io_t key_rf_switch; // 按键检测:切换射频数据接口,适用于固定翼无线 USB 板,有效电平为按下电平
cfg_board_pin_io_t key_9v_switch; // 按键检测9伏电源开关控制适用 F7V4, 有效电平为按下电平
@@ -96,6 +114,10 @@ typedef struct // 数据结构一旦定下不可随意变更
cfg_board_pin_io_t led_strip_on; // 灯带控制主机切换的指示灯,有效电平为点亮电平
cfg_board_pin_io_t led_bat[4]; // 电池电量指示灯,有效电平为点亮电平
hal_adc_hdl_t heat_adc; // 用于 ADC 测量的配置
cfg_pwm_config_t heat_pwm; // 用于控制 PWM 输出的配置
cfg_thermistor_config_t heat_thermistor; // 热敏电阻配置
/* 产品功能描述类 */
} cfg_board_t;