STMCU小助手
发布时间:2022-3-20 13:20
|
在DAC的主要特征中可以看出,DAC内部还带有波形发生器。 DAC 主要特征 2个DAC转换器:每个转换器对应1个输出通道 8位或者12位单调输出 12位模式下数据左对齐或者右对齐 同步更新功能 噪声波形生成 三角波形生成 双DAC通道同时或者分别转换 每个通道都有DMA功能 外部触发转换 输入参考电压V REF+ 比如我们要输出一个三角波,就不需要自己去计算三角波每个点的电压是多少,通过内部自带的三角波发生器,就可以产生三角波。具体的操作步骤在官方文档中也有介绍。 三角波生成 可以在DC或者缓慢变化的信号上加上一个小幅度的三角波。设置WAVEx[1:0]位为’10’选择DAC的三角波生成功能。设置DAC_CR寄存器的MAMPx[3:0]位来选择三角波的幅度。内部的三角波计数器每次触发事件之后3个APB1时钟周期后累加1。计数器的值与DAC_DHRx寄存器的数值 相加并丢弃溢出位后写入DAC_DORx寄存器。在传入DAC_DORx寄存器的数值小于MAMP[3:0] 位定义的最大幅度时,三角波计数器逐步累加。一旦达到设置的最大幅度,则计数器开始递 减,达到0后再开始累加,周而复始。将WAVEx[1:0]位置’0’可以复位三角波的生成。
注意: 为了产生三角波,必须使能 DAC 触发,即设 DAC_CR 寄存器的 TENx 位为 ’1’ 。 MAMP[3:0] 位必须在使能 DAC 之前设置,否则其值不能修改 下面通过代码来设置DAC输出三角波
将DAC的通道1和通道2都开启,要自动输出三角波,这时候就不能使用软件自己去触发了,在这里要借助定时器来自动触发,当定时器定时时间到了之后,就会触发一次DAC的输出,这里使用的是定时器2触发,所以初始化DAC的时候。也要初始化定时器2,接下里初始化DAC,设置DAC的触发方式为定时器2触发,然后选择三角波发生器,接下来设置通道1三角波的幅度最大值为4095。也就是输出的三角波最大电压值为3.3V。设置通道2的三角波最大幅值为2047,也就是通道2的最大值为通道1的一半1.65V。最后使能DAC输出。这是三角波就会的PA4和PA5引脚上自动输出了。通过示波器就能看到这两个引脚上的波形了。 |
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
2025软件工具兔哥知道
STM32之继电器模块
STM32固件库分享,超全系列整理
【MCU实战经验】基于STM32F103的二轮平衡车(6轴上位机 源代...
10张图带你完全掌握STM32 GPIO,从入门到精通,收藏就够了!
如果你解决了这些问题,就可以直接学STM32
STM32的分类和选型
微信公众号
手机版