STM32 开发(三十三)STM32F103 片内资源 —— 直接存储 DMA 实战 编码详解
👈《上一篇》 🏡《主目录》 👉《下一篇》
文章目录
- 一、基础知识点
- 二、开发环境
- 三、STM32CubeMX相关配置
- 四、Vscode 代码讲解
-
- ADC -DMA 采集温度值 代码解析
- DAC -DMA 输出 1KHZ 正弦波 代码解析
- 五、结果演示
-
- ADC -DMA 采集温度值 结果演示
- DAC -DMA 输出 1KHZ 正弦波 结果演示
- 六、代码下载
一、基础知识点
本实验通过DMA 方式实现 ADC 采集温度和 DAC 输出1KHZ 正弦波功能。
- ADC-DMA 请求要点:当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。也就是说多个规则通道转换出的结果都会存储到 ADC_DR 寄存器中,如果没有使用DMA功能,CPU会不停地去处理转换结果,导致大量占用 CPU 时间。
开发思路:
- DAC-DMA 请求要点:一旦有外部触发(而不是软件触发)发生,则产生一个DMA请求,然后 DAC_DHRx 寄存器的数据被传送到DAC_DORx寄存器。