
STM32基本定时器具有以下功能: 16位向上、向下、向上/下自动装载计数器。 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值。 定时触发ADC或者DAC以达到固定频率采用或者还原的目的(部分基本定时器具有此功能)。 STM32通用定时器具有以下功能: 16位向上、向下、向上/下自动装载计数器。 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值。 4 个独立通道(TIMx_CH1~4)可以用作: 测量输入信号的脉冲长度( 输入捕获)。 输出比较。 单脉冲模式输出。 PWM输出(边缘或中间对齐模式)。 支持针对定位的增量(正交)编码器和霍尔传感器电路。 如下事件发生时产生中断/DMA: 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内 部/外部触发) 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 输入捕获 输出比较 STM32高级定时器具有以下功能: 还具有控制交直流电动机所有的功能。 输出6路互补带死区的信号,刹车功能等等。 还具有一般定时器的功能。 时钟树配置: ![]() 配置GPIO: ![]() PE3和PE4是两个LED灯。 配置定时器: ![]() 点点鼠标CuBe就会自己配置相应参数,这是CuBe的强大的地方,节省很多时间! ![]() 其中参数含义分别为: Prescaler 分频系数 Counter Mode 计数模式(分为向上和向下) Count Period 计数周期 auto-reload preload 自动重装载 TRGO Event Selection 触发事件 ![]() 其中时间溢出公式为: 其他参数无须修改,用到再查资料。 ![]() CuBe的配置就这样完成了,接下来进入MDK了。 首先是启动驱动器: 这个过程想要手动启动定时器,系统才能进入定时器中断(这个放在main函数开头的地方)
注意,如果使用HAL_TIM_Base_Start(&htim6);函数打开定时器,则定时器会启动,但不会进入定时器中断。 主函数中就不需要再编写其他的代码了。 然后我们来到stm32f4××_it.c文件,找到TIM6中断,在里面添加自己的代码即可。我这里就只添加了这个: ![]()
然后我代码的效果就是PE3每隔500ms翻转一次,PE4保持常亮。大家记得还要配置debug里面的东西,之后就是编译、下载程序了。具体参考下面: ![]() ![]() ———————————————— 版权声明:不会创建对象 |
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
【ST云实验室先锋计划】兔哥的IO-LINK 云上体验
拷打cubemx【003】——找不到的芯片包
新版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一网打尽)