- 1
- 2
- 3
- 4
- 5
获得赏金
10.00元扫描模式下的ADC读取数据和DMA转运 mulan keil 一步步配置
资料介绍
项目内容:
在两种模式(扫描非连续模式,扫描连续模式)下的,ADC读取数据,DMA转运数据。
1. 扫描非连续(手动实现转运数据)避免造成数据覆盖
2. 扫描连续,单片机自行实现数据转运更新
包含:
3. stm32cubemx的详细配置步骤
4. keil的详细代码编写
5.最终效果实现图
核心目的:
本项目的核心目的,和实现目标,在合适的时机把ADC读取到的数据给在恰当的时机通过DMA转运出去,防止造成数据的覆盖。
一、与单次扫描差异
1. 规则组添加
单次扫描只需要添加1个通道放在序列1中,现在由于是多通道,所以规则组需要添加多个通道
2. 初始化ADC时
初始化ADC时需要设置单次扫描模式,并且把总通道数设置为4
3. 初始化DMA
由于规则组只有一个结果寄存器(ADC->DR)单次转换就一个结果直接存在这个寄存器里
原理图
项目配置:
一、扫描非连续模式,在ADC读出数据后,需要编写代码转换数据
STM32CUBEMX参数设置:
ADC设置
打开ADC通道,选择四个通道IN0,IN1,IN2,IN3
ADC的参数配置:
1. 设置为扫描模式
2. 设置为非连续模式
3. 设置需要被扫描的通道数
DMA的参数配置:
1. 添加一个DMA通道,选中转运的对象ADC通道
2. 设置为Normal模式
3. 选择对应的数据大小Half Word
OLED的GPIO参数配置:
1. 选择作为OLED时钟线和数据线引脚的端口
2. 将两者都设置为开漏输出模式
3. 分别给两个引脚重命名为SCL和SDA
时钟树配置:
注意在ADC的分频系数中选择6分频,以保证频率在合理范围内
代码编写:
分别在库中加入OLED的源文件,头文件和字模库
在main函数中校准ADC
2. 找DMA对象
因为在后续过程中在main使用DMA对象,所以需要把DMA对象设置为EXTERN,这样可以在main中使用它。转到自动生成的ADC初始化函数。
在ADC.h中对hdma_adc1进行extern,这样就可以全局调用了
3. 定义单片机执行程序中所需变量
4. 主循环中重复循环执行的程序
依次显示所读取到的数据值
最终效果显示图
二、扫描连续模式,在ADC读取数据后可以自动转换数据
在扫描非连续的基础上修改。
把ADC这里的参数配置成Enabled
将DMA的模式设置为循环模式
在原有基础上,修改这行代码
最终效果实现图
部分文件列表
文件名 | 大小 |
ADC_ContinueF_scanF_DMA/ | |
ADC_ContinueF_scanF_DMA/.mxproject | 8KB |
ADC_ContinueF_scanF_DMA/ADC_ContinueF_scanF_DMA.ioc | 6KB |
ADC_ContinueF_scanF_DMA/Core/ | |
ADC_ContinueF_scanF_DMA/Core/Inc/ | |
ADC_ContinueF_scanF_DMA/Core/Inc/adc.h | 1KB |
ADC_ContinueF_scanF_DMA/Core/Inc/dma.h | 1KB |
ADC_ContinueF_scanF_DMA/Core/Inc/gpio.h | 1KB |
ADC_ContinueF_scanF_DMA/Core/Inc/main.h | 2KB |
ADC_ContinueF_scanF_DMA/Core/Inc/OLED.h | 1KB |
ADC_ContinueF_scanF_DMA/Core/Inc/OLED_FONT.h | |
... |
- 21ic小能手打赏了10.00元
最新上传
-
21ic小能手 打赏10.00元 6小时前
-
21ic小能手 打赏10.00元 6小时前
-
21ic小能手 打赏5.00元 3天前
资料:电阻电容封装库
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:ABC逻辑综合工具源码
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:SDL2发布版源码
-
21ic下载 打赏320.00元 3天前
用户:小猫做电路
-
21ic下载 打赏320.00元 3天前
用户:zhengdai
-
21ic下载 打赏320.00元 3天前
用户:liqiang9090
-
21ic下载 打赏320.00元 3天前
用户:gsy幸运
-
21ic下载 打赏110.00元 3天前
用户:WK520077778
-
21ic下载 打赏50.00元 3天前
用户:sun2152
-
21ic下载 打赏50.00元 3天前
用户:w178191520
-
21ic下载 打赏40.00元 3天前
用户:xuzhen1
-
21ic下载 打赏40.00元 3天前
用户:xzxbybd
-
21ic下载 打赏40.00元 3天前
用户:w993263495
-
21ic下载 打赏40.00元 3天前
用户:w993263495
-
21ic下载 打赏40.00元 3天前
用户:w1966891335
-
21ic下载 打赏40.00元 3天前
用户:kk1957135547
-
21ic下载 打赏50.00元 3天前
用户:玉落彼岸
-
21ic下载 打赏40.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏50.00元 3天前
用户:happypcb
-
21ic下载 打赏30.00元 3天前
用户:不觉明了
-
21ic下载 打赏20.00元 3天前
用户:后即可
-
21ic下载 打赏30.00元 3天前
用户:gqkhao
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
资料:自己做的超级舵机整套源码
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
lightspeed 打赏1.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏10.00元 3天前
全部评论(0)