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

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

[复制链接]
TLLED 发布时间:2019-2-25 14:40
# C3 C/ }+ a1 L5 i9 P/ S
. j, h* I6 g8 [7 q
' G: A' k2 [, F- i. s; w% X
    学习下ADC采样,在ADC_IN13引脚上接电位器,旋转电位器,调整采样电压。
" g" Z: h' `1 E7 k& K+ ]4 Y3 I& J1 `

/ U5 ~. K# |2 y1 x" w3 u    一、硬件部分
* t- M" y4 H, c, o! ^# z+ l( E' D  @# H% Y
. J6 m- n" I3 t3 l- L8 U
    1.1、使用STM8CubeMX来配置引脚功能7 [3 E7 K* V' U' {3 K6 o& m
    2251.png & q* D: ?) }7 o8 R- [9 ]* ?
   ) `4 }0 o  I% Q3 O, Q
    1.2、硬件连接图# ]! {0 t. }; ^5 h) N5 W
    2253.jpg    
4 T- Z. q6 p! b  {# J- ]3 a( J4 `& L- Q7 A/ A( s. g+ z1 L
    二、程序部分, i: J- y% }" x  T1 z9 g9 ]$ z- J
5 o4 ~6 S: I5 s& w  _3 A8 M

- q+ s( |- A- S/ q2 X6 z    2.1、ADC程序+ r3 z# ?* L  n  c6 t' G

  1. - L% f" U$ U7 E1 Z& U# y
  2. //adc.c: S! u* I( V8 |" x0 A: W. F3 p$ {  e3 k
  3. #include "stm8l15x.h"" w! F: d5 U. K) @% Y, F, I

  4. $ f, S1 T4 D% O5 l! K$ ^
  5. //ADC初始化6 R1 e9 N! R' y3 }) X3 w3 N9 ^
  6. void adc_init(void)
    ' T* s2 s. Q0 X6 M7 @
  7. {
    7 G8 g2 s$ R2 Z' X. M! `
  8.   ADC_DeInit(ADC1);. E% V7 B5 N$ r" U
  9.    
    2 w4 D7 b! E+ R2 }
  10.   CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
    : U+ }& D+ v+ p6 R) r6 j! E6 x
  11.   ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2);
    $ c3 b4 F" p- p1 P, L3 u
  12.   ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
    - }: Z; e7 ^$ D( P3 ~; w; E/ c; k
  13.   ADC_Cmd(ADC1, ENABLE);                        / \0 I4 d3 O3 G
  14.   ADC_SchmittTriggerConfig(ADC1, ADC_Channel_13, DISABLE);) F0 P" }# c* \, D6 I. l, _
  15.   ADC_ChannelCmd(ADC1, ADC_Channel_13, ENABLE);. Y5 {7 Z* y) I- z, S
  16.   ADC_SoftwareStartConv(ADC1);  ' j+ E5 V8 {( V  W
  17. }9 K0 C# E3 B& m: b  n
  18. //读取ADC转换值+ b% ]# D/ o' w& a$ ?* a: g
  19. uint16_t read_adc_result(void)8 W  i2 H4 o& O/ w
  20. {% {; ^" H% Z( c' E
  21.   uint16_t ADCData;
    6 B* G% k6 e7 ~* T+ h6 K9 A
  22.   ) w! x+ q5 h" h) p, N+ b7 M
  23.   while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == 0)
    . {3 n, s1 h4 {# E) `
  24.   {}$ B/ I) s. H7 A! _0 Q  i& E
  25.     }+ \' O9 X& }9 n* @" z
  26.   ADCData = ADC_GetConversionValue(ADC1);
    + f" e: r  Q! P, l* R
  27.   6 Z* P( a0 T9 C( o2 y
  28.   return ADCData; " H! _2 [2 G& o' i5 ^' \/ d: k: K
  29. }
    9 a) ?& \& U3 G2 z
  30. ; K9 b6 ^' U. C8 t

  31. / X6 e4 H( o1 R
  32. //adc.h  x+ D# I3 }$ \. \- A; @
  33. #ifndef __ADC_H
    3 s" V1 k1 \) T- q  [" T- M, Y1 l3 A
  34. #define __ADC_H7 O/ Q* @7 }2 x" ]
  35. 3 z: S0 F& |* r) U! e
  36. void adc_init(void);
    5 B. Z' g: ~( s& D: |
  37. uint16_t read_adc_result(void);; W2 I. R3 {6 I
  38. 9 e; V0 c+ r4 x/ F
  39. #endif
    / |- g2 D; L7 H/ c* t; w' Z- [
复制代码
       2.2、主程序
- T$ c  |: B) Q! n0 ^
  1. void main(void)
    * A! |' ]( M( p; ~. P) [; L6 l* e
  2. {
    9 [6 }  t& [( m9 \. ^# C
  3.   uint16_t ad13=0;' S: U" E  @0 a, r
  4.   
    % J. f# W- c: i. J1 Z: o
  5.   CLK_Config();           //时钟初始化) b6 O; ]% j4 g: R6 `" t
  6.   6 H9 R/ Q. s3 Z  m
  7.   Delay(0x2fffff);        //延时5S            
    # g% B$ ^8 b/ K2 O- A  C
  8. # t& h8 S- u6 C6 l6 h- V
  9.   uart_init_halfduplex();   //串口初始化   : T8 L; g" o- x* z) D7 M
  10.   adc_init();           
    ( Q, w) U) }* ?2 V1 T$ P0 V

  11.   R1 n* V% x% M, ^
  12.   : M: Z& @/ s( v$ S3 [
  13.   while (1): U- y  y  x+ \, @
  14.   {3 h% J1 B$ Q/ {2 x
  15.     ad13=read_adc_result();
    ! Q5 u' @, J  d9 ?
  16.     printf("\r\n ADC 采样值 ad= 0x%x ",ad13);
    3 v1 E* {+ K% t: q$ f
  17.     Delay(0xfffff);
    ) H" ^) U9 }! R
  18.   }' v! N( y+ l7 ?# f
  19. }
复制代码

' N) j0 W% C% ]- r! b$ W5 ~    三、执行结果
( @1 u% f- h, O# H4 n& y- p1 D- d% d7 v' T& g4 Q

$ y! \* O* a3 F/ d    串口输出采样的电压值:8 \% r# ~+ x  u' |% ]
    2252.png ; C* s7 l$ P# U5 h9 t

4 z. G0 c! T9 u* U, p( |
$ r$ x* m- J* o0 A7 x+ g0 E
    - c7 Z+ N0 H; Y+ P: X
   : c( t) b& D4 x

( i6 k9 F$ `; o3 ?  r* i4 @

$ F7 H8 g" t5 ^9 F
* A9 s3 H% V. T& x: R5 `9 ^ " D8 d7 S. c; c7 C& C$ S1 Q- Q

. m/ X/ _$ _2 t
2 n0 l' w  P. S2 i
3 ~0 ?9 V$ r* {; e) N6 F
7 P1 p/ s) ^" {

8 a4 ^2 o* t, _4 F
赞 收藏 1 评论1 发布时间:2019-2-25 14:40

举报

1个回答
五哥1 回答时间:2019-2-25 18:15:07
做的真好

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版