Tout = ((Counter Period+1)*(Prescaler +1)) / Tclk ;5 a+ T2 O" h. A4 N1 ` 其中:2 ^3 ^ t1 [& F5 {+ { + q3 t) e' n4 m+ D( o; o, W Tclk:定时器的输入时钟频率,如108MHz==108000000- v/ e$ j# n5 q Tout:定时器溢出时间,如1s# q, I3 W6 w! O7 L 则Counter Period可以为10000 - 1,Prescaler可以为10800 - 1 0 W" x1 k- l% p) [# Q 则最终TIM3的定时器频率为10000Hz,一个脉冲的时间为1/10000s,则若要定时1s,则自动重载寄存器设置为10000-1(如要定时0.2s,则自动重装寄存器设置为0.2/(1/10000)-1.即2000-1)。1 S' e/ h r2 t5 D0 _% ` & S- E R- D: q" Z; y- n/ h! p 利用CubeMX配置时首先确认TIM3是挂载在哪条总线上,查找STM32F7的参考手册,可以看到是挂载到APB1上 " w" h2 t8 \& ~1 O# H! D , i6 T! f8 \* n1 o8 z" s& I 在Pinout选项卡中,选择TIM3,Clock Source选择Internal Clock; k8 f9 z- C6 f& e$ ~; c1 C 切换到Clock Configuration选项卡,PLL Source Mux中选择HSI,System Clock Mux中选择PLLCLK,此时HCLK显示最大为216MHz,输入216后,其他的系数会自动分配 切换到Configuration选项卡,在Control中会出现TIM3,点击TIM3后,在Parameter Settings选项卡中填入Prescaler和Counter Period,比如108MHz为定时器TIM3输入时钟频率,若定时时间为1s,则Counter Period可以设置为10000-1,而Prescaler可以设置为10800-1。 * e, H( I E9 ^4 S; B4 B$ Q' i ) v, i5 m8 e9 P* o' t! N" Z 然后不要忘记使能定时器中断,可以在TIM3的NVIC Settings选项卡中使能,也可以在NVIC中使能8 {; b$ R% v; E% p# n$ A/ G& W9 Y " v* ? _3 \9 ~) @+ p$ F/ ] 5 z# ~9 {/ y1 e6 G; D, G |
刘氓兔的杂谈【001】-片上USB 高速PHY
【合集】STM32F7教程、资料大集合
基于STM32F746G-Discover的扩展电路板
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集