|
一、RCC时钟配置 # C) t1 Y% Q" V# {
: d0 S# n+ W" d* o+ m0 C ' `1 H* ~$ i% L1 [) l# ^' F5 ? 该函数位于在bsp.c文件下面; 使能RCC时钟:RCC_APB1Periph_DAC 7 L2 E( x0 I# B. Q+ `* r9 t5 p8 \ 这里DA的时钟不像AD有AD1、AD2等,DA是共用时钟,所以调用接函数的时候一定要区分DA1和DA2开来。 & M% h) `# X9 g6 o1 U5 }1 a) t 二、引脚配置
该函数位于在dac.c文件下面;! V0 _! Z/ ], ]8 B9 M5 X+ C$ L7 |6 K, E; v 对DA通道1所使用的引脚进行配置。 7 q j! [" u4 L" t: t& ]$ H! A 注意: 这里的DAC_OUT1引脚是固定对应的PA4的,一旦启动DA1功能,这个引脚就用于DAC功能了。7 G1 |3 ?! q" b7 ?+ b6 Q/ e / l5 e8 k& v/ G# h- V: @1 p 三、DAC配置 3 e/ ^0 B" k0 r8 @/ H
" ?% R! B2 X, ~$ Q: j( N 该函数位于在dac.c文件下面; 对DA进行配置。 / B! d, N: J- V; `0 ?+ @ 配置的每一条语句都有注释,请看源代码. 8 E4 |, r% w$ Y' C: Z1 V- O N& L 四、输出电压 ; J" R9 |4 p: e# y/ U6 g
该函数位于在dac.c文件下面;) D- C+ p$ Y2 x- d/ o7 s# E 调用这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。 这里是使用软件出发转换,后期会使用其他方法触发。0 m4 _0 j& Z, @" l8 h3 n * {6 U% p( K$ `( I0 k 五、主函数应用$ b. F. l9 c: g$ U) o8 J( w
该函数位于在main.c文件下面; 5 [# `; H% m3 D/ y' p2 U 主要就是在上电配置DA,并让其在PA4引脚上输出1.5V的电压。 可以看到现象:间隔500ms,LED变化,串口打印出字符串。 六、今天的重点提示0 o/ x$ b7 R! X" U. Z/ g# T1 K9 } A.DA1和DA2的配置基本一样;6 N. a+ s4 q4 a K: k B.为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN),因此在引脚配置的地方配置为:GPIO_Mode_AIN。' y4 S7 h3 K$ J7 j7 |- w$ Q ————————————————% ?5 i' U* ]7 o- t 版权声明:马少爷( ]. ]: @8 [" g6 i, b1 | 如有侵权请联系删除 2 q4 p5 \ k$ ~/ R. c |
经验分享 | 通过STM32 TIMER的PWM功能模拟输出正弦波
STM32H563 ADC+TIM+DMA应用演示
经验分享 | STM32N6 ADC DMA 传输失败案例分享
实战经验 | MC SDK V6.x软件HSO功能ADC采样设计说明
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
经验分享 | 为什么重启ADC的DMA传输要先停掉ADC?
经验分享 | STM32 ADC过采样话题
经验分享 | STM32双定时器+ADC+DMA实战案例
经验分享 | STM32U5系列TIMER+DMA+DAC应用演示
经验分享 | 基于STM32片内信号的ADC应用演示
微信公众号
手机版