
Tout = ((Counter Period+1)*(Prescaler +1)) / Tclk ;* L$ N' f! b- C8 X4 }7 r ( i5 e9 p7 K* `3 Y3 K 其中: X0 l8 |, s& [ Tclk:定时器的输入时钟频率,如108MHz==108000000 Tout:定时器溢出时间,如1s, a) `2 H5 |" {, ^' A ) o8 R/ ^5 R: F G& o: X( }7 w 则Counter Period可以为10000 - 1,Prescaler可以为10800 - 1 则最终TIM3的定时器频率为10000Hz,一个脉冲的时间为1/10000s,则若要定时1s,则自动重载寄存器设置为10000-1(如要定时0.2s,则自动重装寄存器设置为0.2/(1/10000)-1.即2000-1)。/ k6 v% x: g' M& r # e/ w' p& T/ `% ] 利用CubeMX配置时首先确认TIM3是挂载在哪条总线上,查找STM32F7的参考手册,可以看到是挂载到APB1上 ![]() . q, D' k, D# M, A/ j$ L 在Pinout选项卡中,选择TIM3,Clock Source选择Internal Clock4 P, H6 E7 g, P" h2 G" q# a , e8 M* }7 A) c& _ ![]() $ ?1 a5 D r5 Q) X! {6 M6 E 切换到Clock Configuration选项卡,PLL Source Mux中选择HSI,System Clock Mux中选择PLLCLK,此时HCLK显示最大为216MHz,输入216后,其他的系数会自动分配/ N: g8 C5 D2 s5 @6 f& g ![]() ! G6 }0 l$ O+ N" c, n 切换到Configuration选项卡,在Control中会出现TIM3,点击TIM3后,在Parameter Settings选项卡中填入Prescaler和Counter Period,比如108MHz为定时器TIM3输入时钟频率,若定时时间为1s,则Counter Period可以设置为10000-1,而Prescaler可以设置为10800-1。 ![]() 然后不要忘记使能定时器中断,可以在TIM3的NVIC Settings选项卡中使能,也可以在NVIC中使能 ![]() : W! v; {( {, }7 u* {' p ![]() ; w6 D1 { Q# k. j1 {& u6 `3 B " R* L8 E6 R$ U! N; U+ {3 m5 n |
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】测评01:创建STM32cube IDE 工程,点个灯
【STM32F769】创建deepseek本地服务,并实现http请求
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
coremark移植到STM32F769I-DISCO开发板的两种方法
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
刘氓兔的杂谈【001】-片上USB 高速PHY
【合集】STM32F7教程、资料大集合
基于STM32F746G-Discover的扩展电路板
F769 Discovery实现播放U盘音乐的播放器