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

基于STM32CUBEMX之移植雅特力DAC输出电压经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-15 17:41
概述
    本篇文章主要介绍如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通过DAC输出电压,在芯片中有2个12位的DAC口可以供选择。
; C; B) x* D7 H# u- O
微信图片_20230415173938.jpg

9 }! f, G7 ~- p: t
( Z; p( r  d7 b4 L* F1 M6 `# }/ N. g硬件准备    首先需要准备一个开发板,这里我准备的是雅特力AT32F403AVGT7的开发板:
5 r& H$ x' P! R0 \# e/ g7 E
3 d6 H# ~. M, l

8 t, U2 O' n3 [0 o, g& z; l
微信图片_20230415173932.png
: p5 ^) W. p" ~8 _. c+ n# Y

4 y* K8 l/ s4 Z- A" i
选择芯片型号
    雅特力AT32F403AVGT7兼容STM32F103系列,故选取STM32f103VG进行开发。
& J9 Y; n- t3 _9 Z* d+ n4 ~
微信图片_20230415173924.png

2 J8 P& V% l# ?
配置时钟源
    HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示。; ]* J' ?1 r" {4 n$ c/ S

; Q5 D4 Q$ ^) q, a' S
微信图片_20230415173908.png
0 V" f) a$ v. q! a3 u
配置时钟树
    雅特力AT32F403AVGT7最高频率到240M,但是STM32F1的最高主频到72M,同时使用不使用外部晶振时候,最高速度只能到64M,所以配置64即可。1 |" u, g: q$ I0 x/ H; Y
: s. ^" T4 g, f. v/ H
微信图片_20230415173904.png
" u5 G$ ]1 g' Y3 n2 Y3 O
DAC配置
    然后设置PA4为DAC_OUT1,  完整引脚配置如下图。
4 F$ c9 m4 a: z7 d( M
微信图片_20230415173844.png
" U: x6 H0 y: v3 I; G) h
生成工程设置
    注意在生产工程设置中不能出现中文,不然会报错。
1 @7 \+ S0 b( A: F

  J$ J  b. E# d8 h0 W- ^, ~$ q. Q
微信图片_20230415173546.png

1 v7 K% e* I; B3 C
代码生成设置
    最后设置生成独立的初始化文件:
; s# q  y# e/ P- I$ \, }8 S$ X* B/ h
: c2 Y& I( ^# s. b
微信图片_20230415173539.png
0 u3 ]" \1 h* f4 r8 h
生成代码
$ {7 S- s; ?. S
微信图片_20230415173512.png
7 L4 z8 u& S! H0 k# |* U) `0 B$ E$ z
代码编写
    在main.c中,添加DAC电压变量定义。
  1. /* USER CODE BEGIN PTD */
    ' d/ ]& R/ h& N
  2. int dac_i=0;//定义DAC电压值$ q8 K& Y: n. L. q! J, z
  3. /* USER CODE END PTD *
复制代码

5 u8 [7 z3 o2 ]" k
    在main.c中,主程序输出电压值,因为是12位的dac,所以值只能是0-4095。
  1.   /* USER CODE BEGIN WHILE */
    9 N5 q$ s) C4 F" c& O: |; T! c# a) l" V
  2.   while (1)" q0 y2 v! E) k3 T3 i+ }' V7 `
  3.   {
      l/ x( j. |$ _; m8 e# \- I
  4.     /* USER CODE END WHILE */: D( Z+ d7 E2 Q3 p& X* a2 l
  5.     1 {9 L" m% b* l
  6.     /* USER CODE BEGIN 3 */
    3 L9 N" B6 p8 a$ a
  7.     if(dac_i<4096)
    , W( E. [3 u6 D# }! T& m. N$ i' u& W
  8.     {
    1 W( O5 }3 i! z9 g! L) l
  9.       dac_i++;& p" _$ ^' C2 m: }2 L
  10.       if(dac_i%512==0)//使得输出波形为阶梯状+ U* j' z# y; d$ Q; u
  11.         HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, dac_i);//设置DAC值为dac_i0 p  R1 L9 n4 }, U1 u
  12.     }
    , c; z9 r- |9 r, M& |
  13.     else" L8 `& a8 U; C7 M6 |
  14.       dac_i=0;
    ! A& t  |$ N7 ?+ y3 e8 s
  15.   }
    ; }3 q( N  W2 Z  x2 X- f
  16.   /* USER CODE END 3 */
复制代码

% k9 T; k! w! T) L. ~
0 i6 S& }$ w' q2 f
演示效果
    因为是输出为阶梯状,每变量每增加512,电压改变一次,故应该有8个阶梯,分别是0,512,1024,1536,2048,2560,3072,3584。
6 X3 M( K2 I1 E
微信图片_20230415173507.jpg

/ E3 V' n6 Z, O2 _
转载自:记帖
如有侵权请联系删除
5 H) W7 f0 |2 V9 x7 I5 e. N' m- ~
. l1 C9 r: ]; p+ C
0 z$ m3 g1 b- h4 D# }; g& l% B8 P
微信图片_20230415173549.png
微信图片_20230415173859.png
收藏 评论0 发布时间:2023-4-15 17:41

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版