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

【TIM】基本定时器定时实验(1)

文章目录

  • 前言
  • 一、TIM 简介
  • 二、 基本定时器
  • 三、基本定时器功能框图
    • 1.时钟源
    • 2.控制器
    • 3.计数器
    • 4.定时器周期计算
  • 四、定时器初始化结构体详解

前言

定时器 (Timer) 最基本的功能就是定时了,比如定时发送 USART 数据、定时采集 AD 数据等等。如果把定时器与 GPIO 结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以生产输出波形。定时器生产 PWM 控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解


一、TIM 简介

STM32F42xxx 系列控制器有 2 个高级控制定时器、 10 个通用定时器和 2 个基本定时器,还有 2个看门狗定时器。看门狗定时器不在本章讨论范围,有专门讲解的章节。控制器上所有定时器都是彼此独立的,不共享任何资源。各个定时器特性参考表各个定时器特性


二、 基本定时器

基本定时器主要两个功能:

  • 第一就是基本定时功能,生成时基;
  • 第二就是专门用于驱动数模转换器 (DAC)。

控制器有两个基本定时器 TIM6 和 TIM7,功能完全一样,但所用资源彼此都完全独立,可以同时使用。

三、基本定时器功能框图

1.时钟源

  • 基本定时器:只能来自时钟内部
  • 高级控制定时器:可选外部时钟或其他定时器

可以根据前面所讲进行配置寄存器(RCC_DCKCFGR)的TIMPRE位来设置定时器的时钟频率,一般设置该位为0,即TIMx_CLK = 总线时钟 * 2,最大定时器时钟为84Mhz。

2.控制器

定时器控制器实现功能:

  • 控制定时器复位,使能,计数等基础功能
  • DAC转换触发

3.计数器


4.定时器周期计算

如果需要1s周期的定时器:

主要对TIMx_PSC 和 TIMx_ARR 两个寄存器值决定

1.先设置TIMx_ARR == 9999

CNT从0开始计算需要10000次,如果时钟源为100微秒即可满足,就是CNT = 100微秒

2.设置预分频器值为TIMx_PSC == (8400 - 1)

因为TIMx_PSC = 84Mhz,所以设置为8400

四、定时器初始化结构体详解

typedefstruct{uint16_tTIM_Prescaler;/*预分频器 */uint16_tTIM_CounterMode;/*计数模式 */uint32_tTIM_Period;/*定时器周期 */uint16_tTIM_ClockDivision;/*时钟分频 */uint8_tTIM_RepetitionCounter;/*重复计算器 */}TIM_TimeBaseInitTypeDef;
  1. TIM_Prescaler:定时器预分频器设置,时钟源经该预分频器才是定时器时钟,它设定 TIMx_PSC
    寄存器的值。可设置范围为 0 至 65535,实现 1 至 65536 分频。
  2. TIM_CounterMode:定时器计数方式,可是在为向上计数、向下计数以及三种中心对齐模式。
    基本定时器只能是向上计数,即 TIMx_CNT 只能从 0 开始递增,并且无需初始化。
  3. TIM_Period:定时器周期,实际就是设定自动重载寄存器的值,在事件生成时更新到影子寄
    存器。可设置范围为 0 至 65535。
  4. TIM_ClockDivision:时钟分频,设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分
    频比,基本定时器没有此功能,不用设置。
  5. TIM_RepetitionCounter:重复计数器,属于高级控制寄存器专用寄存器位,利用它可以非常容
    易控制输出 PWM 的个数。这里不用设置。
http://www.jsqmd.com/news/457881/

相关文章:

  • P3005 [USACO10DEC] The Trough Game S
  • 动态水下结构件高精度三维检测技术取得突破性进展
  • 【量化工具推荐】期货量化交易Docker容器化部署指南:从开发到生产
  • https://www.bilibili.com/video/BV14ac7zEEDh
  • 智捷云2D组态:快速构建专业工业监控界面
  • 学医疗器械维修技能是一个好方向吗?
  • 7款CRM核心能力深度较量,2026销售管理选型参考
  • Python格式符和\
  • sqlserver基础查看
  • GIS中逐网格判读与标记
  • 利用以太网转换模块构建S7-300与S7-1200、触摸屏的混合网络通信系统
  • huggingface镜像模型下载
  • 110.考试排名(输入有问题
  • C++中宽字符和字符的区别是什么?
  • 写论文,选“会聊天的AI”还是“能交稿的AI”?
  • 实测解析|鑫云创 NANO-WKLA-2T:12cm 小板如何扛起工业级边缘计算大旗?
  • 初识std::make_shared与shared_ptr
  • 侯马晋都饺子店:十五年老店,地道风味
  • 探讨中润科技在江门等地客户认可吗,它的产品价格贵不贵? - 工业品牌热点
  • ​2026年适配新零售行业的商旅平台排名Top 7与商旅平台选型解析
  • 从0到1开发DApp:无技术团队的普通人如何用“资源杠杆”撬动Web3创业?
  • [ExecuTorch 系列] 2. 导出官方支持的大语言模型
  • Java-简单的洗牌抽牌小游戏
  • 探讨品牌FRP采光瓦厂家,潍坊泰霖建材的服务区域有哪些? - myqiye
  • 关于智榜样一阶段01-网络安全导论的学习心得
  • 东北变压器设备厂家TOP5:行业领先者的背后秘密
  • 【Linux系统编程】进程环境 进程终止/命令行参数分析/环境变量/main函数
  • 1111111111111111111
  • 《C++11 :列表初始化、initializer_list、引用折叠、完美转发与可变参数模板》
  • 多服务器数据集中自动化备份方案