本篇文章介绍定时器的使用方法,并应用
流水灯,以及秒表
应用展示:链接
定时器的作用
定时器(Timer)最基本的功能就是定时,定时功能与外设结合,可
定时发送 USART 数据
定时采集 AD数据。
将定时器与 GPIO结合起来使用,可以实现非常丰富的功能:
可以产生输出波形
可以测量输入信号的脉冲宽度
用定时器产生PWM 控制电机状态是工业控制的普遍方法
STM32中定时器
STM32中一共有11个定时器:
所有定时器都是彼此独立的,不共享任何资源
- 内核中的SysTick
SysTick是简易的周期定时器,存在于控制器内核,其使用涉及的寄存器少,相同内核的器件间移植不需要修改程序。 - 常规定时器,共8个,分为三类:
高级定时器2个:TIM1、TIM8 (能够产生三对PWM互补输出)
通用定时器4个:TIM2,TIM3, TIM4,TIM5,
基本定时器2个:TIM6、TIM7 (DAC触发信号 )
TIM1、TIM8的时钟由APB2的输出产生,其他6个定时器的时钟由APB1的输出产生。
通用定时器可以用来 输入捕获 输出比较 PWM输出 脉冲计数等等
SysTick 系统滴答
SysTick 位于Cortex-M3核内的NVIC中,使用SysTick编写的程序代码在相同内核的器件间移植不需要修改。

简单 好用。
使用该功能实现LED灯的亮1s,灭1s。
通过CubeMX实现硬件资源配置。
- 使用led灯 PA4 设为output
- RCC 时钟源 选择外部高速时钟

- 时钟配置 使用外部高速时钟,内部进行9倍频作为系统时钟
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kZVdUwWQ-1581772748534)(https://gitee.com/nie_hen/test/raw/master/小书匠/1567780489150.png)]
到这里系统滴答就算是配置好了
编写代码 - 编写中断服务函数
在 stm32f1xx_hal_cotex.c 添加一个函数HAL_SYSTICK_IRQHandler
void HAL_SYSTICK_IRQHandler(void)
{
HAL_SYSTICK_Callback();
}<

最低0.47元/天 解锁文章
4702

被折叠的 条评论
为什么被折叠?



