使用TIM控制采样频率 实现对采样率的控制
一、使用CubeMX配置工程选择对于开发板
1.配置时钟RCC

RCC选择外部高数时钟。


注意时间树配置,尽量使用最高频率。其中F769的ADC1使用的是APB2。

2.TIM2配置

PSC和Period根据需求配置,这一步确定定时器频率。

注意开启TIM中断。
3.ADC1配置

开启IN6和IN12

ADC配置

添加DMA搬运ADC
4.DMA配置

5.NVIC检查一下中断开启情况

6.开启串口方便调试

USART1开启异步传输其他默认即可


PA9、PA10管脚开启收发功能。
二、Keil里完成代码编写
1.定义一个2048大小的数组用来存放双通道数据,每个通道数据交替存放在数组内,需要后期将其分离。

int ADC_ConvertedValue1[2048];//双通道混合
float ADC_Value1_A0[1024];//通道1
float ADC_Value1_A1[1024];//通道2


初始化后开启TIM和ADC_DMA

  HAL_TIM_Base_Start_IT(&htim2);HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_ConvertedValue1,2048);//开始ADC1的DMA传输


在TIM2中断服务函数设置计数值flag

while循环中可以设置更新时间,处理采样数据。
2048/5120=0.4s更新一次数据。

  while (1){/* USER CODE END WHILE */if(flag0==2048){flag0=0;
//        HAL_TIM_Base_Stop_IT(&htim2);for(int a=0;a<2048;a++){if(a%2==0){ADC_Value1_A0[a/2]=ADC_ConvertedValue1[a]*3.3/4095;//通道1数据}else if(a%2==1){ADC_Value1_A1[(a-1)/2]=ADC_ConvertedValue1[a]*3.3/4095;//通道1数据}}
//        for(int i=0;i<1024;i++)
//        {//            printf("%3.2f\n",ADC_Value1_A1[i]);
//        }HAL_TIM_Base_Start_IT(&htim2);HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_ConvertedValue1,1024);//开始ADC1的DMA传输}/* USER CODE BEGIN 3 */}

可以根据需求改变计数周期和开启ADC_DMA时间。

printf串口重定向:

/* USER CODE BEGIN PTD */
#include "stdio.h"
#ifdef __GNUC__                             //编译器预宏定义
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch,FILE*f)
#endif
//以上代码实现的是宏定义PUTCHAR_PROTOTYPE
/* USER CODE END PTD */
/* USER CODE BEGIN 4 */
/*printf函数重定向(2/2)*/
PUTCHAR_PROTOTYPE
{HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF);//huart2此处书中为huart1不可用return ch;
}
/* USER CODE END 4 */

