STM32F407-14.3.6-01输入捕获模式

输入捕获模式 

在输入捕获模式下,当相应的 ICx⑦ 信号检测到跳变沿后,将使用捕获/比较寄存器 (TIMx_CCRx⑪) 来锁存计数器的值。发生捕获事件时,会将相应的 CCXIF⑬ 标志(TIMx_SR 寄存器)置 1, 并可发送中断或 DMA 请求(如果已使能)。如果再次发生捕获事件时 CCxIF⑬ 标志已处于高位, 则会将重复捕获标志 CCxOF⑫(TIMx_SR 寄存器)置 1。可通过软件向 CCxIF⑬ 写入 0 来给 CCxIF⑬ 清零,或读取存储在 TIMx_CCRx⑪ 寄存器中的已捕获数据。向 CCxOF⑫ 写入“0”后 会将其清零。

以下示例说明了如何在 TI1⑦ 输入出现上升沿时将计数器的值捕获到 TIMx_CCR1⑪ 中。
具体操作步骤如下: 
第一步 : 选择有效输入:TIMx_CCR1⑪ 必须连接到 TI1⑦ 输入,因此向 TIMx_CCMR1 寄存器中的 CC1S⑥ 位写入 01。只要 CC1S 不等于 00,就会将通道配置为输入模式,并且 TIMx_CCR1⑪ 寄存器将处于只读状态。 
第二步 : 根据连接到定时器的信号,对所需的输入滤波时间进行编程(如果输入为 TIx 输入,则 对 TIMx_CCMRx 寄存器中的 ICxF③ 位进行编程)。假设信号边沿变化时,输入信号最多在 5 个内部时钟周期内发生抖动。因此,我们必须将滤波时间设置为大于 5 个内部时钟周期。在检测到 8 个具有新电平的连续采样(以 f^DTS② 频率采样)后,可以确认 TI1 上的跳变沿。然后向 TIMx_CCMR1 寄存器中的 IC1F③ 位写入 0011。 
第四步 : 通过在 TIMx_CCER 寄存器中将 CC1P 位和 CC1NP⑤ 位写入 0,选择 TI1 上的有效转换边沿(本例中为上升沿)。
第五步 : 对输入预分频器进行编程。在本例中,我们希望每次有效转换时都执行捕获操作,因此 需要禁止预分频器(向 TIMx_CCMR1 寄存器中的 IC1PSC⑧ 位写入“00”)。 
第六步 : 通过将 TIMx_CCER 寄存器中的 CC1E⑨ 位置 1,允许将计数器的值捕获到捕获寄存器中。 
第七步 : 如果需要,可通过将 TIMx_DIER 寄存器中的 CC1IE⑭ 位置 1 来使能相关中断请求,并且/ 或者通过将该寄存器中的 CC1DE⑮ 位置 1 来使能 DMA 请求。 


发生输入捕获时: 
·    Ñ生有效跳变沿时,TIMx_CCR1⑪ 寄存器会获取计数器的值。 
·     CC1IF⑬ 标志置 1(中断标志)。如果至少发生了两次连续捕获,但 CC1IF⑬ 标志未被 清零,这样 CC1OF⑫ 捕获溢出标志会被置 1。 
·    9据 CC1IE⑭ 位生成中断。 
·    9据 CC1DE⑮ 位生成 DMA 请求。
 
要处理重复捕获,建议在读出捕获溢出标志之前读取数据。这样可避免丢失在读取捕获溢出标志之后与读取数据之前可能出现的重复捕获信息。
注意:通过软件将 TIMx_EGR 寄存器中的相应 CCxG⑩ 位置 1 可生成 IC 中断和/或 DMA 请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GoLong的学习之路,进阶,Redis

这个redis和上篇rabbitMQ一样,在之前我用Java从原理上进行了剖析,这里呢,我做项目的时候,也需要用到redis,所以这里也将去从怎么用的角度去写这篇文章。 文章目录 安装redis以及原理redis概念redis的应用场景有很多red…

