找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1288|回复: 0
打印 上一主题 下一主题
收起左侧

NTC10K单片机源代码+自动生成规则列表 NTC计算表

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include "ntc10k.h"
  2. extern work_state_def  work_state;
  3. //ntc温度向量表   4.7k    -9~99度
  4. uint NTC10K_TAB[109]={
  5. 0xE50        ,0xE3E        ,0xE2B        ,0xE18        ,0xE04        ,0xDF0        ,0xDDC        ,0xDC6        ,0xDB1        ,0xD9E        ,0xD84        ,0xD6C        ,
  6. 0xD55        ,0xD3D        ,0xD24        ,0xD0B        ,0xCF1        ,0xCD8        ,0xCBD        ,0xCA6        ,0xC87        ,0xC6C        ,0xC50        ,0xC33        ,
  7. 0xC16        ,0xBF9        ,0xBDC        ,0xBBE        ,0xB9F        ,0xB81        ,0xB62        ,0xB42        ,0xB23        ,0xB03        ,0xAE2        ,0xAC2        ,
  8. 0xAA1        ,0xA80        ,0xA5F        ,0xA3D        ,0xA1B        ,0x9F9        ,0x9D7        ,0x9B5        ,0x992        ,0x970        ,0x94D        ,0x92A        ,
  9. 0x907        ,0x8E4        ,0x8C1        ,0x89E        ,0x87B        ,0x858        ,0x835        ,0x812        ,0x7EF        ,0x7CC        ,0x7A9        ,0x787        ,
  10. 0x764        ,0x742        ,0x720        ,0x6FE        ,0x6DD        ,0x6BB        ,0x69B        ,0x67A        ,0x659        ,0x639        ,0x61A        ,0x5FA        ,
  11. 0x5DB        ,0x5BC        ,0x59E        ,0x580        ,0x562        ,0x545        ,0x529        ,0x50D        ,0x4F1        ,0x4D5        ,0x4BA        ,0x4A0        ,
  12. 0x486        ,0x46C        ,0x453        ,0x43B        ,0x423        ,0x40B        ,0x3F3        ,0x3DC        ,0x3C6        ,0x3B1        ,0x3A4        ,0x386        ,
  13. 0x372        ,0x35E        ,0x34A        ,0x337        ,0x324        ,0x311        ,0x300        ,0x2EE        ,0x2DD        ,0x2CC        ,0x2BC        ,0x2AC        ,
  14. 0x29C        
  15. };

  16. uint get_adc()
  17. {
  18. HAL_ADC_Start(&hadc1);
  19. work_state.adc=        HAL_ADC_GetValue(&hadc1);
  20.         if(work_state.adc>4000)
  21.         {work_state.attention_3=1;work_state.adc=0;}
  22.         else work_state.attention_3=0;
  23. return work_state.adc;
  24. }

  25. int get_ntc_temp(unsigned int value)
  26. {
  27.         
  28.         int index,middle,min,max=0;         
  29.         unsigned int NTC_TAB_SIZE=109;
  30.         min = 0;
  31.         max = NTC_TAB_SIZE-1;

  32.     if((value <= NTC10K_TAB[0])&&(value >= NTC10K_TAB[NTC_TAB_SIZE-1]))
  33.     {
  34.                 if(value == NTC10K_TAB[0])
  35.                 {
  36.                         return 0;
  37.                 }
  38.                 if(value == NTC10K_TAB[NTC_TAB_SIZE-1])
  39.                 {
  40.                         return NTC_TAB_SIZE-1;
  41.                 }
  42.                
  43.                 while(1)
  44.                 {
  45.                         middle = (max + min)/2;//求中间值/2
  46.                         
  47.                         if(value == NTC10K_TAB[middle])
  48.                         {
  49.                                 index = middle;     // TestCnt++;
  50.                                 return index;
  51.                         }
  52.                         else if(value > NTC10K_TAB[middle] )
  53.                         {
  54.                                 max = middle;//TestCnt++;
  55.                         }
  56.                         else if( value <= NTC10K_TAB[middle] )
  57.                         {
  58.                                 min  = middle;//TestCnt++;
  59.                                 if((max - min)==1)
  60.                                 {
  61.                                         return min;
  62.                                 }
  63.                         }
  64.                 }
  65.     }
  66.     else
  67.     {
  68.         index = 0xff;          // 温度超出数组范围,就返回0度
  69.     }
  70.     return index;
  71. }

  72. int ntc_10k()
  73. {
  74. return get_ntc_temp(get_adc())-9;
  75. }

复制代码



以上3个文件下载:excel: MF58-10K.zip (16.94 KB, 下载次数: 45)
2022-3-23-NTC10K.zip (1.3 KB, 下载次数: 44)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表