【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)

这篇具有很好参考价值的文章主要介绍了【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在用单片机做电源控制时不得不提ADC采集,离散系统是有固定的执行周期的,所以我们采样也是要固定时间去采样。然后就是我希望pwm波(定时器1产出)的频率与采样频率一致。
我下面演示的是G431CBU6,当然其他芯片也大差不差了。
说一下大致流程,TIM1触发ADC采样,然后DMA把数据搬出来,在ADC中断里处理DMA搬出来的数据。

ADC配置

上升沿触发adc,stm32,嵌入式硬件,单片机
首先口都是这个signal的。
上升沿触发adc,stm32,嵌入式硬件,单片机
上升沿触发adc,stm32,嵌入式硬件,单片机
这里记得用循环。不然你第一次数据才出来DMA搬完你还要再次使能DMA,太麻烦了。
上升沿触发adc,stm32,嵌入式硬件,单片机
Scan Conversion Mode:就是多通道模式。这里你要先完成下面的选择转换口数量才能enable。
一定不要使能连续转换。我们的目的就是定时器触发,确定采样周期,你用连续的话就是定时器触发一次然后他就搁那一直转了。
DMA肯定是要连续请求的。
上升沿触发adc,stm32,嵌入式硬件,单片机
这个转换通道数目设定了你上面的scan(扫描模式)就是enable了。
触发的话我这里选了捕获,上升沿触发。也就是tim1的通道1它输出PWM波,它就会在pwm波的每个上升沿触发ADC转换。
上升沿触发adc,stm32,嵌入式硬件,单片机
就像上面这样,我们是上升沿触发,也就是前面的地方触发,每个周期触发一次。
然后就是下面的通道选择了,它是默认都是channl1的,我经常忘了选,导致我其他通道采不出来,检查半天才发现,其他通道没配。
上升沿触发adc,stm32,嵌入式硬件,单片机
这里说一下其他的触发。像上面的定时器1的三个捕获就是分别对应tim1的三个通道。
tim3 trigger out event是下面的选择。
上升沿触发adc,stm32,嵌入式硬件,单片机
update就是定时器计数满后溢出产生触发信号。

定时器配置

上升沿触发adc,stm32,嵌入式硬件,单片机
这里选输出也行,不过记得是PWM,如果用输出比较也行,但不好配置(为了方便直接PWM).
上升沿触发adc,stm32,嵌入式硬件,单片机
其他就是常规配置。那个触发选择就是上面说的,你看需要选择。
上升沿触发adc,stm32,嵌入式硬件,单片机
如果要用那个触发,这里就要选这两个触发源了。

启动!!!

初始化

unsigned short AD_Value[3];				//存储ad原始数据
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)AD_Value, 3);
TIM1->CCR1=1000;										//50%
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);				//用来触发adc采样 

__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,600);调占空比用这个也行。本质都是操作寄存器。
中断函数文章来源地址https://www.toymoban.com/news/detail-789603.html

void  HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
	
	if(hadc->Instance==ADC1)
	{		
		
	}
}

