1028|0

1985

帖子

0

资源

版主

温室大棚自动喷洒系统----H743temperature sensor [复制链接]

今天抽时间研究一下temperature sensor温度传感器,
使用ADC1  PA5实现
在上帖子的基础上增加ADC1的驱动,如下
ADC1_Handler.Instance=ADC1;
GPIO_InitTypeDef GPIO_Initure;
    __HAL_RCC_ADC12_CLK_ENABLE();           //ê1ÄüADC1/2ê±Öó
    __HAL_RCC_GPIOA_CLK_ENABLE();                        //¿aÆôGPIOAê±Öó
        __HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_CLKP); //ADCíaéèê±ÖóÑ¡Ôñ
        
    GPIO_Initure.Pin=GPIO_PIN_5;            //PA5
    GPIO_Initure.Mode=GPIO_MODE_ANALOG;     //Ä£Äa
    GPIO_Initure.Pull=GPIO_NOPULL;          //2»′øéÏÏÂà-
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);

    ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;         //4·ÖÆ죬ADCCLK=PER_CK/4=64/4=16MHZ
    ADC1_Handler.Init.Resolution=ADC_RESOLUTION_16B;                   //16λÄ£ê½
    ADC1_Handler.Init.ScanConvMode=DISABLE;                            //·Çé¨ÃèÄ£ê½
    ADC1_Handler.Init.EOCSelection=ADC_EOC_SINGLE_CONV;               //1رÕEOCÖD¶Ï
        ADC1_Handler.Init.LowPowerAutoWait=DISABLE;                                        //×Ô¶ˉμí1|oÄ1رՠ                               
    ADC1_Handler.Init.ContinuousConvMode=DISABLE;               //1رÕá¬Dø×a»»
    ADC1_Handler.Init.NbrOfConversion=1;                        //1¸ö×a»»Ôú1æÔòDòáDÖD ò2¾íêÇÖ»×a»»1æÔòDòáD1
    ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;            //½ûÖ12»á¬Dø2éÑùÄ£ê½
    ADC1_Handler.Init.NbrOfDiscConversion=0;                    //2»á¬Dø2éÑùí¨μàêyÎa0
    ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;      //èí¼t′¥·¢
    ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;//ê1óÃèí¼t′¥·¢
        ADC1_Handler.Init.BoostMode=ENABLE;                                                        //BOOTÄ£ê½1رÕ
        ADC1_Handler.Init.Overrun=ADC_OVR_DATA_OVERWRITTEN;                        //óDDÂμÄêy¾YμÄËàoóÖ±½ó¸2¸Çμô¾éêy¾Y
        ADC1_Handler.Init.OversamplingMode=DISABLE;                                        //1y2éÑù1رÕ
        ADC1_Handler.Init.ConversionDataManagement=ADC_CONVERSIONDATA_DR;  //1æÔòí¨μàμÄêy¾Y½ö½ö±£′æÔúDR¼Ä′æÆ÷àïÃæ
    HAL_ADC_Init(&ADC1_Handler);                                 //3õê¼»ˉ
        
        HAL_ADCEx_Calibration_Start(&ADC1_Handler,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED); //ADCD£×¼


在while增加
adcx=Get_Adc_Average(ADC_CHANNEL_19,20);//
temp=(float)adcx*(3.3/65536);         //
编译运行即可
接线见下图
微信图片_20190512163154.jpg 微信图片_20190512163207.jpg

此内容由EEWORLD论坛网友star_66666原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自stm32/stm8论坛

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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表