ADC456456

·ADC扫描模式+DMA,左边是ADC扫描模式的执行流程,有七个通道,触发一次之后7个通道依次进行AD转换,然后转换结果放到ADC_DR寄存器里面。在每个单独的通道转换完成之后,进行一个DMA数据转运,并且目的的地址进行自增,防止数据被覆盖。外设地址写入ADC_DR这个寄存器的地址,存储器的地址可以在sram中定义一个数组ADValue,然后把ADValue的地址当做存储器的地址,之后数据宽度由于ADC_DR和sram数组都是uint16_t的数据,所以数据宽度都是16位的半字传输。在图中可见外设地址不自增存储器地址自增,传输方向是外设站点到存储器站点。传输通道有7个所以传输计数器设置为7。ADC如果是单次扫描,那么ADC的传输计数器可以不自动重装,转换一轮即停,如果ADC是连续扫描,可以使用自动重装,在ADC启动下一轮转换的时候,DMA也启动下一轮转运,ADC和DMA同步工作。ADC_DR的值是在ADC单个转换完成之后才有效的,所以DMA转运的时机,需要和ADC单个通道转换完成同步,所以ADC的触发要选择硬件触发。

        ·DMA最常用的用途就是配合ADC的扫描模式,因为ADC扫描模式有数据覆盖的特征,ADC对于DMA的需求非常强烈,其他的外设使用DMA将锦上添花,ADC没有的话功能会受到极大的限制。

相关推荐

  1. ADC456456

    2024-03-27 05:24:06       19 阅读
  2. SPI456456

    2024-03-27 05:24:06       13 阅读
  3. ADC123123

    2024-03-27 05:24:06       20 阅读
  4. [AGC063C] Add Mod Operations 题解

    2024-03-27 05:24:06       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 05:24:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 05:24:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 05:24:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 05:24:06       20 阅读

热门阅读

  1. AI学习笔记— 机器学习的种类

    2024-03-27 05:24:06       15 阅读
  2. 基于pear-admin-flask 的 flask 使用教程

    2024-03-27 05:24:06       20 阅读
  3. 主流开发语言和开发环境介绍

    2024-03-27 05:24:06       16 阅读
  4. 主流开发语言和开发环境介绍

    2024-03-27 05:24:06       15 阅读
  5. C++之三目运算符

    2024-03-27 05:24:06       16 阅读
  6. MyBatis框架解析与优化

    2024-03-27 05:24:06       17 阅读
  7. 如何理解React的state、props、super()和super(props)

    2024-03-27 05:24:06       18 阅读
  8. 基于UI交互意图理解的异常检测方法-学习记录

    2024-03-27 05:24:06       17 阅读