当前位置:网站首页>STM32F407定时器输入捕获
STM32F407定时器输入捕获
2022-07-30 15:00:00 【山、】
STM32F407定时器一共有14个。其中分为基本定时器、通用定时器、高级定时器。具体功能如上图所示。下面介绍下输入捕获模式。
输入捕获:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变的时候,将当前的定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器里面,完成一次捕获.
下图是定时器原理图的输入捕获部分
第一部分:设置输入捕获滤波器,用来滤波的。信号从TI1输入,通过滤波,TI1F输出此信号,正常情况信号没有抖动,TI1F信号就等于TI1输入信号。
ICF[3:0]用来设置输入采样频率的数字滤波器长度,如ICF=0011;会在捕获到上升沿时,以fCK_INT的频率连续采样八次通道1的电平,若都为高电平,则说明这是一个有效的触发,就会触发捕获中断,这样就可以滤除那些高电平脉宽低于八个采样周期的脉冲信号,达到滤波得效果,若不做滤波处理,设置ICF=0000,只要检测到跳边沿,就触发捕获。
fDTS频率根据TIMx_CR1的CKD[1:0]设置。
第二部分:设置输入捕获极性:配置边沿检测器检测上升沿还是下降沿。
第三部分:设置输入捕获映射通道:通道一信号也可以映射在通道二上,同理通道二信号也可以映射到通道一上。
第四部分:设置输入捕获分频器,就是设置检测到几次跳变沿之后触发捕获。
第五部分:捕获到有效信号开启中断。
下面是标准库中的结构体和初始化函数。
void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
typedef struct
{
uint16_t TIM_Channel; //捕获通道1-4
uint16_t TIM_ICPolarity; //捕获极性
uint16_t TIM_ICSelection; //映射关系
uint16_t TIM_ICPrescaler; //分频系数
uint16_t TIM_ICFilter; //滤波器
} TIM_ICInitTypeDef;
TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; 捕获通道选择通道一
TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; 设置为上升沿捕获
TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; 把通道一和TI1映射在一起
TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; 设置分频系数1分频
TIM5_ICInitStructure.TIM_ICFilter = 0x00; 不使用滤波器
TIM_ICInit(TIM5, &TIM5_ICInitStructure);
还可以独立设置捕获极性
void TIM_OCxPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
获取通道捕获数值
uint32_t TIM_GetCapture1(TIM_TypeDef* TIMx);
输入捕获配置的一般步骤
① 初始化定时器和通道对应IO的时钟。
② 初始化IO口,模式为复用:GPIO_Init();GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
③设置引脚复用映射:GPIO_PinAFConfig();
④初始化定时器ARR,PSCTIM_TimeBaseInit();
⑤初始化输入捕获通道TIM_ICInit();
⑥如果要开启捕获中断,TIM_ITConfig();NVIC_Init();
⑦使能定时器:TIM_Cmd();
⑧编写中断服务函数:TIMx_IRQHandler();
边栏推荐
猜你喜欢

Excel使用Visual Basic Editor对宏进行修改

(Crypto essential dry goods) Detailed analysis of the current NFT trading markets

Alluxio为Presto赋能跨云的自助服务能力

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

Alluxio for Presto fu can across the cloud self-service ability

哨兵

yarn的安装及使用教程

阿里CTO程立:阿里巴巴的开源历程、理念和实践

2022最新 | 室外单目深度估计研究综述

Kubernetes应用管理深度剖析
随机推荐
Core Topics under Microservice Architecture (2): Design Principles and Core Topics of Microservice Architecture
2022最新 | 室外单目深度估计研究综述
TiDB tool download
嵌入式开发:嵌入式基础知识——正确启动固件项目的 10 条建议
《二舅》刷屏了!
GeoServer
The Prospects of the Metaverse and the Four Tracks
TiDB 工具功能概览
tiup list
视频切换播放的例子(视频切换范例)代码
Troubleshooting TiUP
华为云重磅发布开源软件治理服务——软件成分分析
几种常见的存储器
Fink异步IO的实战(关联维表)
【为宏正名】99%的人从第一天学习C语言就自废的武功
Sleuth+Zipkin(可视化) 服务链路追踪
TiUP 故障排查
MySQL客户端工具的使用与MySQL SQL语句
InputStream和OutputStream流的使用
yarn安装详细教程说明、升级教程、修改yarn的全局和缓存目录、yarn基本命令