zoukankan      html  css  js  c++  java
  • stm32的DMA传输一半中断

    这里本想做一个录音程序

    硬件很简单:

    MIC(麦克风)放大滤波电路---->stm32的ADC----->DMA通道----->一个数组缓存------->通过FATFS的  f_write() 存入到TF卡

    之后就是程序思路:

    ADC采集的电压数据,,

    DMA设置成循环采集模式,,这样实时的采集电压了漏不掉声音数据,,(如果设置为一次传输,那么在再次开启前,采集的数据会漏掉的)

    DMA设置成传输到一半有个中断,,,这样缓存数组如果设成100,那么存满50个就会有个中断

    这样的好处就是,相当于有两个箩筐,一个用来接收采集的萝卜,,另一个倒萝卜(倒萝卜的人叫DMA,萝卜导入了tf卡),,,两个箩筐轮流使用

    但是这样有个问题,就是两个箩筐要配合,,,倒萝卜的速度要跟得上采萝卜的速度,,,,也就是说,到萝卜的速度要>=采萝卜的速度

    那么声音的采样率是由写tf卡的速度决定的,,,如果写tf卡的速度慢,,,那么采样率只能设置慢一点,,,否则萝卜没有地方放

    所以来研究一下如何DMA传输到一半的时候产生中断

    下面摘自:http://blog.chinaunix.net/uid-21658993-id-3043953.html

  • 相关阅读:
    Ansible概述
    iptables端口转发
    iptables配置实例
    iptables常用操作
    iptables常用命令
    每日总结3.15
    每日总结3.12
    每日总结3.11
    每日总结3.10
    每日总结3.9
  • 原文地址:https://www.cnblogs.com/chulin/p/8872973.html
Copyright © 2011-2022 走看看