[原创]
温室大棚自动喷洒系统----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); //
编译运行即可
接线见下图
此内容由EEWORLD论坛网友star_66666原创,如需转载或用于商业用途需征得作者同意并注明出处
暂无评论,赶紧抢沙发吧