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

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

[复制链接]
stary666 发布时间:2019-5-12 16:40
今天抽时间研究一下temperature sensor温度传感器,
3 w' X. r5 u" i  Y8 Y/ |- D9 z& j使用ADC1  PA5实现' Q0 z2 H8 V1 E7 F
在上帖子的基础上增加ADC1的驱动,如下
2 P" |0 }  p2 H; i: K, uADC1_Handler.Instance=ADC1;
  M7 ]9 T- T0 n% Q3 zGPIO_InitTypeDef GPIO_Initure;+ v% {0 q# M; l( s+ i/ s$ e( o6 W
    __HAL_RCC_ADC12_CLK_ENABLE();           //ʹÄÜADC1/2ʱÖÓ1 d! {: U  s. {# p5 ^
    __HAL_RCC_GPIOA_CLK_ENABLE();                        //¿ªÆôGPIOAʱÖÓ, C2 J: }, \, U
        __HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_CLKP); //ADCÍâÉèʱÖÓÑ¡Ôñ3 O% `  I4 s( _, h" ^6 ?1 B) f: I0 y9 X: ?
        ( T! D7 x/ v8 ~/ a2 E- f# y5 B% w8 L" f
    GPIO_Initure.Pin=GPIO_PIN_5;            //PA5
+ I. l# u7 ]% z/ i% K* |    GPIO_Initure.Mode=GPIO_MODE_ANALOG;     //Ä£Äâ3 O1 W  `( D& b2 \3 V7 Y5 \) l
    GPIO_Initure.Pull=GPIO_NOPULL;          //²»´øÉÏÏÂÀ­
% Z) Y1 s0 T; f8 F: {    HAL_GPIO_Init(GPIOA,&GPIO_Initure);! E3 @# f3 r5 p$ m2 }
( {( ?9 c* O- ~
    ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;         //4·ÖƵ£¬ADCCLK=PER_CK/4=64/4=16MHZ% H3 `0 A1 d, T( C+ D
    ADC1_Handler.Init.Resolution=ADC_RESOLUTION_16B;                   //16λģʽ
. F" A- x/ l7 T    ADC1_Handler.Init.ScanConvMode=DISABLE;                            //·ÇɨÃèģʽ
* M2 p- ^! s  v8 r    ADC1_Handler.Init.EOCSelection=ADC_EOC_SINGLE_CONV;               //¹Ø±ÕEOCÖжÏ
5 n8 Y4 A5 S' y& K0 }, l! a        ADC1_Handler.Init.LowPowerAutoWait=DISABLE;                                        //×Ô¶¯µÍ¹¦ºÄ¹Ø±Õ                                & ]. {- P  p9 v/ }$ T( ?
    ADC1_Handler.Init.ContinuousConvMode=DISABLE;               //¹Ø±ÕÁ¬Ðøת»»
6 C; n. J1 T3 ~7 u0 p    ADC1_Handler.Init.NbrOfConversion=1;                        //1¸öת»»ÔÚ¹æÔòÐòÁÐÖÐ Ò²¾ÍÊÇֻת»»¹æÔòÐòÁÐ1
+ V4 }9 \- [" r( [1 X) O% ~    ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;            //½ûÖ¹²»Á¬Ðø²ÉÑùģʽ
% E5 _1 m- J+ ~! P5 u0 s( a. t    ADC1_Handler.Init.NbrOfDiscConversion=0;                    //²»Á¬Ðø²ÉÑùͨµÀÊýΪ0& j+ Z9 U( O' n! K" m
    ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;      //Èí¼þ´¥·¢
0 F1 R- x* Q& X% G    ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;//ʹÓÃÈí¼þ´¥·¢% s$ I8 H+ F! j& @8 _
        ADC1_Handler.Init.BoostMode=ENABLE;                                                        //BOOTģʽ¹Ø±Õ  i$ ]' z0 D- L3 q& n
        ADC1_Handler.Init.Overrun=ADC_OVR_DATA_OVERWRITTEN;                        //ÓÐеÄÊý¾ÝµÄËÀºóÖ±½Ó¸²¸Çµô¾ÉÊý¾Ý
. \5 j) p& G6 ]4 K5 g2 p! ~        ADC1_Handler.Init.OversamplingMode=DISABLE;                                        //¹ý²ÉÑù¹Ø±Õ
4 G7 I, A( U3 \8 O        ADC1_Handler.Init.ConversionDataManagement=ADC_CONVERSIONDATA_DR;  //¹æÔòͨµÀµÄÊý¾Ý½ö½ö±£´æÔÚDR¼Ä´æÆ÷ÀïÃæ% K8 I( C* M, R  `7 y
    HAL_ADC_Init(&ADC1_Handler);                                 //³õʼ»¯
% G. ~. o, q& x% C7 T- O        & p! n: B$ b, ~1 u; A# t
        HAL_ADCEx_Calibration_Start(&ADC1_Handler,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED); //ADCУ׼
9 Z$ w/ I! h1 Q  }6 V+ O
& O8 Y' D8 @. x- P/ A- E% i: b) T3 _
在while增加
  @$ g5 P- {1 I+ Aadcx=Get_Adc_Average(ADC_CHANNEL_19,20);//1 ~5 l9 ?3 D+ @+ I1 b0 e$ `
temp=(float)adcx*(3.3/65536);         //
6 ?! e: q# u; Q% a/ Y$ V编译运行即可
( e" Q" m# q; E; l% x接线见下图
# X, c( v( s8 W( W" G 微信图片_20190512163154.jpg 微信图片_20190512163207.jpg
7 p) _+ r; P# u, `
收藏 评论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 编辑 + Q! G! b8 [7 B6 k# b9 r7 q( X
: {# j+ W. d6 a5 s# ~) `
楼主不觉得大材小用了吗,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 手机版