当前位置: 首页 > article >正文

初学stm32 --- 高级定时器PWM输入模式

 

目录

 

PWM输入模式工作原理

 PWM输入模式时序

 高级定时器PWM输入模式实验配置步骤

相关HAL库函数介绍

捕获标志位清理的规则

1. 如果使用中断模式

2. 如果使用轮询模式


PWM输入模式工作原理

 PWM输入模式时序

 高级定时器PWM输入模式实验配置步骤

1,配置定时器基础工作参数        HAL_TIM_IC_Init()

2,定时器捕获输入MSP初始化        HAL_TIM_IC_MspInit()     配置NVICCLOCKGPIO

3,配置IC1/2映射、捕获边沿等        HAL_TIM_IC_ConfigChannel()

4,配置从模式,触发源等        HAL_TIM_SlaveConfigSynchro()

5,设置优先级,使能中断        HAL_NVIC_SetPriority() HAL_NVIC_EnableIRQ()

6,使能捕获、捕获中断及计数器        HAL_TIM_IC_Start_IT() HAL_TIM_IC_Start()

7,编写中断服务函数        TIMx_IRQHandler()等   -> HAL_TIM_IRQHandler()

8,编写输入捕获回调函数        HAL_TIM_IC_CaptureCallback()

相关HAL库函数介绍

关键结构体介绍

typedef struct
{ 
    uint32_t ICPolarity;    /* 输入捕获触发方式选择,比如上升、下降沿捕获 */ 
    uint32_t ICSelection; /* 输入捕获选择,用于设置映射关系 */ 
    uint32_t ICPrescaler; /* 输入捕获分频系数 */ 
    uint32_t ICFilter;         /* 输入捕获滤波器设置 */ 
} TIM_IC_InitTypeDef;
typedef struct 
{ 
    uint32_t SlaveMode;              /* 从模式选择 */ 
    uint32_t InputTrigger;           /* 输入触发源选择 */ 
    uint32_t TriggerPolarity;      /* 输入触发极性 */ 
    uint32_t TriggerPrescaler;   /* 输入触发预分频 */ 
    uint32_t TriggerFilter;           /* 输入滤波器设置 */ 
} TIM_SlaveConfigTypeDef;

捕获标志位清理的规则

1. 如果使用中断模式

在中断模式下(即通过 HAL_TIM_IC_Start_IT 启用捕获中断):

  • 当捕获事件发生时(如上升沿或下降沿),定时器会自动设置对应的捕获标志位(CCxIF 标志)。
  • HAL 库会在处理中断时自动清除标志位,因此在中断回调函数中,您无需手动清除标志位。
  • 在 STM32 的 HAL 库中,当使用输入捕获中断时,HAL 库会在 定时器中断处理函数自动清除标志位。具体来说,它是在 HAL_TIM_IRQHandler 函数中完成的。
2. 如果使用轮询模式

在轮询模式下(即通过 HAL_TIM_IC_Start 启用捕获,但未启用中断):

  • 您需要手动检测和清除捕获标志位
  • 在读取捕获值后,标志位不会自动清除,必须调用 __HAL_TIM_CLEAR_FLAG 手动清除标志位。

 

 


http://www.kler.cn/a/458877.html

相关文章:

  • YOLOv5部署到web端(flask+js简单易懂)
  • 数据挖掘——决策树分类
  • Vue3 中的计算属性和监听属性
  • Docker常用场景
  • 如何通过深度学习提升大分辨率图像预测准确率?
  • 如何规范的提交Git?
  • Github 2024-12-26 Go开源项目日报 Top10
  • (二)当人工智能是一个函数时,怎么去训练它?
  • 【机器学习】机器学习的基本分类-半监督学习-Ladder Networks
  • 【day20】集合深入探讨
  • Optional类:避免NullPointerException
  • Go语言的字符串处理
  • 每天40分玩转Django:Django Channels
  • react-native键盘遮盖底部输入框问题修复
  • 对于多个网站的爬虫管理和配置支持
  • 前端处理跨域的几种方式
  • AI 加持下的智能家居行业:变革、挑战与机遇
  • 深度学习-78-大模型量化之Quantization Aware Training量化感知训练QAT
  • LeetCode每日三题(五)双指针
  • 基于PLC的电梯控制系统(论文+源码)
  • 从Huggingface下载的数据集为arrow格式,如何从本地路径读取arrow数据并输出样例
  • Knowledge is power——Digital Electronics
  • pytorch基础之注解的使用--003
  • 「Mac玩转仓颉内测版55」应用篇2 - 使用函数实现更复杂的计算
  • 项目优化性能监控
  • 基于YOLOv10和BYTETracker的多目标追踪系统,实现地铁人流量计数功能(基于复杂场景和密集遮挡条件下)