不用配置引脚为输入模式,TIM_TIxExternalCLK1Source_TI2为PB7引脚
void TIM4_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_TimeBaseStructure.TIM_Period = 0xffff;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
TIM_TIxExternalClockConfig(TIM4,TIM_TIxExternalCLK1Source_TI2,TIM_ICPolarity_Rising,0);
TIM_SetCounter(TIM4, 0);
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
//打开溢出中断
// TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM4, ENABLE); //计数器使能,开始工作
//NVIC_TIM4Configuration();
}
关键字:STM32F107 定时器 外部计数器 配置方法
引用地址:
STM32F107定时器4用作外部计数器的配置方法
推荐阅读最新更新时间:2024-03-16 15:46
【C51】源码 3 -- 电子时钟(独立按键、8 位数码管、定时器)
自购自学单片机有一段日子了,300 多页的 pdf 教程看到一半了,正好看完定时器和独立按键部分,综合前边的数码管,试着编写了 电子时钟 ,将源码发上来,用于备份 注:由于使用了中断以及各种延时程序,此程序并不是真正准确的 电子时钟 ,想要真正准确,需要特别的外部模块,如时钟芯片 DS1302。 附上源码:(初出茅庐,难免有写的不好的地方,仅作备份之用,欢迎指点,喷子退散 ) /********************************************************************************** 电子时钟 1、初始从 00-00-00
[单片机]
STM32定时器溢出模式计时设置
环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6 源代码1: 说明:定时器采用TIM2,时钟源为内部8M晶振,向上溢出模式.此定时器用在延时函数,最小可以延时1us,故没有采用中断形式定时. 初始化代码: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //重新将Timer设置为缺省值 TIM_DeInit(TIM2); //采用内部时钟给TIM2提供时钟源 TIM_InternalClockConfig(TIM2); timInitStruct.TIM_ClockDivision = TIM_CKD_DIV2;
[单片机]
关于STM32数据手册中的定时器信号
打开STM32数据手册中的总体框图。娘的,又TMD一阵眼花缭乱。 首先,我们可以看到这个图大概有两个不分,一个部分是时钟源,另一个部分则是输入输出时钟源计数,到CNT计数器,然后根据捕获比较寄存器进行记录或比较。记录或比较有不同的配置。 首先是TI信号 TI1 TI2 TI3 TI4:这个信号就是外部信号,是直接与管脚相连的信号,图中还有一个问题就是TI1是可以是第一通道的外部信号进行触发,也可以设置为,第一通道,第二通道,第三通道异或进行触发。外部信号送往滤波器和边沿检测器。 TIxFP触发有效信号。 TI1FP1 TI1FP2TI2FP1 TI2FP2 TI3FP3 TI3FP4TI4FP3 TI4FP4:这个就是一个触发
[单片机]
STM32一个定时器同时捕获4路PWM波
问题的提出: 最近需要用航模遥控器控制遥控车,32单片机做主控,需要用到4个通道即需要捕获4路PWM波。如果用四个定时器来捕获四路PWM波,就太浪费资源了。由于STM32单片机的定时器资源有限,故设想用一个定时器的4个通道同时捕获四路PWM波。 设计思路: 由于接收机输出的PWM波高电平最多就2ms,故可以让4个通道轮流使用定时器捕获PWM波 程序如下: include PWMin.h void TIM2_2PWMin_Init(u16 arr,u16 psc) { RCC- APB1ENR|=1 0; RCC- APB2ENR|=1 2; GPIOA- CRL&=0XFFFF0000; GPIOA- CRL|=0X0000
[单片机]
基于STM32定时器捕获测量脉宽的应用示例
我们知道,利用单片机定时器捕获功能测量脉冲信号宽度及占空比是种很常见的做法。这里以STM32的定时器为例来介绍基于其捕获功能实现对脉宽的测量的思路及过程。 一般来讲,使用STM32定时器的捕获功能来实现脉宽测量,我们可以选用一个通道、也可以使用两个通道。使用1个通道时,只需使用定时器基本的输入捕获功能结合中断或DMA即可实现;若使用两个通道时可以将捕获功能与定时器的从模式来相结合完成。这里就两种方案的实现示例都做个简单介绍。 不妨先介绍基于单个通道的输入捕获功能来实现对1路信号脉冲宽度及占空比的测量,并在测量过程中统计用于测量的定时器自身的溢出事件,以保障即使被测信号脉宽长于测量定时器自身的溢出周期时也能有效测量。 这
[单片机]
MSP430F5438 定时器总结
1.MSP430F5438有三个定时器 TA0 TA1和TB,定时器的功能略有区别。 2.对于定时器TA1而言,有两个中断向量地址,其中比较匹配通道0具有单独的中断向量 3.MSP430中断向量的名称和TA0 TA1很难对应起来,需要通过中断向量地址来确认。 #define TIMER1_A1_VECTOR (48 * 2u) /* 0xFFE0 Timer1_A3 CC1-2, TA1 */ #define TIMER1_A0_VECTOR (49 * 2u) /* 0xFFE2 Timer1_A3 CC0 */ #define TIMER0_A1_VECTOR (53 * 2u) /* 0xFFEA
[单片机]
STM32CubeMX学习教程之四:定时器中断
软件: STM32CubeMX V4.25.0 System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 硬件: OneNet 麒麟座V2.3 在STM32CubeMX中新建项目,选择正确的MCU型号 首先设置RCC和SYS,如下图 启用TIM1,选择内部时钟源(Internal Clock)。 然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M),如下图 GPIO设置 PC7和 PC10为GPIO_OUTPUT, (这是麒麟座V2.3的四个LED管脚其中的两个)
[单片机]
【话说定时器系列】之四:STM32定时器更新事件及案例分享
我们知道,STM32定时器中的四个带影子特性的寄存器组,每组寄存器分别由 影子寄存器【即实际控制寄存器】和预装寄存器组成。其中,影子寄存器是真正起作用的控制寄存器,用户访问不到它。而预装寄存器是用户访问的为实际影子寄存器准备数据或指令的寄存器。它们分别是: TIMx_PSC 分频寄存器 TIMx_ARR 自动重装载寄存器 TIMx_CCR 捕捉寄存器 TIMx_RCR 重复计数寄存器[高级定时器有】 其中,ARR、CCR寄存器带预装载使能控制位,即它们的预装功能可以软件开启或关闭。 TIMx_ARR 带预装载使能控制位 ARPE@TIMx_CR1 TIMx_CCR 带预装载使能控制位 OCxPE@TIMx_CC
[单片机]