c语言ntc程序,NTC(3950K ,100k Ohms at 25deg. C)程序的实现

/*------------------------------------------------------TEMPERATURE VS RESISTANCE TABLEResistance 100k Ohms at 25deg. CResistance Tolerance +/- 1%B Value ...
摘要由CSDN通过智能技术生成

/*------------------------------------------------------

TEMPERATURE VS RESISTANCE TABLE

Resistance 100k Ohms at 25deg. C

Resistance Tolerance +/- 1%

B Value 3950K at 25/50deg. C

B Value Tolerance +/- 1%

------------------------------------------------------*/#include"bsp_ntc.h"#include"sysparam.h"

#define N 191 //NTC温度对应阻值个数,即ntc[]数组大小

const static float ntc[N]={//-20℃//-19//-18//-17//-16//-15//-14//-13//-12//-11

975.8038,920.5962,868.8615,820.3603,774.8710,732.1889,692.1238,654.4999,619.1540,585.9346,//-10℃//-9//-8//-7//-6//-5//-4//-3//-2//-1

554.7016,525.3245,497.6821,471.6621,447.1599,424.0781,402.3264,381.8204,362.4818,344.2375,//0℃//1//2//3//4//5//6//7//8//9

327.0195,310.7640,295.4121,280.9084,267.2014,254.2428,241.9877,230.3940,219.4224,209.0361,//10℃//11//12//13//14//15//16//17//18//19

199.2007,189.8841,181.0559,172.6881,164.7540,157.2290,150.0898,143.3144,136.8825,130.7749,//20℃//21//22//23//24//25//26//27//28//29

124.9734,119.4612,114.2223,109.2417,104.5053,100.0000,95.7132, 91.6333, 87.7492, 84.0505,//30℃//31//32//33//34//35//36//37//38//39

80.5274, 77.1707, 73.9717, 70.9222, 68.0144, 65.2411, 62.5954, 60.0707, 57.6610, 55.3604,//40℃//41//42//43//44//45//46//47//48//49

53.1635, 51.0651, 49.0602, 47.1443, 45.3130, 43.5621, 41.8878, 40.2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,很高兴能够帮你编写这个程序。你需要有NTC热敏电阻、STM32F407开发板和一些基本的电子元件。下面是参考程序示例: ```c #include "stdio.h" #include "stm32f4xx.h" #define VREF 3.3 // 设定参考电压 #define RREF 10000 // 设定参考电阻 #define R2 10000 // 设定被测电阻 int main(void) { GPIO_InitTypeDef GPIO_InitStruct; // 初始化引脚 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化ADC RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_InitTypeDef ADC_InitStruct; ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b; ADC_InitStruct.ADC_ScanConvMode = DISABLE; ADC_InitStruct.ADC_ContinuousConvMode = DISABLE; ADC_InitStruct.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStruct.ADC_NbrOfConversion = 1; ADC_Init(ADC1, &ADC_InitStruct); ADC_Cmd(ADC1, ENABLE); // 启动ADC ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_480Cycles); while (1) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_SoftwareStartConv(ADC1); while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); uint16_t ADCValue = ADC_GetConversionValue(ADC1); float Vin = VREF * ADCValue / 4096.0; float Rntc = (RREF * Vin) / (VREF - Vin); float TempC = 1.0 / (0.001129148 + (0.000234125 + (0.0000000876741 * Rntc * Rntc)) * (Rntc - 10000.0)) - 273.15; printf("Temperature: %f C\n", TempC); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, DISABLE); } } ``` 程序中使用的是STM32F4的内置ADC实现读取NTC热敏电阻的电压值,并进行转换后输出温度值。你可以根据需求进行修改。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值