一、RCC时钟配置
6 f0 r( y5 _* R5 `8 h. r 该函数位于在bsp.c文件下面;" s1 a4 o1 t& ^! W4 J ) f; F/ T7 c ]' N' v 使能RCC时钟:RCC_APB1Periph_DAC 这里DA的时钟不像AD有AD1、AD2等,DA是共用时钟,所以调用接函数的时候一定要区分DA1和DA2开来。2 D4 _0 w( q" m* t1 p3 g1 | 4 t8 E6 J9 P6 W* ?' o' G 二、引脚配置3 M1 S0 R2 _, i$ w" c
该函数位于在dac.c文件下面;% N- U! d- a3 Q' p 对DA通道1所使用的引脚进行配置。2 X! g% V% J4 _2 l( T8 h( Y5 ] 注意:0 h- w" V& H% X9 \9 v6 R) M ! P' D8 e" D V( `3 D/ N% Y 这里的DAC_OUT1引脚是固定对应的PA4的,一旦启动DA1功能,这个引脚就用于DAC功能了。: m! U7 I9 g' w, V! k9 d ( T- M7 z" N( ]* L4 N: ` 三、DAC配置 : `# s( [% a3 c" R7 N
该函数位于在dac.c文件下面;6 \/ l. N6 v2 M( y4 N+ y 6 ]" ]; F. @6 O1 ]7 V 对DA进行配置。% Z X( I; Q3 w8 b% k' q$ O3 Q 配置的每一条语句都有注释,请看源代码.4 m) p* R, g' s) c 四、输出电压 ( Q! z5 z# C* I2 w: z7 u, h
该函数位于在dac.c文件下面;/ t/ c. T- Y3 t+ _4 z$ ^$ ~7 q 调用这个接口就可以在PA4引脚上输出相应的电压值(注意这个接口适用于参考电压为3.3V的情况下,若参考电压改了,换算的公式也要对应改,看源代码的人都应该知道怎么修改)。. A. ?. N& ?2 T' @ ! f: _% @# e% l) e! y) C 这里是使用软件出发转换,后期会使用其他方法触发。8 D) e( E# B- h/ S 五、主函数应用 0 u, h: ^; G3 O
该函数位于在main.c文件下面;# f: n+ W- w7 l0 A! Y' j 主要就是在上电配置DA,并让其在PA4引脚上输出1.5V的电压。 可以看到现象:间隔500ms,LED变化,串口打印出字符串。 六、今天的重点提示 A.DA1和DA2的配置基本一样; B.为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN),因此在引脚配置的地方配置为:GPIO_Mode_AIN。 ———————————————— 版权声明:马少爷 如有侵权请联系删除( M- y. x# ^/ m# o+ K( x3 \7 k & M' i( i+ A% `$ I6 [( Y |
经验分享 | 通过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应用演示
微信公众号
手机版