STM32G474使用HRTIM触发多路ADC采样,通过DMA传输,通过串口打印显示,实现PWM中间时刻采样,避免开关噪声

本工程使用CUBEIDE进行配置以及编译调试,使用的硬件为STM32G474官方开发板NUCLEO-G474RE

CUBEIDE配置

HRTIM配置

在这里插入图片描述
本章工程使用HRTIM定时器进行ADC的触发,打开主定时器,子定时器A,B,C。(本工程未使用到A与C定时器,配置时可无需打开)
在这里插入图片描述
主定时器配置:设置主定时器的频率为100KHz,并且设置自动更新以及自动重装载值。
在这里插入图片描述
子定时器B设置:设置子定时器B为100KHz,并且每九次计数完成后产生一次中断。
在这里插入图片描述
配置如上:
1.打开自动预装载值
2.打开自动复位
3.设置死区时间以及互补PWM
4.定时器复位触发更新寄存器
5.定时器翻转重置更新
6.重置触发源(定时器计数器在发生更新事件时重置)
7.中断源(复位后进行中断)
在这里插入图片描述
配置如上:
1.设置比较器1,用于产生pwm信号
2.设置比较器3,用于触发ADC采样
在这里插入图片描述
未提到的配置保持默认即可,接下来配置输出设置:
1.在未到达比较器触发时保持高电平
2.到达比较器触发时输出电平
在这里插入图片描述
打开定时器B全局中断
在这里插入图片描述
设置ADC触发源,设置为ADC触发事件5,选中触发源为子定时器B,触发事件为比较器3

至此HRTIM部分配置完毕

ADC部分配置

在这里插入图片描述
设置四个ADC输入通道
在这里插入图片描述
设置为不连续采样模式
在这里插入图片描述
设置为HRTIM触发事件5,并配置分别配置四个ADC的RANK排序
在这里插入图片描述
打开ADC全局中断
在这里插入图片描述
设置DMA通道,打开循环地址模式

ADC2配置类似,使用DMA通道2

时钟树配置

在这里插入图片描述
在这里插入图片描述
串口配置
在这里插入图片描述
串口打印
在这里插入图片描述

工程代码链接:
https://download.csdn.net/download/weixin_41407439/89528682

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 15:20:02       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 15:20:02       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 15:20:02       90 阅读
  4. Python语言-面向对象

    2024-07-10 15:20:02       98 阅读

热门阅读

  1. Perl 语言开发(八):子程序和模块

    2024-07-10 15:20:02       30 阅读
  2. rpc超时时间的设置对句柄和内存的影响

    2024-07-10 15:20:02       23 阅读
  3. Github 2024-07-06 开源项目日报 Top10

    2024-07-10 15:20:02       24 阅读
  4. 华为HCIP Datacom H12-821 卷31

    2024-07-10 15:20:02       27 阅读
  5. 请写sql满足业务:找到连续登录3天以上的用户

    2024-07-10 15:20:02       31 阅读
  6. Spring Boot中处理同名Bean冲突的解决办法

    2024-07-10 15:20:02       27 阅读
  7. 选择排序

    2024-07-10 15:20:02       27 阅读
  8. C++的线程管理

    2024-07-10 15:20:02       22 阅读