野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11781|回复: 8

内部温度测量怎么变80多度

[复制链接]
发表于 2015-6-7 15:47:41 | 显示全部楼层 |阅读模式
求解,不知道为什么我测出来的温度这么高,配置好像也没有错啊,求大神帮忙解决,谢谢配置如下:
extern __IO uint16_t ADC_ConvertedValue;
float ADC_ConvertedValueLocal;
float temp=0;

static void adc_modeconfig(void)
{
                DMA_InitTypeDef DMA_InitStructure;
                ADC_InitTypeDef ADC_InitStructure;
                DMA_DeInit(DMA1_Channel1);
//        ///DMAéèÖÃ
          DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;          
                DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue;
                DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;        //íaéèÎaêy¾Yà′Ô′
                DMA_InitStructure.DMA_BufferSize = 1;   
                DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //íaéèμØÖ·1춨
                DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;        //Äú′æμØÖ·1춨
                DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//′«êäêy¾YÎa16λ
                DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;        //′«êäêy¾YÎa16λ
                DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//Ñ-»·′«êä
                DMA_InitStructure.DMA_Priority = DMA_Priority_High;  
                DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;        //Äú′æμ½Äú′æģ꽠         
                DMA_Init(DMA1_Channel1, &DMA_InitStructure);           
                DMA_Cmd (DMA1_Channel1,ENABLE);                                       
//        //ADCéèÖÃ
        ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//¶àá¢Ä£ê½
        ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//á¬Dø×a»»
        ADC_InitStructure.ADC_ScanConvMode=DISABLE;//½ûÖ1é¨Ãèģ꽣¬é¨ÃèÄ£ê½ê1óÃóú¶àí¨μà2é¼ˉ
        ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//óò¶ÔÆë
        ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//2»ê1óÃía2¿′¥·¢×a»»
        ADC_InitStructure.ADC_NbrOfChannel=1;//í¨μàêy
        ADC_Init(ADC1,&ADC_InitStructure);
        RCC_ADCCLKConfig(RCC_PCLK2_Div6);//ÅäÖÃADCê±Öó=12MHZ
        ADC_RegularChannelConfig(ADC1,ADC_Channel_16,1,ADC_SampleTime_55Cycles5);//55.5¸ö2éÑùÖüÆú
              //ζè′«¸DÆ÷μÄADCí¨μàêÇADC_Channel_16
        ADC_TempSensorVrefintCmd(ENABLE); //¿aÆôÄú2¿Î¶è′«¸DÆ÷
        ADC_DMACmd(ADC1,ENABLE);
        ADC_Cmd(ADC1,ENABLE);

        ADC_ResetCalibration(ADC1);//¸′λD£×¼¼Ä′æÆ÷
        while(ADC_GetResetCalibrationStatus(ADC1));//μè′yíê3é
        ADC_StartCalibration(ADC1);//ADCD£×¼
        while(ADC_GetCalibrationStatus(ADC1));//μè′yíê3é
        ADC_SoftwareStartConvCmd(ADC1,ENABLE);        //èí¼t′¥·¢ADC×a»»
}

大循环里运行:
        while(1)
                {
                        ADC_ConvertedValueLocal=(float)(ADC_ConvertedValue)*(3.3/4096);
                        temp=(1.43-ADC_ConvertedValueLocal)/0.0043+25;                       
                        printf("\n the current temperate value is %.3f ¶è\n",temp);
                        Delay(0xffffee);
                }



回复

使用道具 举报

发表于 2015-6-8 09:04:11 | 显示全部楼层
用我们的例程来试试,adc章节有个内部温度的实验

《stm32库开发实战指南》 配套光盘链接:

http://pan.baidu.com/s/1mgNnSgg
回复 支持 反对

使用道具 举报

发表于 2015-6-8 11:29:58 | 显示全部楼层
你代码肯定哪里写错了吧,80多度都可以煎鸡蛋了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-8 14:06:06 | 显示全部楼层
fire 发表于 2015-6-8 11:29
你代码肯定哪里写错了吧,80多度都可以煎鸡蛋了。

程序没有错,在另外一块板子上测试是30多度,,合理,估计是芯片有问题
回复 支持 反对

使用道具 举报

发表于 2015-6-8 15:19:03 | 显示全部楼层
chaoge131 发表于 2015-6-8 14:06
程序没有错,在另外一块板子上测试是30多度,,合理,估计是芯片有问题

是我们的板子吗
回复 支持 反对

使用道具 举报

发表于 2015-6-8 15:19:08 | 显示全部楼层
chaoge131 发表于 2015-6-8 14:06
程序没有错,在另外一块板子上测试是30多度,,合理,估计是芯片有问题

是我们的板子吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-8 16:58:17 | 显示全部楼层
fire 发表于 2015-6-8 15:19
是我们的板子吗

我用的是MINI的板子,用了开发指南的程序,现在测出来有40度,估计算是正常了吧
回复 支持 反对

使用道具 举报

发表于 2016-5-9 11:01:47 | 显示全部楼层
fire 发表于 2015-6-8 11:29
你代码肯定哪里写错了吧,80多度都可以煎鸡蛋了。

V25 和 Avg_Slope 是自己测量得到的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-11 20:05:38 | 显示全部楼层
飞飞话 发表于 2016-5-9 11:01
V25 和 Avg_Slope 是自己测量得到的吗?

查看数据手册--STM32F103CDE增强型系列数据手册(2009年3月).pdf--76页,,里面有典型值。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 07:24 , Processed in 0.030458 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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