Files

30 lines
1014 B
C

#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