整个stm32的时钟系统

定时器个数和功能

计数模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式。
向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数

通用定时

特点

STM3 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括:位于低速的APB1总线上(APB1)16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。每个定时器有4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: 输入捕获 输出比较PWM 生成(边缘或中间对齐模式) 单脉冲模式输出
可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。

产生中断条件:

如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器):
更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
输入捕获
输出比较
支持针对定位的增量(正交)编码器和霍尔传感器电路
触发输入作为外部时钟或者按周期的电流管理

通用定时器工作过程




结合上面三张图,可以看出,APB1经过预分频(1倍/2倍),得到TIM2-7的内部时钟,再经过预分频PSC对TIM计数器进行加减,一个时钟周期对计数器加或减1

常用寄存器


常用函数

   void TIM_TimeBaseInit(TIM_TypeDef* TIMx,  TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
typedef struct
{uint16_t TIM_Prescaler;        uint16_t TIM_CounterMode;     uint16_t TIM_Period;        uint16_t TIM_ClockDivision;  uint8_t TIM_RepetitionCounter;
} TIM_TimeBaseInitTypeDef; TIM_TimeBaseStructure.TIM_Period = 4999; TIM_TimeBaseStructure.TIM_Prescaler =7199; TIM_TimeBaseStructure.TIM_ClockDivision =   TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode =   TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)//定时器使能函数
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);//定时器中断使能
//状态标志位获取和清除
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);

配置步骤

 能定时器时钟。RCC_APB1PeriphClockCmd();
②  初始化定时器,配置ARR,PSC。TIM_TimeBaseInit();
开启定时器中断,配置NVIC。void TIM_ITConfig();NVIC_Init();
④  使能定时器。TIM_Cmd();
⑥  编写中断服务函数。TIMx_IRQHandler();

STM32F103ZE的定时器相关推荐

  1. STM32F103ZE基本定时器笔记

    前言 STM32F103ZET6中包含2个高级控制定时器.4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器. 下表比较了高级控制定时器.普通定时器和基本定时器的功能: 基本定时 ...

  2. STM32基于固件库学习笔记(4)(通用定时器)TIM3定时1S中断

    STM32F103ZE系列定时器资源 有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器. 通用定时器:是一个通过可 ...

  3. Material Design风格神框架vuetify 学习笔记(八) 基础组件4 头像 扩展面板 消息条 评分...

    一. 头像 v-avatar v-avatar 组件通常用于显示循环用户个人资料图片. 此组件将允许您动态尺寸并添加响应图像.图标和文字的边框半径. <v-avatar color=" ...

  4. stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)

    一.项目配置 1.新建项目文件夹"TimSeg": 2.通过Keil5创建新项目,保存在所创建的文件夹中(设项目名为pTimSeg),选择MCU芯片为"STM32F103 ...

  5. STM32F103ZE和STM32F207ZG的芯片区别

    前段时间以红牛开发板为主,在其上成功移植了.NET Micro Framework(请参见我以前写的系列移植文章:链接),最近开始在ST下一代Cortex-M3芯片STM32F207的平台上移植.NE ...

  6. STM32学习心得十八:通用定时器基本原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容: 1) 三种定时器分类及区别: 2) 通用定时器特点: 3) 通用定时器工作过程: 4) 实验一:定时器中断实验补充知识及部代码解读: 6) 实验二:定时器PWM输 ...

  7. STM32定时器功能概括

    定时器分类 不同的芯片定时器的个数也是不同的,以STM32F103ZE有8个定时器(定时器的具体个数查相关手册). 定时器的分类:高级定时器.通用定时器.基本定时器,这3类定时器的功能各不相同. 定时 ...

  8. stm32——“通用定时器基本原理”

    目录 前言 一.定时器概述 1>.8个定时器 2>.三种stm32定时器区别 ​ 二.通用定时器 1>.stm32的通用TIMx(TIM2.TIM3.TIM4和TIM5)定时器功能特 ...

  9. 一文吃透JAVA定时器格式

    JAVA 定时器时间格式 ​ 基本格式: [秒]  [分]  [小时]  [日]  [月]  [周]   [年] 序号 说明 是否必填 允许填写的值 允许使用的通配符 1 秒 是 0-59 ,   - ...

最新文章

  1. 万字长文带你了解推荐系统全貌!
  2. Uploadify 上传插件引起Chrome崩溃解决方法
  3. 关于职业目标规划的一点讨论
  4. python3 selenium 无头浏览器 错误 FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'
  5. More than one file was found with OS independent path
  6. 第三代:集成电路计算机
  7. MySQL 同步(三)不同版本问题
  8. iOS8开发~UI布局(三)深入理解autolayout
  9. js修改css样式属性_这个笔记《CSS样式的常见属性及值》,让菜鸟轻松学会包粽子...
  10. 互联网日报 | 网易回港二次上市首日涨5.69%;特斯拉成全球市值最高车企;大兴机场开通首条货运航线...
  11. C++ passes by reference, Java and Ruby don’t
  12. 智课雅思词汇---六、fer是什么意思
  13. 运行内存扩展器(RAM)扩大,最高达2.5g
  14. linux中搭建git与链接github的用法
  15. 利用IDEA将项目打包(两种方法)
  16. brpc源码学习(五)-IOBuf
  17. C++11中的智能指针unique_ptr、shared_ptr和weak_ptr详解
  18. 谷歌工程师新作,东北话编程
  19. 暴雪在洛杉矶建了自己的电竞馆,守望先锋锦标赛下个月就会在这里举行
  20. 机器学习回归(regression)——线性回归(Hung-yi Lee)

热门文章

  1. BUU N1BOOK题目死亡ping命令
  2. 物联网关键技术——【停车场收费系统】
  3. Plato Farm深耕GameFi赛道,2022年是否成为顶级元宇宙代表之一?
  4. 书中自有黄金屋?其实你这样读书真的没用!
  5. 关于第二次登录免登录
  6. Notion使用方法
  7. 到底什么是POJO?
  8. turtle库绘制奥运五环
  9. docker容器安装ftp(超超详细啦)
  10. Commonjs与Esmodule模块化规范