
STM32基本定时器具有以下功能: 16位向上、向下、向上/下自动装载计数器。+ D4 _% P5 g1 ~. M, H m 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值。! b" E% D- i2 a9 v% l- R- c# Z; u 定时触发ADC或者DAC以达到固定频率采用或者还原的目的(部分基本定时器具有此功能)。 STM32通用定时器具有以下功能: \9 L5 f6 J* t8 p ' e4 o3 h+ g& s1 ?: }/ g7 e+ ~ 16位向上、向下、向上/下自动装载计数器。/ B, @% p9 x" Y2 J ?5 b* j8 u6 N8 k: m 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值。 4 个独立通道(TIMx_CH1~4)可以用作:2 Z9 U3 ]1 s' ^7 F0 c# ~/ j J9 n 测量输入信号的脉冲长度( 输入捕获)。 输出比较。 单脉冲模式输出。 PWM输出(边缘或中间对齐模式)。" p2 \) R" l' ~ 6 e. u3 W4 o9 y7 X5 h5 C 支持针对定位的增量(正交)编码器和霍尔传感器电路。 B3 k+ k e& }; T8 {2 J * a$ H! B2 q1 {4 P 如下事件发生时产生中断/DMA: 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内 部/外部触发)1 o8 e' b7 l) o& F; E. _ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 输入捕获 输出比较0 ?# V: B/ f& s" V, n; @# y: ` STM32高级定时器具有以下功能: 还具有控制交直流电动机所有的功能。4 d- y2 Y( L1 O. r7 R2 ~- ` 0 X' B9 j' s$ y3 B 输出6路互补带死区的信号,刹车功能等等。8 a# M( ~. v4 t: n2 f/ w8 P3 o 3 o% H9 t5 h( U1 T! P" ~4 t 还具有一般定时器的功能。/ Z: x3 r" r% W 时钟树配置:, _+ q" C+ W6 ~8 T7 F ![]() ; M9 D( |' g1 v% N 配置GPIO: E6 D$ ?% E1 e, x% a + w# [- Z r( T5 @ ![]() PE3和PE4是两个LED灯。 配置定时器: ![]() 点点鼠标CuBe就会自己配置相应参数,这是CuBe的强大的地方,节省很多时间!% t# Z4 `0 p- Y' v# J! N 3 g I, G) O( D: G4 N* W& w ![]() 其中参数含义分别为:5 K/ F* D% b% o$ t; S9 |6 d/ W Prescaler 分频系数 Counter Mode 计数模式(分为向上和向下)* M& D) H5 P1 f/ a( I/ d$ }) A M Count Period 计数周期1 U$ J) _& L; c" b/ K( E auto-reload preload 自动重装载 TRGO Event Selection 触发事件 ![]() 其中时间溢出公式为:2 P) @- n( \4 n: D3 R$ N 5 B- q6 {$ f' u, J- K9 ` 其他参数无须修改,用到再查资料。 ![]() + q) v2 |6 Q& y1 K9 Q 6 T v- O% A& p/ b/ B4 @& g. S CuBe的配置就这样完成了,接下来进入MDK了。9 |2 J/ F# g( t. u# {# M0 l, f0 ?- t ( \* q% {6 I. D 首先是启动驱动器:3 a/ {& L) [$ C4 W5 Y ! m6 p( j/ f" S 这个过程想要手动启动定时器,系统才能进入定时器中断(这个放在main函数开头的地方)
注意,如果使用HAL_TIM_Base_Start(&htim6);函数打开定时器,则定时器会启动,但不会进入定时器中断。 主函数中就不需要再编写其他的代码了。 : `& o4 O c# u9 u% Z/ }$ k 然后我们来到stm32f4××_it.c文件,找到TIM6中断,在里面添加自己的代码即可。我这里就只添加了这个:' L( w- j& I* w8 I+ o # Q- [" ^3 L: [9 f/ b& y2 [ ![]()
然后我代码的效果就是PE3每隔500ms翻转一次,PE4保持常亮。大家记得还要配置debug里面的东西,之后就是编译、下载程序了。具体参考下面: , A( b e9 q6 v* x+ a ![]() F7 E M7 R" Q9 L+ N ![]() ( W+ C6 u: y" _9 H1 z; D+ U" M, W5 h ———————————————— 版权声明:不会创建对象 & J" P, z6 \( a' [$ L ) A( n# ~8 P% i- m& q$ b4 Q |
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