[原创] 温室大棚自动喷洒系统----H743temperature sensor

star_66666   2019-5-12 16:40 楼主
今天抽时间研究一下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原创,如需转载或用于商业用途需征得作者同意并注明出处

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复