#ifndef NTC_H #define NTC_H #include "gd32f4xx.h" #include "board_config.h" /* 后台采样周期(主循环 10ms 一圈的分频基准) */ #define NTC_SAMPLE_PERIOD_MS 100U /** * @brief 初始化 NTC 测温(PC5 模拟输入 + ADC0 常规通道,软件触发单次转换)。 */ void ntc_init(void); /** * @brief NTC 后台采样任务:每 NTC_SAMPLE_PERIOD_MS 采样一次并更新全局最新温度。 * @details 在主循环中周期调用(主循环周期 10ms),内部按分频触发采样。 * 采样结果(含开路 -273.15 / 短路 -274.15 标记值)存入内部全局, * 供 ntc_get_temperature() 读取——各消费者共享同一次采样,互不重复触发 ADC。 */ void ntc_sample_task(void); /** * @brief 获取最新的 NTC 温度(后台采样值,非现场采样)。 * @return 温度值(摄氏度);-273.15 = 开路,-274.15 = 短路;上电未采样前初值为 -273.15。 */ float ntc_get_temperature(void); #endif // NTC_H