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

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

[复制链接]
stary666 发布时间:2019-5-12 16:40
今天抽时间研究一下temperature sensor温度传感器,% k: p$ h1 h! O' i9 b
使用ADC1  PA5实现
3 o3 q3 n5 p8 d在上帖子的基础上增加ADC1的驱动,如下/ N/ l$ v2 G3 }
ADC1_Handler.Instance=ADC1;
" i! b! f' c) p. C9 tGPIO_InitTypeDef GPIO_Initure;
9 S1 G- {: R6 I5 T; s; y" R    __HAL_RCC_ADC12_CLK_ENABLE();           //ʹÄÜADC1/2ʱÖÓ
9 e/ k) b% e* J8 p+ ~    __HAL_RCC_GPIOA_CLK_ENABLE();                        //¿ªÆôGPIOAʱÖÓ# p8 I- a" r/ H) M& f1 o
        __HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_CLKP); //ADCÍâÉèʱÖÓÑ¡Ôñ( P! A  x$ y- {% q5 T
        , z! F9 \& E. J9 |1 `
    GPIO_Initure.Pin=GPIO_PIN_5;            //PA53 V0 F) x1 i; y3 m- V5 E3 d) u
    GPIO_Initure.Mode=GPIO_MODE_ANALOG;     //Ä£Äâ
0 d1 C+ A9 ]4 J- {' k% `    GPIO_Initure.Pull=GPIO_NOPULL;          //²»´øÉÏÏÂÀ­* `+ Z) T- b$ `/ x0 R3 |
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);
" `! k0 ]+ N/ [$ @4 D8 A
0 r& T; f# b& p    ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;         //4·ÖƵ£¬ADCCLK=PER_CK/4=64/4=16MHZ2 W9 ^9 o0 j: p/ ?' b
    ADC1_Handler.Init.Resolution=ADC_RESOLUTION_16B;                   //16λģʽ
1 ]3 [  K2 a& ^5 @" }    ADC1_Handler.Init.ScanConvMode=DISABLE;                            //·ÇɨÃèģʽ
/ ?7 Y4 d7 B% L    ADC1_Handler.Init.EOCSelection=ADC_EOC_SINGLE_CONV;               //¹Ø±ÕEOCÖжÏ% g$ _7 x0 m7 {0 N8 V; N
        ADC1_Handler.Init.LowPowerAutoWait=DISABLE;                                        //×Ô¶¯µÍ¹¦ºÄ¹Ø±Õ                                8 q+ F( k9 R# r: P1 l& d+ K
    ADC1_Handler.Init.ContinuousConvMode=DISABLE;               //¹Ø±ÕÁ¬Ðøת»»* x+ P, `( }& T/ i$ M* u# s' L2 O
    ADC1_Handler.Init.NbrOfConversion=1;                        //1¸öת»»ÔÚ¹æÔòÐòÁÐÖÐ Ò²¾ÍÊÇֻת»»¹æÔòÐòÁÐ1 - ]. m- _, |& @: c. J6 Y
    ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;            //½ûÖ¹²»Á¬Ðø²ÉÑùģʽ
+ f  A9 K! b! L. f* [: ~    ADC1_Handler.Init.NbrOfDiscConversion=0;                    //²»Á¬Ðø²ÉÑùͨµÀÊýΪ0; p( R. q# u/ V
    ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;      //Èí¼þ´¥·¢
, t4 x; M6 M( b' @( m7 U$ v- {    ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;//ʹÓÃÈí¼þ´¥·¢/ Y- Y/ @. d* ~, E2 v3 c
        ADC1_Handler.Init.BoostMode=ENABLE;                                                        //BOOTģʽ¹Ø±Õ# \" T$ u* V& r6 Z9 E, a
        ADC1_Handler.Init.Overrun=ADC_OVR_DATA_OVERWRITTEN;                        //ÓÐеÄÊý¾ÝµÄËÀºóÖ±½Ó¸²¸Çµô¾ÉÊý¾Ý
# I+ {/ p" |4 B: J7 V, U6 x+ Q        ADC1_Handler.Init.OversamplingMode=DISABLE;                                        //¹ý²ÉÑù¹Ø±Õ2 Y5 \9 X+ h, D% S( L
        ADC1_Handler.Init.ConversionDataManagement=ADC_CONVERSIONDATA_DR;  //¹æÔòͨµÀµÄÊý¾Ý½ö½ö±£´æÔÚDR¼Ä´æÆ÷ÀïÃæ' e6 a  p# l9 w+ ~+ t8 e
    HAL_ADC_Init(&ADC1_Handler);                                 //³õʼ»¯
: I" v0 X% A3 z        
; r- h- E* M/ y) d4 N: ^. {        HAL_ADCEx_Calibration_Start(&ADC1_Handler,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED); //ADCУ׼7 w$ L: n$ H# t1 A

. B/ I2 \7 ]8 M5 `/ j% M
+ I4 p8 }  F6 \/ c# g/ V在while增加0 W6 n' K' R" [  ~
adcx=Get_Adc_Average(ADC_CHANNEL_19,20);//
& S6 Y8 S2 L+ n5 Wtemp=(float)adcx*(3.3/65536);         //8 s( |5 b9 q0 F* H% s5 z: t
编译运行即可' r5 i: ?0 M: I8 v; K( N
接线见下图+ Q# b% c7 `6 G- q8 y" V" }+ K
微信图片_20190512163154.jpg 微信图片_20190512163207.jpg
( j8 A- c0 k0 v* r& E% G6 D
收藏 评论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 编辑 * e5 G0 l" I: p  o5 z0 a
0 x% R; d. w% b1 o2 ^. s) J; T
楼主不觉得大材小用了吗,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 手机版