HAL库(STM32CubeMX)——DAC学习(STM32G431RBT6)

DAC

Digital-to-Analog Converter的缩写。数模转换器。又称D/A转换器,简称DAC,是指将离散的数字信号转换为连续变量的模拟信号的器件

这里我们可以设置输出的电压和波形

1.简单配置一个固定电压:

Output Buffer 使能DAC输出缓存,

输出缓冲Output Buffer建议关闭。DAC的输出缓存可以用来减小输出阻抗,无需外部运放即可直接驱动外部负载。但输出不能达到0(会出现底部失真),不推荐开启。具体参考官方手册,缓冲器打开时低端的DAC输出电压大概0.2V(不同型号可能不同,暂未考证)

只需要在main函数中添加下图代码即可。

HAL_DAC_Start(&hdac1, DAC_CHANNEL_1);
HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 2000);
  • 利用DMA实现:

这里需要配置定时器来选择DAC的触发频率。没有解决,心态炸裂,就是不工作

2.生成三角波(周围没有示波器无法实验)

DAC外部触发(Trigger) :选择一个定时器触发

波形生成模式(Wave generation mode) :三角波发生器(Triangle wave generation),和噪声波形(noise wave generation)

最大三角波幅(Maximum Triangle Amplitude) :4095,

设三角波幅值为3.3V,即4095

DAC12位数据存储,最大为4095,0-4095 对应 0V~3.3V

之后继续配置使能对应的定时器中断。

(以后有机会实验)


2022.6.16更新:

 三角波生成配置:

波形生成模式(Wave generation mode) :
三角波发生器(Triangle wave generation)勾选
噪声波形(noise wave generation)不选择
最大三角波幅(Maximum Triangle Amplitude) :4095
如果最大电压是3.3V,那么三角波幅值为3.3V
0 ~ 4095 对应 0V ~ 3.3V

之后配置定时器就好了。

 

	HAL_TIM_Base_Start(&htim2);

程序里打开对应的定时器就行

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值