请选择 进入手机版 | 继续访问电脑版

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

STM8-SO8-DISCO -- 13、STM8L050 ADC测试

[复制链接]
TLLED 发布时间:2019-2-25 14:40

  e5 a8 _8 j$ Y: _3 H/ e7 z6 @% x8 g3 P( ]3 R/ O& P4 P

# Q3 x# v! l" [: w# s: K4 Y    学习下ADC采样,在ADC_IN13引脚上接电位器,旋转电位器,调整采样电压。
" \1 }9 m& _8 w. s$ V- a& B% v8 j/ l: E  b- V
! s- V" p4 v( F) |
    一、硬件部分: \4 _- R; [) @
% |( |$ N6 d9 d: S: f5 Y9 }  j

0 z" s/ {" j+ I3 O) M    1.1、使用STM8CubeMX来配置引脚功能
& N' z' H2 l! Q5 S# x! x    2251.png 0 W5 d5 f  a, H  Q7 T2 w% D
   
3 _' s' g. o% Z% ^" W    1.2、硬件连接图
7 E( C1 h, B' y9 y4 A2 S0 h    2253.jpg    
0 K9 I7 t4 U2 D( h/ {$ Q, s2 X: p- b" g+ m. o5 d8 m
    二、程序部分
* t" V1 C$ W, x* p4 t& p
9 w) x3 \  K4 a
# d, J3 H5 v7 \% W8 D, L
    2.1、ADC程序, M$ Q! J( }4 [( D/ {# F; E
  1. ) m& I, ~' S* t, @7 Z
  2. //adc.c) ?( d6 \/ y$ ], {% ?9 L9 N# ?
  3. #include "stm8l15x.h"
    ( I5 E5 F$ T% a0 m2 c" c
  4. . M2 p1 h" p+ J$ v- y. D! X
  5. //ADC初始化& O+ O3 M( w" [6 r
  6. void adc_init(void)8 Y" q' i' u; O6 V
  7. {
    3 f% Q; Y* i& E
  8.   ADC_DeInit(ADC1);
    ! B& t, _$ _4 [& I% i- d+ I
  9.    6 J* h3 L) a" o6 `1 g7 Q
  10.   CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
    6 [4 y6 G& w  v2 r1 D  k
  11.   ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2);, z* N% k+ U2 v# H* i: R& W- i
  12.   ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
    ' |5 c1 Y( q3 _3 Y8 T; e
  13.   ADC_Cmd(ADC1, ENABLE);                        
    5 q. k) ^- |3 P0 G
  14.   ADC_SchmittTriggerConfig(ADC1, ADC_Channel_13, DISABLE);
    : t1 T4 h% l- n! X0 S, Y/ G2 p
  15.   ADC_ChannelCmd(ADC1, ADC_Channel_13, ENABLE);% H" |/ L- N- o" S0 @" d) N
  16.   ADC_SoftwareStartConv(ADC1);  * V! w, ], `1 `# d4 m9 b% p: R
  17. }
    ! Y/ @/ e4 L3 G- @3 g$ ]
  18. //读取ADC转换值* _8 \) c# F6 Y0 ?+ G/ Q
  19. uint16_t read_adc_result(void)/ Q5 L! v) ^+ X/ G. s$ j
  20. {
    8 O2 L3 J: r" w# x) K% k
  21.   uint16_t ADCData;8 [/ K" ?9 e. a/ s$ G- x2 C  J
  22.   
    ) X. q# U. A' p- s0 t: P
  23.   while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == 0)
    " X1 R( h- S! A4 Z3 \5 h+ t9 ^
  24.   {}
    0 `; \; a- S2 }, I) x
  25.   6 I# {, R% Q: k. X4 _- a" n
  26.   ADCData = ADC_GetConversionValue(ADC1);
    ( n, x; n7 l2 D0 X; ^- R
  27.   
    & q" D( b1 b$ W7 n" u
  28.   return ADCData;
    & z8 A" ]  W$ f; H& `" R* O
  29. }& R7 `8 p. B% [9 s8 o# h5 V

  30. & f. r9 A5 g8 o- ~% K
  31. 8 U, E0 x  o8 |: Z0 V  w# C
  32. //adc.h
    . ]& A# s* v+ u! J- P6 E# \& J
  33. #ifndef __ADC_H# t0 }6 _* ^7 w$ g) P8 F
  34. #define __ADC_H9 i  e4 a* A" `: v

  35. ( O7 a' m0 h2 y% F; U7 d- e
  36. void adc_init(void);
    ) h. Q3 {1 x6 R2 [1 ~! n# {
  37. uint16_t read_adc_result(void);% [, z, H! O2 b. r- W) v

  38. $ E3 `; b. n7 n) Z9 F2 u
  39. #endif ; ?. k# y; [* E9 X1 I6 C
复制代码
       2.2、主程序( V2 |( g& O4 \8 f* N( e9 Q
  1. void main(void)
      F7 O' _6 D9 J  E. N
  2. {4 ?4 Y' u( |6 @9 m) v3 N# Z
  3.   uint16_t ad13=0;6 n9 v0 U" l/ I5 C) W. t
  4.   
    & y8 I: d/ c- M" ~  p! k! K( J
  5.   CLK_Config();           //时钟初始化$ K8 F* r3 I% [3 j
  6.   & x2 X$ }8 C, D+ ?
  7.   Delay(0x2fffff);        //延时5S             , z6 S7 Z" R) {, M; g% o

  8. * i+ |. v. `; A5 S, {- {7 P& V
  9.   uart_init_halfduplex();   //串口初始化   9 T$ i7 w' N2 K7 Y( @
  10.   adc_init();           
    * w6 `6 e/ S3 q3 K

  11. ; q! R! O) u2 k2 W% s
  12.   
    * L  X1 _7 x8 d# W: m  g1 r% X
  13.   while (1)
    - p6 z  @: g2 z' T
  14.   {$ }: {, H# i6 B2 o  g% U2 L8 i  R
  15.     ad13=read_adc_result();
    6 u/ {, [) _, T5 h( {
  16.     printf("\r\n ADC 采样值 ad= 0x%x ",ad13);
    4 d4 t! S( y+ G+ q
  17.     Delay(0xfffff);5 _- R) m  J" a4 b4 {
  18.   }
    3 B" Y& p" V, i; _; x6 e
  19. }
复制代码
$ g. d' W8 n& ~
    三、执行结果
$ D" P& U( i! G6 F: G6 E" `; n; Q1 s6 a4 N
2 z% E. g# x3 L- n) k( n
    串口输出采样的电压值:' j" m# u3 J( j( c" s
    2252.png 9 O; X( u5 Q" K" R& r3 ?4 B

) o. `* o( t( P) q

" o$ F, z$ P& k   
: `5 e" ~4 A8 S) B6 S+ m" Z0 f   
1 N4 r" L7 f+ }+ W( ^- F. M$ c% G/ L3 Q; n
, E- q0 J1 c( D
2 T. ?6 ]# D: Q! s3 C0 t8 I

& Z" J( ~/ v5 T 2 f$ X" [: o. r# Z
% }: w) {$ G, v' O# v

5 s- c& B" q  @# t: Z; H
! S" D, g* s& l1 z: `; n# q5 G8 y: J' D" I5 N7 F' S! Y9 f8 `
收藏 1 评论1 发布时间:2019-2-25 14:40

举报

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