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

stm32定时器同步(一)

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

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

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

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

void TIM1_Configuration(void)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);// 配置定时器1 输出10kHZTIM_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 输出1kHZTIM_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);
}


http://www.mrgr.cn/news/13893.html

相关文章:

  • java简单平台跳跃游戏
  • 【3.5】贪心算法-解优势洗牌(类田忌赛马问题)
  • qml formLayout实现方式
  • LoRA - 大型语言模型的低秩适应方法
  • django 中 csrf 的实现机制
  • 部署Alertmanager发送告警
  • IOS 17 基于UITabBarController实现首页TabBar
  • 【工控】线扫相机小结 第二篇
  • 编程何以成为推动时代进步的重要力量?
  • Redis increment 函数处理并发序列号
  • PDF招生简章如何转二维码?
  • 《JavaEE进阶》----4.<SpringMVC①简介、基本操作>
  • 迅为2K1000开发板流畅运行Busybox、Buildroot、Loognix、QT5.12 系统
  • 每日一题,在线精讲 —— 零基础入门FPGA
  • BH1750光照传感器详解(STM32)
  • TCP丢失时重发为什么倍增重发等待时间(指数退避)
  • 【书生大模型实战营(暑假场)】进阶任务六 MindSearch CPU-only 版部署
  • 批量在多台Linux机器上安装OpenJDK
  • 正则表达式:Visual Basic中的强大文本处理工具
  • .net framework 4.8 开发windows系统服务