参考代码

This commit is contained in:
LokLiang
2024-03-28 12:19:52 +08:00
commit 7b86aa3362
96 changed files with 19986 additions and 0 deletions

27
app/config/board_config.c Normal file
View File

@@ -0,0 +1,27 @@
#include "board_config.h"
#include "driver/uart.h"
#define CONFIG_SYS_LOG_LEVEL SYS_LOG_LEVEL_DBG
#define SYS_LOG_DOMAIN "CFG"
#define CONS_ABORT()
#include "sys_log.h"
static cfg_board_t const s_cfg_board_default = {
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 启动按键 */
.key_boot = {
.pin = 9, // 用于切换灯效
.en_lev = 0, // 用于切换灯效
},
};
const cfg_board_t *g_cfg_board = &s_cfg_board_default;

40
app/config/board_config.h Normal file
View File

@@ -0,0 +1,40 @@
/**
* @file board_config.h
* @author LokLiang
* @brief 统一板载硬件描述数据结构
* @version 0.1
* @date 2023-11-24
*
* @copyright Copyright (c) 2023
*
* 目的与作用场景:
* 使同类型的固件适应不同的硬件版本。
* 例如同一类型产品,即使某些功能引脚改动,依然可以根据配置文件正确引导程序,而不需要新增特定的固件版本,旧的产品依然得到长期的支持。
*
* 数据设置:
* 只能在工厂中配置,除此之外不允许任何手段尝试修改。
* 数据地址固定为分区配置中
*
*/
#pragma once
#include "drivers/chip/_hal.h"
typedef struct // 按键配置
{
uint8_t pin; // 引脚号
uint8_t en_lev; // 触发电平
} cfg_board_key_t;
typedef struct // 数据结构一旦定下不可随意变更
{
/* 硬件描述类 */
hal_uart_hdl_t uart_console; // 控制台
cfg_board_key_t key_boot; // 启动按键
/* 产品功能描述类 */
} cfg_board_t;
extern const cfg_board_t *g_cfg_board; // 配置数据

View File

@@ -0,0 +1,40 @@
#if (CONFIG_BOARD_NAME_BEC_LED_STRIP_ESP32C3)
#define CONFIG_IDF_TARGET "esp32c3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
static cfg_board_t const s_cfg_board_default = {
.firmware_str = PRODUCT_TYPE,
.platform_str = CONFIG_IDF_TARGET,
.board_name = "bec_led_strip_esp32c3",
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 数据透传串口 */
.uart_fc = {
.pin_txd = {3, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {5, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_1,
.irq_prior = 24,
.br = 115200,
},
.led_spi = {
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
.pin = 18, // 模拟 PWM 输出引脚
},
/* 启动按键 */
.key_boot = {
.pin = 7, // 用于切换灯效
.en_lev = 1, // 用于切换灯效
},
};
#endif

View File

@@ -0,0 +1,40 @@
#if (CONFIG_BOARD_NAME_DEVKIT_ESP32C2)
#define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
static cfg_board_t const s_cfg_board_default = {
.firmware_str = PRODUCT_TYPE,
.platform_str = CONFIG_IDF_TARGET,
.board_name = "devkit_esp32c2",
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 数据透传串口 */
.uart_fc = {
.pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_1,
.irq_prior = 24,
.br = 115200,
},
.led_spi = {
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
.pin = 1, // 模拟 PWM 输出引脚
},
/* 启动按键 */
.key_boot = {
.pin = 9, // 用于切换灯效
.en_lev = 0, // 用于切换灯效
},
};
#endif

View File

@@ -0,0 +1,40 @@
#if (CONFIG_BOARD_NAME_DEVKIT_ESP32C3)
#define CONFIG_IDF_TARGET "esp32c3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
static cfg_board_t const s_cfg_board_default = {
.firmware_str = PRODUCT_TYPE,
.platform_str = CONFIG_IDF_TARGET,
.board_name = "devkit_esp32c3",
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 数据透传串口 */
.uart_fc = {
.pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_1,
.irq_prior = 24,
.br = 115200,
},
.led_spi = {
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
.pin = 10, // 模拟 PWM 输出引脚
},
/* 启动按键 */
.key_boot = {
.pin = 9, // 用于切换灯效
.en_lev = 0, // 用于切换灯效
},
};
#endif

View File

@@ -0,0 +1,40 @@
#if (CONFIG_BOARD_NAME_FIXEDWING_NEW)
#define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
static cfg_board_t const s_cfg_board_default = {
.firmware_str = PRODUCT_TYPE,
.platform_str = CONFIG_IDF_TARGET,
.board_name = "fixedwing_new",
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 数据透传串口 */
.uart_fc = {
.pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_1,
.irq_prior = 24,
.br = 115200,
},
.led_spi = {
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
.pin = 1, // 模拟 PWM 输出引脚
},
/* 启动按键 */
.key_boot = {
.pin = 3, // 用于切换灯效
.en_lev = 1, // 用于切换灯效
},
};
#endif

View File

@@ -0,0 +1,40 @@
#if (CONFIG_BOARD_NAME_FIXEDWING_OLD)
#define CONFIG_IDF_TARGET "esp32c2" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */
static cfg_board_t const s_cfg_board_default = {
.firmware_str = PRODUCT_TYPE,
.platform_str = CONFIG_IDF_TARGET,
.board_name = "fixedwing_old",
/* 控制台串口 */
.uart_console = {
.pin_txd = {43, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {44, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_0,
.irq_prior = 0,
.br = 115200,
},
/* 数据透传串口 */
.uart_fc = {
.pin_txd = {8, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP},
.pin_rxd = {7, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP},
.id = UART_NUM_1,
.irq_prior = 24,
.br = 115200,
},
.led_spi = {
.spi_id = SPI2_HOST, // 模拟 PWM 用的 SPI
.pin = 1, // 模拟 PWM 输出引脚
},
/* 启动按键 */
.key_boot = {
.pin = 3, // 用于切换灯效
.en_lev = 1, // 用于切换灯效
},
};
#endif