Linux(fork+exec创建进程)

1.进程创建 内核设计与实现43页; 执行了3次ps -f ,ps -f的父进程的ID(PPID)都是一样的,即bash. 实际上Linux上这个bash就是不断的复制自身,然后把复制出来的用exec替换成想要执行的程序(比如ps); 运行ps,发现ps是bash的一个子进程;原因就是bash把自己复制一份,然后替换成ps;…

云时空社会化商业 ERP 系统 service SQL 注入漏洞复现

0x01 产品简介 时空云社会化商业ERP(简称时空云ERP) ,该产品采用JAVA语言和Oracle数据库, 融合用友软件的先进管理理念,汇集各医药企业特色管理需求,通过规范各个流通环节从而提高企业竞争力、降低人员成本…

【java扫盲贴】final修饰变量

引用类型:地址不可变 //Java中的引用类型分为类(class)、接口(interface)、数组(array)和枚举(enum)。//string是特殊的引用类型,他的底层是被final修饰的字…

orvibo旗下的VS30ZW网关分析之一

概述 从官网的APP支持的智能中枢来看,一共就两种大类: MixPad系列和网关系列 排除MixPad带屏网关外,剩余的设备如下图: 目前在市场上这四种网关已经下市,官方已经宣布停产。所以市场上流通的也几乎绝迹。 从闲鱼市场上可以淘到几个,拿来分析一下,这里我手头有如下的两…

linux 讨论题合集(个人复习)

常规文件的权限是什么?如何分配或修改这些权限?文件夹(目录)的权限是什么?显示常规文件和文件夹的区别 讨论:①常规的文件权限有四种,r可读、w可写、x可执行、-没有权限;②可以使用c…

改善厦门城市内涝积水问题,实时监测城市易涝积水点

近年来,城市内涝积水问题已成为中国许多城市面临的严峻挑战。特别是在厦门这样的海滨城市,由于其特殊的地理环境和气候条件,内涝问题尤为突出。传统的解决方法主要依赖于人工排查,然而,这种方式存在许多缺陷。 WITBEE万…

ESP32-Web-Server编程- 使用SSE 实时更新设备信息

ESP32-Web-Server编程- 使用SSE 实时更新设备信息 概述 如前所述,传统 HTTP 通信协议基于 Request-Apply(请求-响应)机制,浏览器(客户端)只能单向地向服务器发起请求,服务器无法主动向浏览器推…

AtCoder Beginner Contest 330 A~F

A.Counting Passes(暴力) 题意&#xff1a; 给定 n n n个学生的分数&#xff0c;以及及格分 x x x &#xff0c;问多少人及格了。 分析&#xff1a; 暴力枚举&#xff0c;依次判断每个学生的分数即可。 代码&#xff1a; #include <bits/stdc.h> using namespace s…

函数学习 PTA 1使用函数输出一个整数的逆序数;3判断满足条件的三位数;5使用函数求余弦函数的近似值

其实一共有五道题&#xff0c;但那两道实在太过简单&#xff0c;也不好意思打出来给大家看&#xff0c;那么这篇博客&#xff0c;就让我一次性写三道题吧&#xff01;也当是个小总结&#xff0c;睡前深思。 6-1 使用函数输出一个整数的逆序数 本题要求实现一个求整数的逆序数的…

【面试】css预处理器之sass(scss)

目录 为什么引入css预处理器 可读性 嵌套&#xff1a;关系明朗 选择器 属性 伪类‘’ 变量&#xff1a;语义明确 默认变量&#xff1a;美元符号 $ 变量名:值 !default 全局变量&#xff1a;:global { $global-x: } 变量插值&#xff1a;#{} map键值对&#xff1a;$…

深度学习框架:Pytorch与Keras的区别与使用方法

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 Pytorch与Keras介绍 Pytorch 模型定义 模型编译 模型训练 输入格式 完整代码 Keras 模型定义 模型编译 模型训练 输入格式 完整代…