定时器控制一个ADC实现双通道采样(TIM+ADC+DMA)相关推荐

  1. STM32F0 定时器触发ADC,多通道采样、DMA传输数据的配置

    本块代码实现了定时器定时触发ADC,多通道采样,并通过DMA进行数据传输到内存的操作. #include    "adc.h" [cpp] view plaincopy #defi ...

  2. STM32F4时钟触发ADC双通道采样DMA传输进行FFT+测频率+采样频率可变+显示波形(详细解读)...

    此文转载自:https://blog.csdn.net/qq_45620831/article/details/110819495 写在前面的婆婆妈妈的话 本人大三,参加过数次电赛,来CSDN好久, ...

  3. STM32F4时钟触发ADC双通道采样DMA传输进行FFT+测频率+采样频率可变+显示波形(详细解读)

    写在前面的婆婆妈妈的话(代码链接在最下方) 本人大三,参加过数次电赛,来CSDN好久, 每次都是在绝望中从这里找到了希望,每次都仿佛一个即将被怪兽打翻的小船突然被危险流浪者救起来.是众多前辈的智慧,让 ...

  4. STM32CubeMX | HAL库的ADC多通道数据采集(轮训、DMA、DMA+TIM)、读取内部传感器温度

    STM32CubeMX | HAL库的ADC多通道数据采集(轮训.DMA.DMA+TIM).读取内部传感器温度 目录 STM32CubeMX | HAL库的ADC多通道数据采集(轮训.DMA.DMA+ ...

  5. STM32F4系列探究1——三重ADC扫描连续采样+DMA双缓冲区存储

    文章目录 前言 一.STM32F4的ADC理论知识学习 1.基础知识 2.扫描模式与连续模式 3.单ADC模式下双缓存机制的实现 4.三重同步采样模式 二.由定时器触发的单缓冲区模式 1.时钟树配置 ...

  6. adc采样时间_太秀了!单片机内置 ADC 实现高分辨率采样?

    作者 | 逸珺来源 | 嵌入式客栈(ID:embInn)头图 |  CSDN 下载自东方IC[导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用 ...

  7. 太秀了!单片机内置 ADC 实现高分辨率采样?

    作者 | 逸珺 来源 | 嵌入式客栈(ID:embInn) 头图 |  CSDN 下载自东方IC [导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想 ...

  8. STM32三个ADC同步规则采样

    同步采样一般应用于交流信号中,是指多个ADC的采集时刻完全同步.在电力测量领域,经常会遇到需要同步采样的情况,比如同步采样电压电流信号,计算其相位差.阻抗分析时,也需要对输入输出信号进行同步采集,分析 ...

  9. 关于STM32利用TIM+PWM+DMA控制WS2812

    开发环境 MCU:STM32F103c8t6 开发工具:STM32CubeMX 使用板子参考原理图:STM32F103C8T6最小系统板开源链接 PWM 脉宽调制(PWM)基本原理:控制方式就是对逆变 ...

  10. stm32 adc 连续和扫描_技术分享 | STM32多个ADC模块同时采样转换的应用示例

    在STM32家族里,多数系列芯片内含2到3个ADC模块,有的甚至更多,比方G4系列可以有5个ADC模块.其中,通道数因不同的系列或型号多少不等,几个到几十个的都有.有时,我们可能需要多个ADC模块同时 ...

最新文章

  1. 批处理实现从Excel导入Oracle
  2. jquery1.6中的.prop()和.attr()异同
  3. 电力“十三五”蓝图发布 新能源迎发展机遇
  4. php未正确拼写字 css,前端Bug解决方案
  5. JSONObject 自定义过滤配置
  6. java 反射泛型方法_java基础之反射和泛型以及注解
  7. R 学习 - 功能富集泡泡图
  8. 怎么设置android studio的field前缀
  9. 微课|中学生可以这样学Python(例11.1):tkinter电子时钟程序(2)
  10. 2018年了,Windows2000还能用吗?
  11. 计算机桌面文件夹消失了,电脑桌面文件不见了怎么恢复?再也不担心系统故障...
  12. ai杀手级_设计师的10个杀手级Adobe Photoshop技巧
  13. MySQL课程超级团,值得再提一次。
  14. 翁恺c语言程序设计入门期末,程序设计入门-C语言 翁恺.doc
  15. python from win32com import client 出现弹框 隐藏模块中出现编译错误
  16. 培训班出来,碰到查学历,哎宝宝苦。
  17. java12.0.1版本环境变量设置,2019年5月16,小白笔记
  18. 带你了解什么是MySQL数据库(一)
  19. 域名国家工程研究中心(ZDNS)培训认证中心正式成立
  20. Android性能优化系列篇(五):弱网优化

热门文章

  1. 计算机操作系统(第四版)课后习题答案
  2. STM32官方应用笔记分类汇总
  3. Delphi 技术的优缺点与应用
  4. 水利系统防雷,如何做好洪水预报警报系统的雷电防护
  5. ADC 外电阻分压种种
  6. OPPOR9m官方固件刷机教程
  7. 手机mstsc远程工具_mstsc远程工具
  8. 相机模型与坐标转换!
  9. 用在线RaxML构建系统发育树
  10. 图像插值理论研究——双三次插值(双立方插值)