一、RCC时钟配置) }9 B2 [+ W, d* [2 O- Q- a
9 A& q. D M; P( @ h H , K+ A+ G; {; E% W9 c& _( l/ e 该函数位于在bsp.c文件下面; . U3 }: ^$ j" b 使能RCC时钟:RCC_APB1Periph_DAC1 X, G; \; {+ W+ W 这里DA的时钟不像AD有AD1、AD2等,DA是共用时钟,所以调用接函数的时候一定要区分DA1和DA2开来。 7 c0 W3 f0 |3 n; S4 P 二、引脚配置
/ S% k& Z6 k8 L 该函数位于在dac.c文件下面; 1 e% m% d1 E3 v- C& l4 j5 { 对DA通道1所使用的引脚进行配置。- G& ?0 k+ y; W& q- ?/ Y4 i A9 I 9 n* K& K7 X; N 注意: & [( z8 ? b9 H# [. {. ~ 这里的DAC_OUT1引脚是固定对应的PA4的,一旦启动DA1功能,这个引脚就用于DAC功能了。 3 B7 C. A; u D 6 T' f- D( N- \% k5 d# F. b; z, G 三、DAC配置) J+ E% Y2 U2 [- |, ` 0 e( p: i3 M2 H6 N- e
该函数位于在dac.c文件下面; . Q4 _+ b H& t+ p/ O 对DA进行配置。 @* t s% x8 v. S% y+ N& ?- c4 }8 I) ? / o$ u* b$ W/ g }4 O; o0 t& W3 @ 配置的每一条语句都有注释,请看源代码. 5 n) S+ n) g* Q I4 \8 k5 J4 M 四、输出电压
+ t0 D1 m* x/ m! K9 x% e 该函数位于在dac.c文件下面;5 R) T+ {! ^" _5 \- \4 R4 W3 \ 调用这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。 ' F& ^1 e, @/ e1 R 这里是使用软件出发转换,后期会使用其他方法触发。( Q5 y! h4 k" m. P. n- X ! q8 M1 m. ?; p1 B0 N3 c # e, h( }; \; w5 u. X4 G 五、主函数应用2 z' W S2 E5 F0 K7 d$ F* E + s: b' ^ g/ a* ^9 \: u' k
9 H: u# H0 T# g 该函数位于在main.c文件下面;5 T7 z* p. l- e: r. A& J$ n: h 5 }4 ?. P6 M. L8 G$ k% q 主要就是在上电配置DA,并让其在PA4引脚上输出1.5V的电压。 可以看到现象:间隔500ms,LED变化,串口打印出字符串。8 I) h) v% i6 K; S& `2 V$ k0 b $ ` E0 |" M' E# N, m1 f: f 六、今天的重点提示 A.DA1和DA2的配置基本一样;% b; V8 n. U' L1 f0 _ B.为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN),因此在引脚配置的地方配置为:GPIO_Mode_AIN。6 V! U3 I! S* A% h/ W ———————————————— 版权声明:马少爷 如有侵权请联系删除 3 _8 ?% Y$ q* `" [) @" F |
经验分享 | 通过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应用演示
微信公众号
手机版