到了这里,关于【STM32】定时器1触发ADC多(规则)通道采样+DMA(CUBEMX配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • foc配置篇——ADC注入组使用定时器触发采样的配置

    foc驱动板都会用到电流采样,本篇就针对三电阻低测采样来讲一讲如何配置ADC。 在此之前,或许大家使用ADC都是建立一个大数组,然后DMA无脑开着将数据搬到数组里,等到要用到时候就取出来做一个均值滤波。 ​ 这种方法用在foc电流采样上行不行呢?答案是看情况,如果你

    2024年02月01日
    浏览(43)
  • STM32双路ADC注入通道和规则通道采样

    电机控制使用四路注入通道采集,参考ST官方库,使用定时器10us触发一次,使用ADC1和ADC2各2路注入通道。 需要一路ADC进行规则采样油门信号,使用中断的话会和注入通道中断放在同一个函数里面 ,我不喜欢,所以使用了DMA中断。 PreKnowledge: 规则通道:最多16个规则通道,采样

    2024年04月14日
    浏览(48)
  • STM32 ADC+定时器+DMA+FFT

    本次实现的功能为单片机DAC输出一个正弦波,然后ADC定时采样用DMA输出,最后对DAC输出的波形进行FFT。 单片机STM32F103ZET6 内部时钟 一、配置ADC ADC端口为PA1,采用DMA输出,定时器3触发 定时器时钟64M,分频后为102.4KHz ADC采样时间为102.4KHz/100=1.024KHz 二、配置DAC DAC端口PA4 DMA传输

    2024年02月13日
    浏览(44)
  • 【STM32】- 定时器+DMA+ADC 双重模式

    目录   1 前言 2 ADC介绍 2.1 多重工作模式 2.2 多重ADC框图 2.3 规则同时模式 3 程序设计 3.1 时序图 3.2 初始化流程图 3.3 初始化代码 4 结论        关于ADC,相信大家都比较了解,关于STM32的学习教程都会有所讲解,但以查询方式、单通道讲解的较多,主要告诉大家基本的原理。

    2024年02月10日
    浏览(56)
  • STM32F系列项目定时器配置-中断触发源详解

    1.以高级定时器为例:  2.触发源选择与极性选择:   3.触发源介绍 (282条消息) 【STM32技巧】(1)STM32定时器8种触发源之ITR0~ITR3说明_stm32 定时器触发定时器_小石头有大内涵的博客-CSDN博客 ITR0 内部触发0 ITR1 内部触发1 ITR2 内部触发2 ITR3 内部触发3 ITR3  

    2024年02月11日
    浏览(52)
  • STM32 HAL库定时器触发DMA并口数据传输

    STM32与FPGA通讯,通过8位并口线进行通讯,16byte的数据在10us之内通过8位并口数据线传给FPGA,FPGA读取该数据。 时钟采用80MHz,由于16byte的数据要在10us之内传完,那么10/(16*2)=0.3125us/次,也就是传输频率得≥3.2MHz。 定时器设置:为了方便起见,先选用了4MHz的传输频率。80MHz

    2024年02月02日
    浏览(72)
  • 【STM32技巧】(1)STM32定时器8种触发源之ITR0~ITR3说明

    图中红色虚线框选部分是定时器的 \\\" 时钟产生器 \\\" 定时器的 \\\" 时钟产生器 \\\" 可以是8种触发源触发,也可以是来自RCC的CLK(这里不讲解) 定时器的 \\\" 时钟产生器 \\\" 通过 “触发控制器” 中的 “从模式控制器” 的配置,产生的时钟信号给 “PSC预分频器” 输出,进而给定时器计

    2024年02月16日
    浏览(30)
  • STM32 DMA1和DMA2通道一览表、STM32F103C8T6定时器通道对应的引脚

    TIM1_BRK_IRQn               = 24,      TIM1_UP_IRQn                = 25,      TIM1_TRG_COM_IRQn           = 26,     TIM1_CC_IRQn                = 27,     TIM2_IRQn                   = 28,     TIM3_IRQn                   = 29,    这个函数TIM_SetCompare1,这个函数有四个,分别是TIM_SetC

    2024年02月05日
    浏览(50)
  • 【STM32学习】——定时器输出比较功能&PWM脉宽调制&通用/高级定时器输出比较通道&舵机/直流电机简介&PWM驱动呼吸灯/舵机/直流电机代码实操

    声明:学习笔记根据b站江科大自化协stm32入门教程编辑,仅供学习交流使用!

    2024年02月03日
    浏览(57)
  • 【STM32学习】——定时器输入捕获(IC)&PWMI模式&频率测量方法&主从触发模式&IC模式测频&/PWMI模式测频率及占空比

    声明:学习笔记根据b站江科大自化协stm32入门教程编辑,仅供学习交流使用! 注意:读完大约需要15分钟,但会收获满满!! 输入捕获部分一共两个实操案例程序: 输入捕获模式测频率、PWMI模式测频率和占空比。 测频法利用之前的外设就可实现,如对射式红外传

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包