
一、RCC时钟配置7 `# {1 k. M( }5 s2 P : e3 F1 G. h1 W/ v; R, b ![]() % u' {) y/ [' M; Z/ | 9 c; |+ h b& G4 p' I 该函数位于在bsp.c文件下面; 使能RCC时钟:RCC_APB1Periph_DAC! U @: r [/ T: w, i" i" n 8 F/ D: }5 U4 t3 b( l 这里DA的时钟不像AD有AD1、AD2等,DA是共用时钟,所以调用接函数的时候一定要区分DA1和DA2开来。" F' F; C9 z5 E+ p& } Z0 s 二、引脚配置 ![]() & r. A+ r" V6 ^* l 该函数位于在dac.c文件下面; 4 u- t( S" o' E4 ] K; H 对DA通道1所使用的引脚进行配置。' E; {, {/ B' D0 A6 U0 V 注意:$ B, ]0 r( ?; W [7 A+ s' Y. @ 这里的DAC_OUT1引脚是固定对应的PA4的,一旦启动DA1功能,这个引脚就用于DAC功能了。9 u( I. C- s$ T" \% h& Z) g2 c U 三、DAC配置' O0 J Y# K$ G0 M6 q7 O+ [ ![]() 该函数位于在dac.c文件下面;$ s) v1 Y/ p& U2 W+ E 对DA进行配置。 ( m1 I! r( D, `+ T$ u' C2 q1 g 配置的每一条语句都有注释,请看源代码.9 J1 `- N/ z# W0 s6 d' r - T, R% e6 Z) i 四、输出电压 ![]() * Q \* ^2 @' |1 s" \ 该函数位于在dac.c文件下面; - E% v5 Y: I8 f9 ~ 调用这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。 " F" J. Q; c) N) ?4 t N/ m 这里是使用软件出发转换,后期会使用其他方法触发。 五、主函数应用( X& v: I. N8 U! T7 A ![]() . J, J6 S4 r, x8 x* V2 b 该函数位于在main.c文件下面; + p( P+ A. ~" q0 n: u0 _7 i6 g 主要就是在上电配置DA,并让其在PA4引脚上输出1.5V的电压。 可以看到现象:间隔500ms,LED变化,串口打印出字符串。! M+ l; `7 r! c! `( p$ Q0 b 5 a6 E# C# J+ R# y 六、今天的重点提示0 F$ R+ A' Z" r( W" }$ n, `6 D A.DA1和DA2的配置基本一样;+ v! b. K$ _& Z" S$ E B.为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN),因此在引脚配置的地方配置为:GPIO_Mode_AIN。3 R2 A. U0 n* M, H: v ———————————————— 版权声明:马少爷* V' D& U1 C* O, T9 {* \ 如有侵权请联系删除9 h* ~+ I. c6 ?) O& x 5 c \* k7 E/ I: d: `" r" J |
基于STM32使用ADC的多通道采样经验分享
基于STM32利用ADC+DMA采样显示经验分享
基于STM32的ADC+DMA采样与板载运放跟随经验分享
基于STM32F407和Cubemx的ADC采集+DMA传输实现简易示波器经验分享
基于STM32CubeMX实现ADC的经验分享
基于STM32的ADC+DMA采样与板载运放跟随经验分享
基于STM32双定时器+ADC+DMA实战经验分享
基于STM32的定时器触发ADC时可能遇到的情形
基于STM32的ADC片内信号经验分享
基于STM32U5 ADC+DMA配置经验分享