首页 > 其他分享 >ARM 笔记(1018)-- STM32部分--14 通用定时器输入捕获

ARM 笔记(1018)-- STM32部分--14 通用定时器输入捕获

时间:2022-10-18 14:14:52浏览次数:40  
标签:定时器 14 -- 捕获 STM32 按下 按键 输入 函数

12.4 通用定时器输入捕获

输入捕获的概念:

输入捕获是什么意思?怎样实现的输入捕获?

输入捕获捕获的是跳跃的信号,根据硬件连接关系,按键按下是上升沿,按键抬起是下降沿。如果想实现判定按键按下的时间。首先设置捕获边沿为上升沿。当上升沿来临时,读取一次定时器里面的数值。然后再把边沿捕获的触发方式,更改成下降沿触发。当下降沿来临时,再读取一次定时器里的计数值,两次结果相减,就是按键按下的时间,并且触发之后,还要把触发条件更改为上升沿,便于下次判定。

如果按键按下的时间足够长,超过了一个定时周期怎么办?每个定时中断让一个变量+1,然后用变量的值*定时的时间+捕获的时间==总的时间。

按键按下,为高电平, 开启上升沿捕捉,

U8 8位长度的数据
先判断最高位次高位

取后六位,

Data的值*0xffffffff +value 8个f是完整的周期
Value两次计数的差。

按下多少us

12.5输入捕获的硬件电路结构

1.是输入捕获信号的来源通道,根据硬件引脚查阅数据手册发现,按键PA0是定时器2或定时器5的1通道。
2.的作用是滤除电路中的高频噪音
3.内部逻辑通道,外部的信号在内部传输的时候,走的逻辑线路。
4.预分频器:检测几次边沿触发算一次。
5.(做输入的时候)输入捕获寄存器    同时也是输出比较寄存器(CCR)
                  输出比较寄存器

IC输入捕获
OC输出比较

12.6输入捕获的程序如何编写

首先编写初始化函数:

Void time_ic_init()
{
打开定时器时钟
结构体传参时候注意:首先把捕获的边沿设置成上升沿

调用定时器输入捕获初始化函数
调用通道配置函数
开启定时器的输入捕获中断功能,
开启系统中断
配置中断优先级

注意:系统捕获的初始化函数最后调用了一个空函数作为回调函数。
我们可以把IO的初始化写在回调函数里边
}

接下来:
编写定时器的计数刷新 中断的入口函数---------判断如果按下按键并且没有抬起按键、计数值自加。
编写定时器捕获中断的入口函数。------如果按下按键了,并且没有抬起按键,读取计数器中的值。把输入捕获的触发条件更改成下降沿,为抬起按键做准备。
如果抬起按键了,再次读取计数器里的值,算出按键按下的时间。并且把输入捕获条件改成上升沿触发,为再次按下按键做准备。

选择直接相连的 宏

输入分频 指图片中的 4 的分频设置
图片中的滤波是 图片中的2 填0

IT中断功能
回调功能:

标签:定时器,14,--,捕获,STM32,按下,按键,输入,函数
From: https://www.cnblogs.com/L707/p/16802350.html

相关文章

  • Demo35_数组的声明与创建
    //数组的声明与创建packagecom.HuanXin.array_6;publicclassDemo01{publicstaticvoidmain(String[]args){int[]num1;//声明了一个数组num1=......
  • 断点js-断点续传-大文件断点上传
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求     ......
  • Yan Zhang-2021-04-02-We are More than Our Joints-Predicting how 3D Bodies Move
    #WeareMorethanOurJoints:Predictinghow3DBodiesMove#paper1.paper-info1.1MetadataAuthor::[[YanZhang]],[[MichaelJ.Black]],[[SiyuTang]]......
  • 组件Mask(超出部分隐藏)
    组件使用mask的地方只需要两个组件:自带的Node和渲染组件里的Mask使用组件首先要有一个使用mask组件的图层,设置好宽高。他下面有张图片。层级结构如图:mask_exam的暂定为......
  • 常用快捷键
    哈喽!大家好,第一次加入博客园,刚开始学习计算机,分享一些自己学到的东西。(这些快捷键不用特意去记忆,使用的多了慢慢就记住了。哈哈哈哈!!)1.CTRL+C复制2.CTRL+V粘贴3.CTRL+A全......
  • DSP中的eCAP
    一、前言为了方便理解和查阅本人所需的知识,在此做笔记。知识点来源书本与网络,如有侵权,联系删除。二、基本原理捕获单元模块能后捕获外部输入引脚的逻辑状态(电平的高或低......
  • python装饰器
     参考:https://www.runoob.com/w3cnote/python-func-decorators.htmlhttps://www.jb51.net/article/240440.htm用途:定义一个函数,来修饰之前老的代码,以便在不修改原代码......
  • 视频格式文件种类
    .mp4;*.flv;*.f4v;*.webm;*.m4v;*.mov;*.3gp;*.3g2;*.rm;*.rmvb;*.wmv;*.avi;*.asf;*.mpg;*.mpeg:*.mpe;*.ts;*.div;*.dv;*.divx*.vob;*.dat;*.mkv;*.swf;*.lavf;*.cpk*.di......
  • 测开造轮子漫谈
    参考:https://mp.weixin.qq.com/s?__biz=MzkwNTI2NjAxMA==&mid=2247484083&idx=1&sn=2abc1d87e64878ed040e3f9856c4b0ac&chksm=c0fb1486f78c9d903dfcdc6a3c6adf04c42dc8e740......
  • SQL server把多条记录查找结果合并成一条记录
    例如我们有如下一张"用户工厂"表,为多对多关系:selectUserId,工厂号from用户工厂 如果我们希望得到三个工厂号对应了哪些UserId,把这些UserId放到一行里面显示出来,......