推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

获得赏金
10.00元
ADC非扫描单次和连续模式模数转换 HAL实现 详细教程 keil开发

更新时间:2024-07-24 07:42:48 大小:24M 上传用户:mulanhk查看TA发布的资源 标签:adc模数转换halkeil 下载积分:4分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

1. 输出

AD转换可分为两种模式

注入通道:最多只能选4个通道,且转换出来的结果会分别存放到4个寄存器中

规则通道:最多可选16个通道,但是只有一个寄存器用于存放结果,假如不想被覆盖,可以利用DMA请求把转换出来的结果依次转运出来

输出的结果是12位的,而寄存器是16位的,所以结果存放在寄存器中就有两种模式

左对齐:左对齐的数据相当于真实值左移了4次,即放大了16倍

右对齐:获得的数据就是真实值


image.png


2. 触发转换方式

软件触发

硬件触发

注入组:外部中断,定时器TRGO等

规则组:外部中断,定时器TRGO等


3. 时钟

ADC时钟来自RCC内部72M时钟,但是ADC时钟最大频率只能是14MHZ,而

ADC的预分频器只能选择2/4/6/8。综上所述,ADC的预分频器最大只能选择6分频,频率12MHZ。

ADC的四种模式

单次转换非扫描模式

连续转换非扫描模式

单次转换扫描模式

连续转换扫描模式


项目配置:

image.png

image.png

1. 选择ADC1_IN0端口

2. 选择为独立模式:对应标准库中的函数

3. 设置数据为右对齐、非扫描模式、非连续模式

4. 转换通道为1,因为前面只勾选上了IN0


时钟树配置:

image.png

项目存储路径:

image.png

项目代码:

编写ADC模数转换函数,和定义所需的变量


image.png

单片机在上电前所需要的初始化操作

image.png

主循环中所需要实现的操作

image.png

最终效果示意图

image.png

部分文件列表

文件名大小
11. ADC_ContinueF_scanF/
11. ADC_ContinueF_scanF/.mxproject8KB
11. ADC_ContinueF_scanF/14. ADC非扫描单次和连续模式,HAL实现.pdf
11. ADC_ContinueF_scanF/ADC_ContinueF_scanF.ioc5KB
11. ADC_ContinueF_scanF/Core/
11. ADC_ContinueF_scanF/Core/Inc/
11. ADC_ContinueF_scanF/Core/Inc/adc.h1KB
11. ADC_ContinueF_scanF/Core/Inc/gpio.h1KB
11. ADC_ContinueF_scanF/Core/Inc/main.h2KB
11. ADC_ContinueF_scanF/Core/Inc/OLED.h1KB
11. ADC_ContinueF_scanF/Core/Inc/OLED_FONT.h
...
  • 21ic小能手打赏了10.00

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载