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

【经验分享】STM32F4 HAL库 CubeMX(十五)--------DAC实验

[复制链接]
STMCU小助手 发布时间:2022-7-7 16:00
前言0 r3 z5 S  Q1 b/ d# y  K! s" w# I
STM32F4 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC。DAC
2 l. C) D5 T0 |5 l0 H- ^5 G可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合使用。DAC 工作在 12 位模式时,
  S* u4 Z/ d  y) B数据可以设置成左对齐或右对齐。DAC 模块有 2 个输出通道,每个通道都有单独的转换器。
" [* c$ I! s2 @在双 DAC 模式下,2 个通道可以独立地进行转换,也可以同时进行转换并同步地更新 2 个( r/ m8 \2 f; K1 g! i
通道的输出。DAC 可以通过引脚输入参考电压 Vref+(通 ADC 共用)以获得更精确的转换
+ H6 O9 Z. ?3 G( n. r$ J- D# E结果。& P& w8 U/ G% ?

% K( n- Y* P8 r* Y! J% H一、DAC是什么?+ X/ T; F. m( K2 q5 f) H9 c0 _$ n
STM32F4 的 DAC 模块主要特点有:
7 W, `$ H2 a9 Z3 w; t6 j8 b+ h3 w① 2 个 DAC 转换器:每个转换器对应 1 个输出通道
' u, J3 K9 k7 Z4 i3 _8 a② 8 位或者 12 位单调输出8 V! }: y+ B4 t0 x" i+ s5 k
③ 12 位模式下数据左对齐或者右对齐& G2 b/ u. B# Z
④ 同步更新功能
) c# E2 s0 h2 g8 B9 O/ t& v0 C⑤ 噪声波形生成7 X/ |0 }* o, w; T
⑥ 三角波形生成
9 P% ?: K- S" A5 g3 z2 N+ E6 p) D⑦ 双 DAC 通道同时或者分别转换) O) ^9 G0 Z7 k6 |- c! L9 z
⑧ 每个通道都有 DMA 功能
# Y+ {+ [5 V7 d9 H+ z' ~( ^( `- T* b6 j5 ?
二、DAC实验
7 Q: m1 k& ?9 H) V7 J1.实验所需配置功能
& P# f. t9 x$ }* f由于原子在本讲用的模块较多,我们只是测试,所以仅挑了部分,可表示实验结果就行。9 i* l: O9 @3 n, l! v
1) 串口
3 g1 A( q/ r/ ^2 A1 n' l6 A2) ADC% T  P% N& \7 y% l% x; N
3) DAC
) H3 c5 u. r- b1 k' G! K  o, x
7 P9 m7 ]8 m; |4 D; X! p# o2.功能配置8 f  Z/ V* {7 m9 a! ]+ l
$ Q( l. t  X/ H7 ]8 K/ d
YL~7H9RLG$HPRQIN~DX(9]9.png
! b- t/ I. g6 F5 T' y( E6 B
- A: @9 y8 |5 X9 m" r* L  q3.时钟配置

0 {0 z+ H2 `0 L$ ?4 [$ ]RCC时钟配置如前文一样(此处一般情况是不变的)。- D: H, g( s2 Y, {( `7 b

: {; E, p3 ^  J2 j4 x3 V, c: v: L* G
4.生成代码2 v# \9 e: I* o/ J
TG0}`W0J@MM0~(PUUZCF255.png
3 O; x& ~) h6 {' o& k仿自原子的DAC设置函数,可多次自己设置电压值1 M7 V, X$ r; B4 E" w; L( l

% R& Z# }7 J  A( J/ _6 q
  1.         HAL_ADC_Start(&hadc1);
    7 ~, C+ w: i0 y
  2.         temp = 2.5;//2.5V, Q! O6 d) a* {" f9 m
  3.         //temp/=1000;这里不需要,图片有误+ l+ g8 X3 p5 b% u& b9 z3 W4 [
  4.         temp=temp*4096/3.3;$ V) E) l! H8 D  @7 g4 ], S5 T7 `
  5.         HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, temp);
复制代码

+ ]2 c7 {  g. |% c7 Z来源于ADC例程
: U& |) {# |! x$ W) {: m/ c5 h& a
: U3 y/ D6 J: ]; }% Z( T
  1.                 HAL_ADC_PollForConversion(&hadc1, 50);$ B- y" _' T+ f0 l; N
  2.                 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
    6 _  b5 i: i! x
  3.                 {. E/ X  v% s8 u) \/ m- O- L
  4.                         ADC_Value = HAL_ADC_GetValue(&hadc1);5 g: T0 w+ E4 ]6 d
  5.                         printf("PA5 True Voltage value : %.4f \r\n",ADC_Value*3.3f/4096);: L( n3 Y- h  Q8 b, m7 _7 E& O+ c
  6.                         HAL_Delay(500);; E  r) w, B2 h3 d1 ^
  7.                 }
复制代码

+ W* ~# Z! v# @# a* F! t9 f* W* F0 s! ]8 {2 G
0 V0 M7 m) M0 h' v, c9 i- ]
0 Q  C9 q3 `* \1 [! U, a: y- }
赞 收藏 评论0 发布时间:2022-7-7 16:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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