用定时器输入捕获做红外线接收实验。(此次试验以通道2为例)
①stm32cube配置
②
③
④程序中主要用到的输入捕获相关寄存器
uint16_t tim_sr,tim_ccer,tim_ccr;
tim_sr=htim->Instance->SR;//状态寄存器
tim_ccer=htim->Instance->CCER;//捕获、比较使能寄存器
tim_ccr=htim->Instance->CCR2;//捕获比较寄存器2(即用来保存通道2发生中断时的CNT寄存器的值)
htim->Instance->CNT //计数寄存器
SR用来判断是不是输入捕获中断;
CCER寄存器用来判断当前是下降沿捕获中断还是上升沿捕获中断,同时也能随时改变上升沿捕获还是下降沿捕获;
CCR2寄存器表示当前中断发生时的CNT寄存器的值,也就是用来判断时间的;(读取CCR2的值,可以清楚SR寄存器中的CC2IF标志位)
CNT是用来计数的,每个定时器时钟周期自动+1,我们可以再需要的时间将其清零,便于计时。
关键字:stm32cube 通用定时器 输入捕获
引用地址:
stm32cube通用定时器输入捕获
推荐阅读最新更新时间:2024-03-16 14:54
STM32输入捕获模式设置并用DMA接收数据
环境: 主机:WIN7 开发环境:MDK4.72 MCU:STM32F103 说明: 项目中需要进行红外学习,于是采用输入捕获取得电平变化时间.并将数据放在DMA中.这样可以避免频繁中断消耗CPU资源. 采用的是PB1脚,对应TIM3的通道4. 源代码: /********************************************************************* * 接口函数:初始化红外学习模块 **********************************************************************/ voi
[单片机]
STM32Cube学习一 TIME定时器SlaveMode设置讲解
之前学习STM32标准库并没有注意到SlaveMode这个选项,这一次使用Cube中发现了必须要去选择 这一个选项。 一、Cube中需要选择选项 总共有5中,Disable、外部时钟模式1,复位模式,门级驱动模式,触发模式 从手册中寻找以上解释见二 二、TIME 如表示为定时器框图,总共分为四个部分,第一个部分提供时钟源,第二个部分是输入部分,第三个部分是比较寄存器和计数器以及自动重装载寄存器,第四个部分是输出部分。 1.时钟源选择如下 如图是时钟源的选择,可以有内部、外部输入引脚1和2、内部触发输入(多个定时器级联)。这个主要选择计数器的计数时钟来源,一般选择内部时钟就够了,需要多个定时器一起作用时候
[单片机]
STM32 通用定时器的一些概念解析
STM32一共有8个定时器,其中定TIM1和TIM8为高级控制定时器,除了具有通用定时器的功能外,还兼具控制功能,不仅能够输出PWM还可以采集编码器,驱动各种电机的功能。而基本定时器TIM6和TIM7一般不用作普通定时器,一般会给别的定时器提供基准时钟信号。 对于通用定时器TIM2~TIM5,基本的功能就不描述了,主要是看这些通用定时器如何使用: TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM2); //重新将Timer设置为缺省值 TIM_InternalClockCo
[单片机]
STM32实现灯的PWM输出以及定时器输入捕获频率和占空比
寄存器版本的实现 程序中的频率和占空比:频率控制在1KHZ----20KHZ,步进值为1KHZ,占空比控制在5%----90%内,步进值为5%。 程序的主要功能: 1.按键一:控制四个灯的PWM输出频率和占空比 2.按键二:改变频率大小。 3.按键三:选择一个通道。 4.按键四:改变按键三选择通道的占空比。 5.按键五:实现输入捕获频率和占空比(组内成员提供了关键思想)。 说明: 1.本次为了方便实现占空比的值为整数,默认给ARR的值+1,还希望不要误解; 2.代码里面输入捕获的实现用了全映射,通道三用来捕获的IO口被之前的按键占用,若读者想实现定时器的四路输入捕获,还请自行改变IO口,方便使用。 3.本次用更新中断来获取捕获的值
[单片机]
通用定时器基本原理讲解
概述: STM32定时器:STM32F10x系列总共最多有8个定时器。 三种STM32定时器区别: 通用定时器功能特点描述: STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括: 位于低速的APB1总线上(APB1) 16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: 输入捕获 输出比较 PWM 生成(边缘或中间对齐模式) 单脉冲模式输出 可使用外部信号(
[单片机]
STM32 通用T2、T3、T4、T5定时器详解
下定时器初始化配置 1 void TIM3_Configuration(void)//1MS 2 { 3 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 4 5 TIM_DeInit(TIM3);//开一下时钟再关闭 6 /* 设置TIM2CLK 为 72MHZ */ 7 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE); 8 9 10 /* 自动重装载寄存器周期的值(计数值) */ 11 TIM_TimeBaseStructure.TIM_Period=10
[单片机]
STM32之输入捕获介绍及应用超声波应用
一、输入捕获介绍 输入捕获模式可以用来测量脉冲宽度或者测量频率。 除了基本定时器,通用和高级均有输入捕获功能。 TIMx_CCMR1(捕获/比较模式寄存器) - 通道1和2的控制 TIMx_CCMR2(捕获/比较模式寄存器) - 通道3和4的控制 二、脉宽测量实现超声波测距 当然还需要配合printf一起使用, #include timer.h #include /*TIM3_CH3输入捕获初始化*/ TIM_ICInitTypeDef TIM3_ICInitStructure; void TIM3_Cap_Init(u16 arr,u16 psc) { GPIO_InitTypeDef
[单片机]
stm32cube通用定时器输入捕获
用定时器输入捕获做红外线接收实验。(此次试验以通道2为例) ①stm32cube配置 ② ③ ④程序中主要用到的输入捕获相关寄存器 uint16_t tim_sr,tim_ccer,tim_ccr; tim_sr=htim- Instance- SR;//状态寄存器 tim_ccer=htim- Instance- CCER;//捕获、比较使能寄存器 tim_ccr=htim- Instance- CCR2;//捕获比较寄存器2(即用来保存通道2发生中断时的CNT寄存器的值) htim- Instance- CNT //计数寄存器 SR用来判断是不是输入捕获中断; CCER寄存器用来判断当前是下降
[单片机]