【定时器从模式】


链接: keysking-18

1.概况

在这里插入图片描述
在这里插入图片描述
外部时钟模式1的功能是给定时器提供计数的信号,而这三种模式的功能则是控制定时器的工作状态
在这里插入图片描述
可以归纳为
在这里插入图片描述

2.复位模式

配置

### 三级目录
在这里插入图片描述
在这里插入图片描述
这里不需要降低延时来较精准地查看定时器计数,所以可以不采用中断或DMA这两种非阻塞模式,用阻塞模式即可。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
每1ms计数器加1
在这里插入图片描述
每5s进行一次自动重装载
在这里插入图片描述
打开定时器触发中断
在这里插入图片描述
过滤消抖

代码

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
关于回调函数
在这里插入图片描述

先清0中断标志位,再调用我们需要重新定义的中断回调函数。
在这里插入图片描述
在这里插入图片描述

main.c中重新定义
在这里插入图片描述

效果

在这里插入图片描述
每当引入一个上升沿计数值就会重新开始计数,并且还会输出“自动重装载:)”

区分复位模式和自动重装载

在这里插入图片描述
看一下触发器中断标志位是否为1即可区分(明显绿的对绿的)
在这里插入图片描述
HAL库不会把触发器中断标志位清为0,为了防止下次自动重装在寄存器判断时误判为从模式控制器,这里我们要自己置为0
在这里插入图片描述
在这里插入图片描述

3.门模式

在这里插入图片描述
定时器正常计数
在这里插入图片描述
定时器暂停计数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在上升沿/下降沿(暂停/继续)这两个时刻,触发器终端标志置为1。但是门模式并不复位计数器,也就不再触发更新中断。所以在更新中断函数中判断触发器中断标志位没有意义,根本不存在这种情况。
在这里插入图片描述
改写中断函数,保留发送功能。将判断触发器中断标志位的代码直接写入while中,当作寻常判断代码。
在这里插入图片描述

4.触发模式

在这里插入图片描述
在这里插入图片描述
但是触发模式仅仅能让定时器开始计数,不能让计数器停止。这里我们配合单脉冲模式使用
在这里插入图片描述
所谓单脉冲计数就是不再循环计数,计数到重装载后便停止计数。

5.番外

在这里插入图片描述
这个函数在初始化MX_TIM2时会将定时器更新中断标志位置为1
在这里插入图片描述
之后中断机制启动,NVIC马上就检测到标志位为1,马上就调用了中断的回调函数

在这里插入图片描述
这两种方法都是清0标志位,选1一个即可。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值