STM32的通用定时器有四个,分别是TIM2, TIM3,TIM4,TIM5,有以下功能:
通用定时器的框图如下:
从图中可以看出,通用定时器TIMx的触发源(计数器时钟的时钟源)有四个:
1、内部时钟(CLK_INT)
2、外部时钟模式1:外部输入引脚(TIx),分别经TIMx_CHx通道传入
3、外部时钟模式2:外部触发输入(ETR)
4、内部触发输入(ITRx):定时器主从模式下由ITRx定义从定时器和主定时器、
下面选取触发源为内部时钟时进行分析:
从上图我们可以看到,基本定时器主要由下面三个寄存器组成。
1、计数器寄存器 (TIMx_CNT)
2、预分频器寄存器 (TIMx_PSC)
3、自动重载寄存器 (TIMx_ARR)
计数器寄存器 (TIMx_CNT)存储的是当前的计数值。预分频器 (TIMx_PSC)为多少个CK_PSC脉冲计数一次,如图192 预分频器的值为1(预分频寄存器默认为0,为不分频),则为两个脉冲计数一次。即为二分频。如果要10000分频,则预分频器的值为1000-1。具体来说若CK_PSC的频率为10MHZ,预分频器值为(10-1),则是每隔1ms计数器计数一次。
自动重载寄存器的数值代表计数的次数,例如当值为59时,计数器若是向上计数模式,则从0计到59时,如图会产生事件U或中断UI,计数器也会被清零而重新计数。
那么内部时钟频率如何确定呢?
通过查找芯片的数据手册可以发现
通用定时器的内部时钟挂在了APB1时钟线上,若内部时钟不分频(CKD=0)的话,则CK_PSC的时钟频率等于APB1的时钟频率。
定时器有如下三种计数模式
递增计数模式:计数器从 0 计数到自动重载值,然后重新从 0 开始计数并生成计数器上溢事件。
递减计数模式:计数器从自动重载值开始递减到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。
中心对齐模式:计数器从 0 开始计数到自动重载值 – 1 ,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。
关键字:STM32 定时器 TIM 通用定时器
引用地址:
STM32定时器(TIM)之通用定时器
推荐阅读最新更新时间:2024-03-16 16:12
详解基于555定时器的电容测试仪设计
1 引言 随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小[1]。因此,一种简单、实用的电容测试工具在实际中具有一定的实用价值。一般元件参数的数字化测量是把被测参数转换成频率后再进行测量[2],本设计采用555为核心的振荡电路,将被测电容值转化为频率,并利用AT89S51处理器测量出频率,再通过该频率值计算出电容参数值。 2 系统的原理框图 系统主要采用了555定时器构成的RC振荡电路和单片机技术。设计思路:被测电容C通过RC振荡转换成频率信号f,送入单片机测频,对该频率进行运算处理求出被测电容的值,并送显示器显示。系统框图如图1所示,其主要由测量电
[单片机]
ST提升STM32开发速度,推出快捷应用开发平台
全球领先的微控制器厂商意法半导体(纽约证券交易所代码:STM)发布一款U盘版的开发平台STM32-comStick。这个低价的全功能开发平台有助于提高基于STM32互联系列微控制器的应用开发速度。STM32互联系列微控制器包括STM32F105和STM32F107两个子系列,于2009年6月投产,以先进的ARM® Cortex™-M3为内核,内置以太网、USB Device/Host/OTG、CAN和音频级I2S外设接口,为需要网络和通信功能的嵌入式应用提供低功耗的32位处理性能和实时特性。 STM32-comStick包括代码量无限制的Hitex HiTOP5 IDE/调试器和TASKING C编译器,可
[手机便携]
关于STM32的优先级
一:综述 首先优先级分组,主要是设置抢占优先级和响应优先级的个数 抢占式优先级 0-15 根据分组设置 (0组 0) (1组 0-1) (2组 0-3) (3组0-7) (4组 0-15) 响应优先级 0-15 根据分组设置(0组 0-15) (1组 0-7) (2组 0-3) (3组 0-1) (4组 0) 如果是抢占优先级说的是厉害的打断不厉害的 而响应优先级则是针对,两个中断同时到达以后,先响应高的。 如果两个中断响应优先级相同,则先响应中断号高的 二:优先级判断 STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级
[单片机]
STM32网络ETH
芯片是:STM32F207VCT6 本人主要介绍STM32F207VCT6的ETH部分,基本是把ETH部分英文翻译一下,加上自己的理解。 1、基础介绍 通过DMA控制器进行介质访问控制 这部分内容应用于STM32F20X和STM32F21系列,其他的 不适用 28.1 以太网简介 部分版权 2004 2005 新思科技(美国公司)。所有权利保留,使用需要认可。 借助STM32F20X和STM32F21的以太网外设可接受和发送数据按照IEE 802.3-2002标准 以太网提供一个完整的、灵活的外设去满足不同应用和要求。它支持与外部相连(PHY)的两个标准的工业接口:默认情况使用在IEEE802.3规范找中定义
[单片机]
STM32之JTAG口作为普通IO使用
STM32F10x系列的MCU复位后,PA13/14/15 以及PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。 JTAG对应IO JTMS -- PA13 JTCK -- PA14 JTDI -- PA15 JTDO -- PB3 JNRST -- PB4 SWD对应IO SWDIO -- PA13 SWCLK -- PA14 由对应IO关系可以看出,SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用,但是这三个口当做普通IO使
[单片机]
STM32 之 时间戳的解析与生成
什么是时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。 STM32 怎么使用时间戳 STM32 使用时间戳主要涉及两方面: 1 获取时间戳后解析成本地时间 2 根据本地时间生成时间戳 注:测试时,可以用在线工具 https://tool.lu/timesta
[单片机]
解决烧录问题:Jlink的三线制SWD方式连接STM32芯片无法识别
网上找到此文章解决了j-flash只能连接后不能烧录的问题,希望遇到相同问题的小伙伴,可以用同样的办法解决: 前段时间,做了一块板子,调试接口只留了三个口SWD、SWCLK、GND,在使用Jlink的SWD方式调试的时候发现无法连接。使用ST-link的时候可以连接,无奈楼主的ST-link的链接方式相当的不可靠,时而能识别时而不能识别:当然我的ST-link是山寨版的。 那么问题来了:为什么通过20针全部连接的方式可以调试,而三针的方式就不行了呢? 古人云知之为知之,不知Google之,Google不让用,那就问度娘好了。 通过查阅网上资料发现,jlink的20针,不光有调试的功能还有供电和检测电压的功能。 下面是jl
[单片机]
STM32 RTC设置
RTC配置: 1.打开电源管理和备份寄存器时钟。这个在RCC配置中打开。 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); 2.使能RTC和备份寄存器的访问(复位默认关闭)。 PWR_BackupAccessCmd(ENABLE); 3.检查电池是否断电过(是否RTC初始化过),通过的话直接跳到第4步。 if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) { A. BKP_DeInit();//BKP寄存器全部设为缺省值 B. RCC_LSEConfig(RCC_LS
[单片机]