完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
定时器初始化结构体定义为
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中才有意义。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:35 , Processed in 0.925555 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号