历史上的今天
今天是:2025年07月29日(星期二)
2019年07月29日 | 关于STM32 通用定时器初始化参数的理解
2019-07-29 来源:eefocus
定时器初始化结构体定义为
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_Prescaler为预分频因子,取值范围为0x0000 到 0xFFFF,决定了定时器时钟频率。定时器时钟频率 = 定时器时钟源频率 / TIM_Prescaler。其中,定时器时钟源有4个:
1) 内部时钟(CK_INT)
2) 外部时钟模式 1:外部输入脚(TIx)
3) 外部时钟模式 2:外部触发输入(ETR)
4) 内部触发输入(ITRx):
这个时钟源是由寄存器TIMx_SMCR设置的,在手册中可以看出,它的复位值是0x00,如果不专门设置,(在使能了定时器的前提下)定时器时钟源选择的是内部时钟(CK_INT),它的频率是72MHZ(在系统频率SYSCLK是72MHz的情况下)。具体分析是,根据时钟树,SYSCLK为72MHz,AHB为72MHz,APB1被2分频变为36MHz,而根据时钟树上的话“如果APB1预分频系统=1则频率不变,否则乘2”,这里APB1被2分频,故需要乘2,定时器2~7的时钟频率就为72MHz。

TIM_CounterMode为计数模式,可以向上,向下或向上/向下计数,很简单,不多说。
TIM_Period是定时器的溢出上限值,定时器向上计数到TIM_Period或从TIM_Period向下计数到0时溢出。注意这个值是自动重新装载的。
TIM_ClockDivision仅用于定时器时钟源是“外部触发输入”(即之前说的第3个时钟源)时的情况,它是“外部触发输入时钟”的分频系数。在定时器时钟源是其他情况时(比如内部时钟72MHz)没有意义。
TIM_RepetitionCounter,这个只在高级定时器1和8中才有意义。
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 (文中S—发射端,R—接收端) 今日有一让大家的使用手机而无需缴纳话费的设想,愿与大家共同分享,也希望其中的一些尚未解决之处大家集思广益。 首先,为什么我们要向移动、联通等运营商 ...… 查看全部问答> |
|
本开发板命名为Landbcm 2008 下面开始介绍介绍Landbcm 2008 1.Landbcm 2008系统框图: 1.Landbcm 2008学习板提供了 硬件: 1个WAN口, 1个100M以太网口, 4M Flash,16M SDRAM , 主控芯片为BCM47XX , 交换芯片为BCM5XXX 软件: 全套开 ...… 查看全部问答> |
|
数据库同步 SqlCeRemoteDataAccess.Pull 里面的trackoption 参数设置问题 需要同步PDA和服务器数据库。用SQLCE3.0 SqlCeRemoteDataAccess.Pull方法可以下载服务器数据库的数据到PDA, 其中有个参数叫trackoption 。 当我把这个参数设置为TRACKINGOFF,也就是不跟踪数据变化时,没有任何问题,可以下载数据。 但当把它 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:03 编辑 DIGITIMES Research 分析师柴焕欣分析,受 DRAM 价格自 2011年第一季持续性下滑影响,加上日圆汇率亦持续升值加重成本负担,全球第三大DRAM供应商尔必达(Elpida)在历经连续5季亏损后,终于无法 ...… 查看全部问答> |
|
用Qtcreator 开发的运行于ARM9+linux上的QT4图形应用程序mplayer前台应用,mplayer的slave模式下每次定位视频窗口都失败,不能播放到指定的窗口,也不能全屏,但是能播放,速度超慢,一下是部分代码: QString common = \"/usr/bin/mplayer -slave ...… 查看全部问答> |




