【STM32H745I-DISCO试用】3.1 DAC输出任意波形
摘要:本文介绍了基于DAC的波形发生器实现方法,通过配置TIM6定时器和DAC模块,成功输出方波、正弦波、三角波和噪声信号。重点演示了三角波和噪声信号的生成过程,包括CubeMX配置、代码实现及波形调整技巧。通过修改TIM6的ARR值和Amp位宽,可灵活调节输出波形的频率和幅度。实验结果表明,该系统能稳定生成多种波形,为信号处理应用提供了实用参考。
·
在开机演示中,我们看到官方制作了一个波形发生器的Demo,经过查阅原理图和DAC的配置可推测出波形输出引脚为PA4(在扩展板上位于MOS引脚处)。

一、测试Demo程序输出波形效果1.1设定为方波
不同频率表现如下:

1.2设定为正弦波

1.3设定为三角波

二、DAC输出任意波形2.1噪声信号
CubeMX配置如下:
TIM6配置:

DAC配置:

触发器(Trigger):选择TIM6也可以选择其他的定时器
输出波形选择:这里先选择噪声信号
噪声信号幅度选择:有12种可选,这里先选择一种最大。
在主函数中添加代码:
HAL_TIM_Base_Start(&htim6);//开启定时器
HAL_DAC_Start(&hdac1,DAC_CHANNEL_1);//开启DAC输出
观察波形:
Amp为[11:0]

Amp为[8:0]

设置为不同的位数,DAC输出的噪声信号幅度各不相同,可以根据需要进行选择。
2.2三角波
CubeMX配置如下:(TIM6配置与之前一致)

触发器(Trigger):选择TIM6也可以选择其他的定时器
输出波形选择:这里选择三角波信号
噪声信号幅度选择:有12种可选,这里先选择一种最大。
在主函数中添加代码:
HAL_TIM_Base_Start(&htim6);//开启定时器
HAL_DAC_Start(&hdac1,DAC_CHANNEL_1);//开启DAC输出
观察波形:
TIM6->ARR = 199;

同样的可以调整Amp的数值以改变输出幅度,并且可以更改TIM6触发更新中断的频率以达到调整频率的目的。
TIM6->ARR = 9;

可以看到将TIM6触发更新中断的频率调整为原来的10倍后输出频率也变为了原来的10倍。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)