版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文档/* 文件名称:HAL_ADC.h* 版本:* 说明:*/extern unsigned short int LED1_AdcValue;/extern unsigned short int LED2_AdcValue;/extern unsigned short int PTC100_AdcValue;extern unsigned short int TEST1_AdcValue;extern unsigned short int TEST2_AdcValue;/* 提供给其他C 文件调用的函数 */void ADC_ReadInit(void);void AdcPro(voi
2、d);/* 文件名称 : HAL_PT100.c* 版本:* 说明:PT100温度传感器驱动*/#include "bsp.h"const unsigned short int PT100_Table=8031,8070,8110,8150,8189,8229,8269,8308,8348,8387,/*-5041*/8427,8467,8506,8546,8585,8625,8664,8704,8743,8783,/*-4031*/8822,8862,8901,8940,8980,9019,9059,9098,9137,9177,/*-3021*/9216,9255,92
3、95,9334,9373,9412,9452,9491,9530,9569,/*-2011*/9609,9648,9687,9726,9765,9804,9844,9883,9922,9961,/*-101 */10000,10039,10078,10117,10156,10195,10234,10273,10312,10351,/*09 */文案大全实用标准文档10390,10429,10468,10507,10546,10585,10624,10663,10702,10740,/*1019*/10779,10818,10857,10896,10935,10973,11012,11051,1
4、1090,11129,/*2029*/11167,11206,11245,11283,11322,11361,11400,11438,11477,11515,/*3039*/11554,11593,11631,11670,11708,11747,11786,11824,11863,11901,/*4049*/11940,11978,12017,12055,12094,12132,12171,12209,12247,12286,/*5059*/12324,12363,12401,12439,12478,12516,12554,12593,12631,12669,/*6069*/12708,127
5、46,12784,12822,12861,12899,12937,12975,13013,13052,/*7079 */13090,13128,13166,13204,13242,13280,13318,13357,13395,13433,/*8089*/13471,13509,13547,13585,13623,13661,13699,13737,13775,13813,/*9099*/13851,13888,13926,13964,14002,14040,14078,14116,14154,14191,/*100109*/14229,14267,14305,14343,14308,1441
6、8,14456,14494,14531,14569,/*110119*/14607,14644,14682,14720,14757,14795,14833,14870,14908,14946,/*120129*/14983,15021,15058,15096,15133,15171,15208,15246,15286,15321,/*130139*/15358,15396,15433,15471,15508,15546,15583,15620,15658,15695,/*140149*/15733,15770,15807,15845,15882,15919,15956,15994,16031,
7、16068,/*150159*/16105,16143,16180,16217,16254,16291,16329,16366,16403,16440,/*160169*/16477,16514,16551,16589,16626,16663,16700,16737,16774,16811,/*170179*/16848,16885,16922,16959,16996,17033,17070,17107,17143,17180,/*180189*/17217,17054,17294,17328,17365,17402,17438,17475,17512,17549,/*190199 */175
8、86,/*200 */;PT100_Driver_T PT100_Driver;/*PT100阻值的计算公式为 pt = 8.932*ad/i -k,pt-指PT100在某个温度下的电阻值*100,ad是读出来的 ad 值,i恒流源电流,单位mAk-是一个固定补偿值,指PT100导线的电阻乘以100比如导线固定电阻=1 Q,则k=100.返回值:温度值,单位为0.1 。*/unsigned short int pt;short int ReadTempereture(void) /unsigned int i;/unsigned short int pt;unsigned char j,k;s
9、hort int temp;float a,b,c;#ifdef BOARD_V123/a = (float)PTC100_AdcValue * 45.0 / 1024.0 * 100.0;a = (float)PTC100_AdcValue*1000*9/ 50/65536*(10+2.1)/10.0; /PTC100_ADC = 20306 原是 *(10+2.2) pt = (unsigned short int)(a*100);#else/a = (float)PTC100_AdcValue * 45.0 / 1024.0 * 100.0;a = (float)PTC100_AdcVa
10、lue*300/32768/0.87; /PTC100_ADC = 20306 pt = (unsigned short int)(a*100);#endif#ifdef BOARD_V20170103a = 604.0 * 51 *100 / 32768 / 47;pt = PTC100_AdcValue * a - 5100;#endiffor(j=0; j<251; j+)if(pt < PT100_Tablej)break;if(j=0)return -500;else if(j=251)return 2000;elsetemp = j-50-1;temp *= 10;fo
11、r(k=0; k<10; k+)if(pt < PT100_Tablej-1+(unsigned char)(3.8*k)break;temp += k;return temp; /* 函数名 :RToTemp* 功能说明:电阻温度转换函数* 形参:* R: 输入的电阻值* 返 回 值 : short int 温度*/short int RToTemp(float R) unsigned short int pt;unsigned char j,k;short int temp;pt = (unsigned short int)R*100;for(j=0; j<251; j+
12、) if(pt < PT100_Tablej) break;if(j=0)return -500;else if(j=251)return 2000; elsetemp = j-50-1;temp *= 10;for(k=0; k<10; k+)if(pt < PT100_Tablej-1+(unsigned char)(3.8*k) break;temp += k;return temp;unsigned short int PT100AdcValue64;文案大全void PT100_DMA_Config(void)DMA_InitTypeDef DMA_InitStru
13、cture;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);/* DMA2 Stream3 channel3 配置 */DMA_InitStructure.DMA_Channel = DMA_Channel_1;DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC2->DR;DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)PT100AdcValue;DMA_InitStructure.DMA_DIR = DMA_
14、DIR_PeripheralToMemory;DMA_InitStructure.DMA_BufferSize = 64; / 64;DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize =
15、DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;DMA_InitStructure.DMA_Priority = DMA_Priority_High;DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Sin
16、gle;DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;DMA_Init(DMA2_Stream3, &DMA_InitStructure);DMA_Cmd(DMA2_Stream3, ENABLE);void PT100_ADC_Config(void)GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADC_InitStructure;ADC_CommonInitTypeDef ADC_CommonInitStructure;/* 使能 ADC
17、2 and GPIOC clock */RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2, ENABLE);/*配置PA1为模拟输入(ADC123 Channell) PT100检测车入 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPUL
18、L;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);/ADC_DeInit();/* ADC Common 配置 */ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_20Cycles;ADC_CommonInitStructure.ADC_DMAAccessMod
19、e = ADC_DMAAccessMode_Disabled;/ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8;ADC_CommonInit(&ADC_CommonInitStructure);/* ADC2 regular channel 12 con figuration */ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC
20、_ContinuousConvMode = ENABLE;/ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfConversion = 1;/* 1 个转换在规则序列中 也就是转换规则序列 5 */A
21、DC_Init(ADC2, &ADC_InitStructure);/*使能DMA请求(单ADC模式)*/ADC_DMARequestAfterLastTransferCmd(ADC2, ENABLE);/* 使能 ADC2 DMA */ADC_DMACmd(ADC2, ENABLE);/* 配置 ADC2 规则通道 12 channel12 configuration */ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_56Cycles);/* 使能 ADC2 */ADC_Cmd(ADC2, ENABLE
22、);/*软件使能ADC2转换*/ADC_SoftwareStartConv(ADC2);void PT100_Config(void)/ PT100_DMA_Config();/ PT100_ADC_Config();void PT100Init(void)PT100_Config();PT100_Driver.ReadTemp = ReadTempereture;/unsigned short int PTC100_AdcValue;static unsigned short int OverSampCal1(unsigned short int *adc) unsigned char i;
23、unsigned int j;j=0;for(i=0;i<64;i+)j+=adci;j>>=3;return (unsigned short int)j;static unsigned short int CalAdcValue2(unsigned short int *adc)unsigned char i,j;unsigned int x;/* 进行冒泡排序*/for(i=0; i<100; i+)/ 进行 10 轮排序for(j=0; j<100-i-1; j+)/ 每轮进行 9-i 次交换if(adcj > adcj+1)x = adcj;adcj = adcj+1;/ 大的沉底,小的上浮adcj+1 = x;/* 去掉两个最高和两个最低,取中间 6 个数值的平均值 */ for(x=0,i=20; i<80; i+)x += adci;x /= 60;return (unsigned short int)x;static unsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨平台内容制作与媒体融合实践
- 2025年度人工智能企业股权收购与技术研发合同
- 2025年度职业经理人任期责任与权益保障合同
- 2025年度黄金质押抵押贷款合同
- 2025年度生物制药产业股权投资合同解除协议
- 二零二五年度停车场租赁合同全新版
- 2025年度河北省文化产业园租赁合同及文化创意服务协议
- 2025年度医疗行业医护人员聘用与保障合同
- 2025年度直播带货供应链整合服务合同
- 科技与文化融合的UGC内容营销探索
- 江西省部分学校2024-2025学年高三上学期1月期末英语试题(含解析无听力音频有听力原文)
- GA/T 2145-2024法庭科学涉火案件物证检验实验室建设技术规范
- 2024年度窑炉施工协议详例细则版B版
- 尿毒症替代治疗
- 【课件】2025届高考英语一轮复习小作文讲解课件
- 基底节脑出血护理查房
- 工程公司总经理年终总结
- 2024年海南省高考地理试卷(含答案)
- 【企业盈利能力探析的国内外文献综述2400字】
- 三年级上册数学口算题1000道带答案
- 苏教版(2024新版)一年级上册科学全册教案教学设计
评论
0/150
提交评论