DAC的使用用法

基本用法
from pyb import DAC
dac = DAC(1)            # create DAC 1 on pin X5
dac.write(128)          # write a value to the DAC (makes X5 1.65V)
dac = DAC(1, bits=12)   # use 12 bit resolution
dac.write(4095)         # output maximum value, 3.3V
输出正弦波
import math
    from pyb import DAC
    # create a buffer containing a sine-wave
    buf = bytearray(100)
    for i in range(len(buf)):
    buf = 128 + int(127 * math.sin(2 * math.pi * i / len(buf)))
    # output the sine-wave at 400Hz
    dac = DAC(1)
dac.write_timed(buf, 400 * len(buf), mode=DAC.CIRCULAR)
出12位精度正弦波


    import math
    from array import array
    from pyb import DAC
    # create a buffer containing a sine-wave, using half-word samples
    buf = array('H', 2048 + int(2047 * math.sin(2 * math.pi * i / 128)) for i in range(128))
    # output the sine-wave at 400Hz
    dac = DAC(1, bits=12)
    dac.write_timed(buf, 400 * len(buf), mode=DAC.CIRCULAR)




class pyb.DAC(port, bits=8)


定义DAC
        port,1或2,对应X5(PA4)/X6(PA5)
bits,输出精度,可以是8或12


        dac.init(bits=8)
        初始化DAC


        dac.noise(freq)
        以指定频率,产生伪随机噪声信号


dac.triangle(freq)
以指定频率产生三角波
        dac.write(value)
        写入参数。在8bits时,参数范围[0-255];在12bits时,参数范围[0..4095]


        dac.write_timed(data, freq, *, mode=DAC.NORMAL)
        使用DMA方式周期写入数据


                data,缓冲区数组
                freq,默认使用Timer(6),用指定频率更新。也可以指定另外的定时器,有效的定时器是[2, 4, 5, 6, 7, 8]
                mode,DAC.NORMAL or DAC.CIRCULAR

转载于:https://my.oschina.net/micropython/blog/1817069

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在STM32F103上使用DAC播放.wav文件,您需要进行以下步骤: 1. 将.wav文件转换为PCM格式:由于DAC只能输出模拟信号,您需要将.wav文件中的数字音频数据转换为PCM格式。您可以使用音频处理软件或在线工具来完成此操作。 2. 准备STM32F103开发板:确保您的开发板上已连接DAC引脚(例如PA4)。如果您的板子没有连接DAC引脚,您可以选择使用外部DAC芯片并将其连接到适当的引脚。 3. 配置DAC和时钟:在STM32CubeMX或直接在代码中,配置DAC模块和相关的时钟。确保使能DAC通道并选择正确的时钟源。 4. 初始化DAC使用适当的HAL库函数初始化DAC模块。这可能涉及设置DAC通道、DMA传输等。 5. 读取PCM数据:从转换后的PCM文件中读取音频数据。您可以使用FAT文件系统或其他方法来读取文件并将数据存储在适当的缓冲区中。 6. 向DAC发送数据:使用HAL库函数或直接访问DAC寄存器,将PCM数据写入DAC数据寄存器。确保根据DAC的分辨率进行正确的数据缩放。 7. 启动DAC转换:启动DAC转换以开始播放音频数据。这可以通过设置适当的位来完成。 8. 处理中断(可选):如果您选择使用DMA传输音频数据,您可以在DMA传输完成时处理DMA中断,并在需要时更新DAC数据寄存器。 请注意,这只是一个大致的步骤概述。具体的实现细节取决于您使用的开发环境和库。建议参考STM32F103的技术手册和相关示例代码以获取更详细的指导。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值