打印
[STM32F1]

学习笔记+USB通讯口控制波形发生器(2)

[复制链接]
500|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
  在上一篇帖子中,波形的生成都是通过DAC读取计算后数组内的电压值,但是STM32自带的波形发生器支持硬件输出方波(PWM)和三角波,可以有效地降低STM32的数据计算量。本帖从F103的数据手册出发,学习如何使用TIM7硬件输出三角波形。

    从数据手册中可以看出,硬件三角波形的输出是由DAC_CR寄存器的WAVEx[1:0]位控制,三角波的振幅由DAC_CR寄存器的MAMPx[3:0]决定,三角波的频率由APB1的时钟速率有关,换言之,在时钟主频一定的情况下,硬件生成的三角波频率是固定的(个人理解)。


    从上图中可以看出,STM32F1共有两路DAC,以DAC1通道为例,首先将TEN1位置1,使能DAC1的通道触发,而后将WAVE1[1:0]置为10或11,使能生成三角波,而后设置MAMP1[3:0]值,选择三角波的振幅。TSEL1[2:0]用来选择DAC1的触发器,因为使用的是TIM7触发,置010。STM32CubeMX支持HAL与LL库混用,因为涉及寄存器操作,DAC用LL库,方便寄存器的置位操作。硬件的三角波生成大概思路大概就这样了,程序还未测试,晚一些上传。


使用特权

评论回复
沙发
mmuuss586| | 2020-1-16 11:51 | 只看该作者
感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

44

帖子

0

粉丝