generated from hulk/gd32f4xx_template_cmake_vscode
30 lines
1014 B
C
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
|