IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F1 ADC和DMA的简单理解 -> 正文阅读

[嵌入式]STM32F1 ADC和DMA的简单理解

? ? ? ? 本文主要讲解stm32f1ADC和DMA的理解,不讲最基础的配置,需要对ADC和DMA有一定了解。另外在学习中参考了多篇文章,感谢前辈的付出。

STM32F10X ADC多通道读取小教程(包含DMA)_JameScottX的博客-CSDN博客

STM32关于使用定时器触发ADC转换_a2988a的博客-CSDN博客_定时器触发adc转换

stm32定时器触发ADC1多通道规则转换_Y_T_CH的博客-CSDN博客

【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)_Yngz_Miao的博客-CSDN博客_stm32定时器触发adc采样

【STM32】DMA基本原理、寄存器、库函数(DMA一般步骤)_Yngz_Miao的博客-CSDN博客

1--STM32 ADC1与ADC2 16通道DMA采集笔记(原创) - 寻觅左岸 - 博客园 (cnblogs.com)

STM32F103ADC的工作模式和触发方式的探索与理解,结合自我..... - STM32团队 ST意法半导体中文论坛 (stmicroelectronics.cn)

关于STM32 ADC自校准的个人理解 - Ady Lee - 博客园 (cnblogs.com)

? ? ? ? 在使用ADC过程中,我先是对ADC的校准过程产生了疑问

? ? ? ? 如上图最后两行可知,校准前ADC既要上电又要关电。。。我甚是不解,重看资料才理解

? ? ? ? ?校准应该满足ADON第一次置1,且在置1之前置0时间超过两个ADC周期,并且在读这段话时,我又重新对ADC的转换启动方式有了新的认识。

? ? ? ? ?在看这个CR2寄存器ADON位之前,我一直以为ADC转换触发方式只有外部触发转换 和 软件设置CR2第22位SWSTART。但现在多了连续置ADON位为1这种方式,经过试验发现这种方式确实可行,于是我想在不开启连续转换模式下ADON在两次置1后会清0吗?

? ? ? ? ?如上图所示,打开逻辑分析仪,读取CR2的ADON位可知,在ADON置1后不对其进行置0操作则一直保持1,即第一次读取完后对ADON置一下1,ADC就可以转换一次,

? ? ? ? 在了解完ADC的转换开启后,我又开始使用ADC的DMA请求

?????????上图简单的一段话其暗藏了十分多的内容,我们逐一来看,第一句话直接表明了一个必须使用DMA的场景——在ADC开启多通道转换时,想要得到每个通道ADC转换的值,就必须开启对应的DMA通道,也就是说,当开启CR1SCAN位时,我们所配置的ADC规则通道组将会按照我们所安排的顺序去开启转换,然后将值放入DR寄存器中,但是,问题就在这里。

? ? ? ? 如上图所示,ADC的数据位被存放在了DR寄存器的前16位,但这只有16位,多通道读取时,一次扫描将会有多个数据被存放,那当然会把之前的数据给顶替掉,所以DMA在这个时候起了大作用

? ? ? ? 如上图,DMA在得到ADC某个通道转换结束的信号时,就会将DR中的数据发送给外设寄存器或存储器(如SRAM),所以,我们可以设置一个数组,将多个数据存储下来。

? ? ? ? 但我那时产生了一个很傻的想法,那就是当第一个ADC通道转换完之后,DMA开始传输数据,那么第二个通道的转换是在DMA传输完成后开始还是边传输边转换

? ? ? ? ?如上图所示,红线为SR的规则通道开始转换位,绿线为规则通道转换结束位,蓝色为DMA_ISR的传输完成中断位,由上图分析可知,红线拉高(ADC开始转换),绿线拉高(ADC转换完成),蓝线拉高(DMA传输完成),绿线拉低(ADC转换完成中断被清0),可见只有DMA传输完,ADC中断才被清零 (跟下图对应) ,进行下一个通道的转换。

?

? ? ? ? 那三句话是什么意思呢?

? ? ? ? 再读双ADC的快速交叉模式,配合着DR寄存器对高16位的讲解,一下就了然了。?

? ? ? ? 第一次写博客,写的都不是啥重点,有错误的地方请各位指出,我看到会及时修改。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:48:39  更:2021-07-31 16:50:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:44:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码