你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

温室大棚自动喷洒系统----H743temperature sensor

[复制链接]
stary666 发布时间:2019-5-12 16:40
今天抽时间研究一下temperature sensor温度传感器,
1 p! |& H- v% \/ r使用ADC1  PA5实现
# }$ s5 _7 }: E" `( H! y1 \& D在上帖子的基础上增加ADC1的驱动,如下
8 K3 [8 O0 P0 Z/ q9 g* G1 W' {ADC1_Handler.Instance=ADC1;& x1 B& f8 c2 n* [7 |& x* o4 Y
GPIO_InitTypeDef GPIO_Initure;/ U1 L/ s" p4 c5 i2 k
    __HAL_RCC_ADC12_CLK_ENABLE();           //ʹÄÜADC1/2ʱÖÓ! G" S+ Q' e- ]3 m" l
    __HAL_RCC_GPIOA_CLK_ENABLE();                        //¿ªÆôGPIOAʱÖÓ
( B7 A" N+ W# O& h" Q# U# z5 ]/ y        __HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_CLKP); //ADCÍâÉèʱÖÓÑ¡Ôñ
' c) \  }0 y1 T& V4 I+ p" K# K1 W        ' D2 m% m: m0 f8 v
    GPIO_Initure.Pin=GPIO_PIN_5;            //PA53 y2 ~4 Z' a# `4 Y5 `
    GPIO_Initure.Mode=GPIO_MODE_ANALOG;     //Ä£Äâ+ o0 _1 f$ T$ N
    GPIO_Initure.Pull=GPIO_NOPULL;          //²»´øÉÏÏÂÀ­4 c: s6 m2 \$ s$ w2 j
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);+ o$ L9 Q3 {' B, M- q1 C
. j  K$ @  X4 n* ]
    ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;         //4·ÖƵ£¬ADCCLK=PER_CK/4=64/4=16MHZ
; V, K4 c9 s8 J* a& j    ADC1_Handler.Init.Resolution=ADC_RESOLUTION_16B;                   //16λģʽ
/ w) X& w# J3 D. p5 B    ADC1_Handler.Init.ScanConvMode=DISABLE;                            //·ÇɨÃèģʽ
! W7 ~/ Z# B5 p! ?$ n    ADC1_Handler.Init.EOCSelection=ADC_EOC_SINGLE_CONV;               //¹Ø±ÕEOCÖжÏ8 q$ _1 V2 h+ p
        ADC1_Handler.Init.LowPowerAutoWait=DISABLE;                                        //×Ô¶¯µÍ¹¦ºÄ¹Ø±Õ                                
) y7 f' d6 Q! F  i5 d6 b" ?    ADC1_Handler.Init.ContinuousConvMode=DISABLE;               //¹Ø±ÕÁ¬Ðøת»»( U5 P" m! X3 [3 r9 e* K
    ADC1_Handler.Init.NbrOfConversion=1;                        //1¸öת»»ÔÚ¹æÔòÐòÁÐÖÐ Ò²¾ÍÊÇֻת»»¹æÔòÐòÁÐ1 % ]: J9 v3 u# w% w8 M- p
    ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;            //½ûÖ¹²»Á¬Ðø²ÉÑùģʽ
) w1 N" o9 E1 }    ADC1_Handler.Init.NbrOfDiscConversion=0;                    //²»Á¬Ðø²ÉÑùͨµÀÊýΪ0
7 a) F- O' e5 l# Y7 a/ F9 g# r    ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;      //Èí¼þ´¥·¢
; N) @' e  z$ `( D, J% t5 c    ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;//ʹÓÃÈí¼þ´¥·¢/ @( _. t9 Z) `. v  y1 s
        ADC1_Handler.Init.BoostMode=ENABLE;                                                        //BOOTģʽ¹Ø±Õ4 k; t" G5 D+ @8 w7 \5 N
        ADC1_Handler.Init.Overrun=ADC_OVR_DATA_OVERWRITTEN;                        //ÓÐеÄÊý¾ÝµÄËÀºóÖ±½Ó¸²¸Çµô¾ÉÊý¾Ý0 t, t  Q/ `4 q4 }1 H
        ADC1_Handler.Init.OversamplingMode=DISABLE;                                        //¹ý²ÉÑù¹Ø±Õ" K5 i6 a5 H$ R, j2 d' b) M
        ADC1_Handler.Init.ConversionDataManagement=ADC_CONVERSIONDATA_DR;  //¹æÔòͨµÀµÄÊý¾Ý½ö½ö±£´æÔÚDR¼Ä´æÆ÷ÀïÃæ
, b# [! l/ |3 m- a7 l! I5 V3 l1 l    HAL_ADC_Init(&ADC1_Handler);                                 //³õʼ»¯
+ F! [/ R' M0 }% Z3 g7 l$ x        
/ y6 g" |) s- d# z( y) Q        HAL_ADCEx_Calibration_Start(&ADC1_Handler,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED); //ADCУ׼  f* U8 d( j2 U

" R5 [1 E! W4 a6 S1 o* x1 i
: i; C" z  Y' o: e: G在while增加2 V+ _4 Z2 u: U: W, q& Q" J
adcx=Get_Adc_Average(ADC_CHANNEL_19,20);//1 S6 {- W+ x5 r& V( i1 `2 M3 {
temp=(float)adcx*(3.3/65536);         //# z+ f7 F0 h! S5 t) s6 n
编译运行即可
" H* _  m  I  B( i8 B# {接线见下图+ d1 K/ N# O9 f
微信图片_20190512163154.jpg 微信图片_20190512163207.jpg
1 c) c* ^' ~$ y3 D  w3 n' S
收藏 评论8 发布时间:2019-5-12 16:40

举报

8个回答
Kevin_G 回答时间:2019-5-12 21:48:03
点赞
stary666 回答时间:2019-5-12 22:05:56
谢谢
radio2radio 回答时间:2019-5-12 22:40:04
本帖最后由 radio2radio 于 2019-5-12 22:41 编辑 : W5 K! O0 o- B7 ]8 l% }6 }+ q+ x/ c

* Z" M8 _) m( D  ^楼主不觉得大材小用了吗,L011都胜任。
stary666 回答时间:2019-5-13 09:16:55
不想让板子吃灰,顺便研究一下
STMCU-管管 回答时间:2019-5-13 13:51:25
支持支持,谢谢分享啊
stary666 回答时间:2019-5-14 08:55:37
谢谢支持
hbthgs 回答时间:2019-5-24 13:42:13
支持支持,谢谢分享啊
stary666 回答时间:2019-5-25 09:29:39
谢谢

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版