• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32产生正弦波

b43e0782eb22ce84 2019-03-01 浏览量:1805
​我现在用的是stm32F103RCT6型的单片机,我想请问,STM32的DAC+timer+DMA产生正弦波的原理是什么?它们是怎么联动的?我看了官方给的正弦波程序,但有些地方不明白。譬如,那个正弦表是怎么来的?作用是什么?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 正弦表就是按照点数算出来的sin值(换算成整数,考虑单边输出,值还要平移电平)

    然后定时器产生对应的时间点,查sin表,DMA把对应数值传到DAC,由DAC输出模拟电压

    再经过滤波就是正弦波了。

    • 发布于 2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 首先要配置定时器的频率,并设置定时器为输出触发。然后配置DAC的触发源为定时器触发,并打开DAC的MDA功能。接下去轮到DMA的工作了,设置DMA的操作对象为DAC。按上面配置好后,三个外设就可以正常工作了:定时器每次计数值递增,就触发DAC工作,然后DMA就控制DAC输出相对应的电压值,在一个定时周期内,DAC输出电压值输出按正弦波的变化,这样就产生了正弦波!
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 1
    • 0

  • 一种是自己通过sin函数生产数据表,还有一种办法就是提前写入这张表
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 正弦表是计算好的正弦波离散数据表格,DAC就是通过它来模拟出不同时刻正弦值模拟出正弦波的,此外STM32的DAC是支持生成三角波的,你还可以加外部积分电路把三角波变成正弦波。
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 先计算处正弦波的数据表(这个网上有小软件可以生成),然后从DAC输出。用示波器量就可以看到正弦波,幅值最大3.3V
    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 正弦表就是预先将某个时间点要输出何种电压保存起来,等到了指定时间就将表上面的电压值写入ADC
    • 发布于2019-03-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 写正弦表   扔值给DAC
    • 发布于2019-03-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 正弦表是在T-V图像上采样得到的点,作用是为了节省cpu开销,直接那拿数,而不用计算
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 正弦表是算出来的在固定时间点产生的电压值的一个记录,这样就可以使用查表法直接获取数值,不用计算。

    定时器对应的时间点都有一个对应的数值,然后DMA直接给DAC输出,形成波形。

    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32产生正弦波