/** * @file config.h * @brief 应用级集中配置项定义。 * @note 用于统一管理当前项目中可调的外设、时序、通信与算法常量。 */ #ifndef SYS_CONFIG_H #define SYS_CONFIG_H /** @brief 应用启动横幅字符串。 */ #define APP_BANNER_TEXT "GD32E508 DCU task scheduler start" /** @brief USART0 默认波特率。 */ #define CONFIG_USART0_BAUDRATE 115200U /** @brief ADC 外设实例。 */ #define CONFIG_ADC_INSTANCE ADC0 /** @brief ADC 外部 VIN 检测通道号(原理图:PA6 -> VIN_ADC)。 */ #define CONFIG_ADC_VIN_CHANNEL ADC_CHANNEL_6 /** @brief ADC 内部温度通道号。 */ #define CONFIG_ADC_TEMP_CHANNEL ADC_CHANNEL_16 /** @brief ADC 内部参考电压通道号。 */ #define CONFIG_ADC_VREFINT_CHANNEL ADC_CHANNEL_17 /** @brief ADC 满量程计数值。 */ #define CONFIG_ADC_MAX_VALUE 4095.0f /** @brief 内部参考电压典型值,单位 V。 */ #define CONFIG_ADC_VREFINT_TYPICAL_VOLTAGE 1.20f /** @brief 温度传感器 25℃ 对应电压,单位 V。 */ #define CONFIG_ADC_TEMP_V25 1.43f /** @brief 温度传感器平均斜率,单位 V/℃。 */ #define CONFIG_ADC_TEMP_AVG_SLOPE 0.0043f /** @brief ADC 上电后稳定等待时间,单位 ms。 */ #define CONFIG_ADC_STABILIZE_DELAY_MS 2U /** @brief ADC 规则通道采样时间配置。 */ #define CONFIG_ADC_SAMPLE_TIME ADC_SAMPLETIME_239POINT5 /** @brief ADC 空输入保护时默认 VDDA,单位 V。 */ #define CONFIG_ADC_DEFAULT_VDDA 3.3f /** @brief ADC 中值滤波窗口长度(最终样本数为该值 + 1)。 */ #define CONFIG_ADC_FILTER_SIZE 6U /** @brief CAN 外设实例。 */ #define CONFIG_CAN_INSTANCE CAN0 /** @brief CAN 外设时钟使能枚举。 */ #define CONFIG_CAN_RCU RCU_CAN0 /** @brief CAN 状态报文标准帧 ID。 */ #define CONFIG_CAN_STATUS_ID 0x321U /** @brief ESP32 请求 DCU_APP 进入 Bootloader OTA 窗口的扩展帧 ID(备用 CAN 入口)。 */ #define CONFIG_CAN_OTA_BOOT_REQ_ID 0x00000320U /** @brief 进入 Bootloader OTA 请求魔术字节 0。 */ #define CONFIG_CAN_OTA_BOOT_MAGIC0 0x4FU /** @brief 进入 Bootloader OTA 请求魔术字节 1。 */ #define CONFIG_CAN_OTA_BOOT_MAGIC1 0x54U /** @brief 进入 Bootloader OTA 请求魔术字节 2。 */ #define CONFIG_CAN_OTA_BOOT_MAGIC2 0x41U /** @brief 进入 Bootloader OTA 请求魔术字节 3。 */ #define CONFIG_CAN_OTA_BOOT_MAGIC3 0x21U /** @brief ESP32 在 APP 运行期通过 SPI 发送的进入 Bootloader OTA 命令。 */ #define CONFIG_SPI_APP_OTA_BOOT_CMD 0xB0U /** @brief SPI 进入 Bootloader OTA 命令确认状态:成功。 */ #define CONFIG_SPI_APP_OTA_BOOT_ACK_OK 0xB5U /** @brief SPI 进入 Bootloader OTA 命令确认状态:失败。 */ #define CONFIG_SPI_APP_OTA_BOOT_ACK_ERROR 0xE2U /** @brief CAN 接收过滤器目标标准帧 ID。 */ #define CONFIG_CAN_RX_FILTER_ID CONFIG_CAN_STATUS_ID /** @brief CAN 接收过滤器标准帧掩码;`0x7FFU` 表示精确匹配 11-bit ID。 */ #define CONFIG_CAN_RX_FILTER_MASK 0x7FFU /** @brief 单次 CAN 接收解析任务最多消费的软件队列帧数,避免主循环长期被接收流量占用。 */ #define CONFIG_CAN_RX_PARSE_BUDGET 48U /** @brief CAN 状态载荷中调试标识字符 0。 */ #define CONFIG_CAN_STATUS_TAG0 0x43U /** @brief CAN 状态载荷中调试标识字符 1。 */ #define CONFIG_CAN_STATUS_TAG1 0x41U /** @brief CAN 状态载荷中调试标识字符 2。 */ #define CONFIG_CAN_STATUS_TAG2 0x4EU /** @brief CAN 状态载荷中调试标识字符 3。 */ #define CONFIG_CAN_STATUS_TAG3 0x46U /** @brief 用户调度定时器实例。 */ #define CONFIG_SCHED_TIMER_INSTANCE TIMER2 /** @brief 用户调度定时器中断号。 */ #define CONFIG_SCHED_TIMER_IRQn TIMER2_IRQn /** @brief 用户调度定时器时钟使能宏参数。 */ #define CONFIG_SCHED_TIMER_RCU RCU_TIMER2 /** @brief 用户调度定时器预分频值。 */ #define CONFIG_SCHED_TIMER_PRESCALER 179U /** @brief 用户调度定时器周期重装值。 */ #define CONFIG_SCHED_TIMER_PERIOD 99U /** @brief 用户调度定时器 NVIC 抢占优先级。 */ #define CONFIG_SCHED_TIMER_IRQ_PREEMPT_PRIO 1U /** @brief 用户调度定时器 NVIC 子优先级。 */ #define CONFIG_SCHED_TIMER_IRQ_SUB_PRIO 0U /** @brief 调度基准节拍:ADC VREF 采样周期,单位 100us tick。 */ #define CONFIG_TASK_PERIOD_VREF_SAMPLE_TICKS 5U /** @brief 调度基准节拍:ADC 温度采样/处理周期,单位 100us tick。 */ #define CONFIG_TASK_PERIOD_TEMP_SAMPLE_TICKS 10U /** @brief 调度基准节拍:10ms 计数周期,单位 100us tick。 */ #define CONFIG_TASK_PERIOD_CAN_RX_TICKS 100U /** @brief 调度基准节拍:CAN 发送/状态灯周期,单位 100us tick。 */ #define CONFIG_TASK_PERIOD_CAN_TX_TICKS 1000U /** @brief 调度基准节拍:心跳/诊断打印周期,单位 100us tick。 */ #define CONFIG_TASK_PERIOD_HEARTBEAT_TICKS 10000U /** @brief 周期温度/电压 UART 打印开关:0=关闭,1=开启。 */ #define CONFIG_UART_TEMP_PERIODIC_PRINT 1 /** @brief UART 诊断打印级别:0=仅温度/电压,1=温度/电压+CAN 统计。 */ #define CONFIG_UART_DIAG_LEVEL 1 /** @brief FWDGT 独立看门狗预分频值。 */ #define CONFIG_FWDGT_PSC FWDGT_PSC_DIV64 /** @brief FWDGT 独立看门狗重载值。 * 超时 = (64 / 40000) * (RLD + 1) = 1.6ms * (RLD+1) * RLD=1874 → 1.6ms * 1875 ≈ 3.0s */ #define CONFIG_FWDGT_RLD 1874U /** @brief FWDGT 超时近似值(毫秒),仅供文档参考。 */ #define CONFIG_FWDGT_TIMEOUT_MS 3000U /* ============================================================ * APP 固件版本号 * ============================================================ */ /** @brief APP 主版本号。 */ #define APP_FW_VERSION_MAJOR 1U /** @brief APP 次版本号。 */ #define APP_FW_VERSION_MINOR 0U /** @brief APP 补丁版本号。 */ #define APP_FW_VERSION_PATCH 1U /** @brief APP 构建编号。 */ #define APP_FW_VERSION_BUILD 2U /* ============================================================ * BOOT 版本在 OTA 配置页中的 Flash 存储地址 * 与 BOOT 工程 sys/config.h 保持一致 * ============================================================ */ /** @brief OTA 配置页基地址。 */ #define CONFIG_OTA_CONFIG_PAGE_ADDR 0x0807E000U /** @brief BOOT 版本存储地址(word 6,低 32 位:major|minor)。 */ #define CONFIG_BOOT_VERSION_ADDR0 (CONFIG_OTA_CONFIG_PAGE_ADDR + 0x18U) /** @brief BOOT 版本存储地址(word 7,低 32 位:patch|build)。 */ #define CONFIG_BOOT_VERSION_ADDR1 (CONFIG_OTA_CONFIG_PAGE_ADDR + 0x1CU) /** @brief OTA 配置页总 word 数(6 个 OTA 标志 + 2 个 BOOT 版本)。 */ #define CONFIG_OTA_CONFIG_WORD_COUNT 8U #endif /* SYS_CONFIG_H */