#ifndef HEAT_H #define HEAT_H #include "gd32f4xx.h" #include "board_config.h" #include /** * @brief 初始化加热输出(PB12 推挽输出低 = 加热关)。 */ void heat_init(void); /** * @brief 加热控制任务(在主循环中周期调用,主循环周期 10ms)。 * @details 内部包含:慢 PWM 载波(1s 周期、10% 步进,脉宽恒 >=100ms)、 * PID 计算(500ms 周期,输出量化到占空档位)、安全保护 * (传感器故障强制关断 / 过温滞回保护 / 未使能强制关断)。 */ void heat_task(void); /** * @brief 使能/关闭加热(对应 M3S1/M3S0)。 * @note 关闭时立即输出低并复位 PID 积分。 */ void heat_set_enable(bool on); /** * @brief 查询加热使能状态。 */ bool heat_get_enable(void); /** * @brief 设定目标温度(摄氏度,对应 M4S)。 */ void heat_set_target(float temp_c); /** * @brief 查询目标温度(摄氏度)。 */ float heat_get_target(void); /** * @brief 查询当前量化占空比档位(0~20,对应 0~100%,5% 步进)。 */ uint8_t heat_get_duty(void); #endif // HEAT_H