stm32定时器同步(一)

定时器同步有多种功能,本文介绍使用一个定时器作为另一个定时器的预分频器。

所谓预分频,指定时器1输出一个时钟信号,作为定时器2的输入信号。而通过配置定时器2的时基单元,可以将定时器2作为定时器1的一个分频信号。举个例子,定时器1输出10kHZ的时钟,而定时器210分频,也就是输出1kHZ的信号,那我们就称之为**使用一个定时器作为另一个定时器的预分频器。**下面是手册中的示意图,帮助大家理解

主要过程就是定时器1主模式输出TRGO,进入定时器2的ITRx,,在选择为TRGI后选择从模式,进入时基单元,最后就可以获得一个分频后的时钟信号,流程用红笔标出

下面是一个配置代码,主频72MHZ,定时器1 10kHZ,定时器2 1kHZ

cs 复制代码
void TIM1_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

    // 配置定时器1 输出10kHZ
    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Prescaler = 7;        
    TIM_TimeBaseStructure.TIM_Period = 899;         
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

    TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update);
    TIM_Cmd(TIM1, ENABLE);

}

void TIM2_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

    // 配置定时器2 输出1kHZ
    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Prescaler = 0;          // 不使用预分频
    TIM_TimeBaseStructure.TIM_Period = 9;            
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    // 配置TIM2为从模式,使用外部时钟模式1,使用ITR0作为触发源
    TIM_SelectInputTrigger(TIM2, TIM_TS_ITR0);      
    TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_External1); 
    TIM_ITRxExternalClockConfig(TIM2, TIM_TS_ITR0);

    TIM_Cmd(TIM2, ENABLE);
}
相关推荐
jake·tang15 分钟前
深度解析 VESC 参数辨识源码:电阻、电感与磁链
arm开发·c++·嵌入式硬件·算法·数学建模·傅立叶分析
崇山峻岭之间19 分钟前
单片机时钟配置03
单片机·嵌入式硬件
木燚垚29 分钟前
基于STM32的智能灶台控制系统设计与实现
stm32·单片机·嵌入式硬件·智能家居
iCxhust44 分钟前
8088单板机DIY---机体激活,聆听另一个世界的声音(三)
单片机·嵌入式硬件·微机原理·8088单板机
csdn_aspnet1 小时前
单片机IO不够?ULN2003A救急方案,结合STM32/ESP32实战案例,讲透达林顿阵列在IoT硬件中的高效复用
stm32·单片机·物联网·esp32·iot·uln2003a
时空自由民.10 小时前
STM32配置Timer+DMA读取ADC数据
stm32·单片机·嵌入式硬件
华普微HOPERF11 小时前
数字隔离器,如何确保MCU不受储能系统中的高电压、大电流影响?
单片机·嵌入式硬件
小麦嵌入式12 小时前
FPGA入门(四):时序逻辑计数器原理与 LED 闪烁实现
linux·驱动开发·stm32·嵌入式硬件·fpga开发·硬件工程·dsp开发
搁浅小泽13 小时前
常用电子元器件
单片机·嵌入式硬件·可靠性工程师
zhaoshuzhaoshu13 小时前
嵌入式开发之时钟树解析-SMT32平台
嵌入式硬件