微网站建设资讯免费全自动推广平台

diannao/2026/1/22 9:44:47/文章来源:
微网站建设资讯,免费全自动推广平台,pexels免费素材网,网络营销推广方式怎么收费单片机学习#xff01; 目录 文章目录 前言 一、输入捕获测频率配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 GPIO初始化 2.3 配置时基单元 2.4 配置输入捕获单元 2.5 选择从模式的触发源 2.6 配置从模式为Reset 2.7 开启定时器 总结 前言 博文介绍如何配置输入捕获电… 单片机学习 目录 文章目录 前言 一、输入捕获测频率配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 GPIO初始化 2.3 配置时基单元 2.4 配置输入捕获单元 2.5 选择从模式的触发源 2.6 配置从模式为Reset 2.7 开启定时器 总结 前言 博文介绍如何配置输入捕获电路来测量频率。 一、输入捕获测频率配置步骤 第一步、RCC开启时钟把GPIO和TIM的时钟打开。 第二步、GPIO初始化把GPIO配置成输入模式。一般选择上拉输入或者浮空输入模式。 第三步、配置时基单元让CNT计数器在内部时钟的驱动下自增运行。 第四步、配置输入捕获单元包括滤波器、极性、直连通道还是交叉通道、分频器这些参数。用一个结构体就可以统一进行配置了。 第五步、选择从模式的触发源触发源选择为TI1FP1这里调用一个库函数给一个参数就行。 第六步、选择触发之后执行的操作执行Reset操作这里也是调用一个库函数就行了。 第七步、开启定时器调用TIM_Cmd函数。 按以上步骤配置所有的电路就能配合起来按照需求工作。当需要读取最新一个周期的频率时直接读取CCR寄存器然后按照 fc/N 计算以下就行了。 二、代码示例及注意事项 2.1 RCC开启时钟 将需要的TIM外设和GPIO外设的时钟打开。打开时钟后定时器的基准时钟和整个外设的工作时钟就会同时打开。 代码示例 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使用APB1的开启时钟函数因为TIM3是APB1总线的外设。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);2.2 GPIO初始化 GPIO口可以在引脚定义表中查看 默认复用功能这一列就是片上外设的端口和GPIO的连接关系。可以找到 TIM3的通道1和通道2对应PA6和PA7TIM3的通道3和通道4对应PB0和PB1.本文举例使用TIM3的通道1引脚所以就初始化PA6引脚。 GPIO配置成输入模式选择上拉输入。 代码示例 GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU;//这里选择上拉输入GPIO_InitStruct.GPIO_Pin GPIO_Pin_6;GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStruct);2.3 配置时基单元 配置时基单元包括时钟源选择的配置。 时基单元选择时钟源。配置时基单元包括预分频器、自动重装器、计数模式等这些参数可用结构体配置。 代码示例 TIM_InternalClockConfig(TIM3);TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1;//指定时钟分频TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up;//计数器模式TIM_TimeBaseInitStructure.TIM_Period 65536-1;//ARR自动重装器的值TIM_TimeBaseInitStructure.TIM_Prescaler 72-1;//PSC预分频器的值TIM_TimeBaseInitStructure.TIM_RepetitionCounter 0;//重复计数器的值TIM_TimeBaseInit(TIM3,TIM_TimeBaseInitStructure); 结构体成员 TIM_ClockDivision指定时钟分频用于信号经过滤波器时的滤波采样频率。TIM_CounterMode计数器模式这里选择向上计数模式TIM_CounterMode_Up。TIM_Period ARR自动重装器的值设置大一些防止计数溢出。这里设置65536-1也就是16位的计数器满量程计数。TIM_PrescalerPSC预分频器的值这个值决定了测周法的标准频率fc72M / 预分频就是计数器自增的频率就是计数标准频率。这里给 72-1这样标准频率就是72M / 72 1MHz。TIM_RepetitionCounter重复计数器的值只有高级定时器才有本文初始化通用寄存器所以值给0。 2.4 配置输入捕获单元 代码示例 TIM_ICInitTypeDef TIM_ICInitStructure; TIM_ICInitStructure.TIM_ChannelTIM_Channel_1;//TIM_Channel选择通道 TIM_ICInitStructure.TIM_ICFilter0xF;//TIM_ICFilter用来配置输入捕获的滤波器 TIM_ICInitStructure.TIM_ICPolarityTIM_ICPolarity_Rising;//TIM_ICPolarity极性 TIM_ICInitStructure.TIM_ICPrescalerTIM_ICSelection_DirectTI;//TIM_ICPrescaler分频器 TIM_ICInitStructure.TIM_ICSelectionTIM_ICSelection_DirectTI;//TIM_ICSelection配置数据选择器TIM_ICInit(TIM3,TIM_ICInitStructure);TIM_Channel选择通道因为TIM_ICInit函数只有一个所以要靠结构体的这个参数来指定是配置哪个通道。这里选择通道1. TIM_ICFilter用来配置输入捕获的滤波器如果信号有毛刺和噪声就可以增大滤波器参数可以有效避免干扰。参数的取值范围0x0到0xF之间数越大滤波效果越好每个数值对应的采样频率和采样次数可查看参考手册。 注意滤波器和分频器的区别虽然两者都可以计次但是滤波器计次并不会改变信号的原有频率一般滤波器的采样频率会远高于信号频率所以它只会滤除高频噪声使信号更平滑1KHz滤波之后仍然是1KHz信号频率不会变化。而分频器就是对信号本身进行计次了会改变频率。1KHz2分频之后就是500Hz4分频之后就是250Hz。 TIM_ICPolarity极性这个对应图中边沿检测、极性选择的部分选择上升沿触发还是下降沿触发。这里需要上升沿触发。 TIM_ICPolarity_Rising上升沿触发TIM_ICPolarity_Falling下降沿触发TIM_ICPolarity_BothEdge上升沿下降沿都触发 TIM_ICPrescaler分频器这个参数配置的是对应图中触发信号分频器。不分频就是每次触发都有效二分频就是每隔一次有效一次以此类推。 TIM_ICPSC_DIV1  不分频  TIM_ICPSC_DIV2  二分频       TIM_ICPSC_DIV4  四分频                   TIM_ICPSC_DIV8  八分频                    这个分频值不能任意指定只能选择这4种这里需要每次出发都有效所以选择TIM_ICPSC_DIV1不分频。 TIM_ICSelection选择触发信号从哪个引脚输入这个参数是配置数据选择器的可以选择直连通道或者交叉通道。示例选择了TIM_ICSelection_DirectTI直连通道输入。 TIM_ICSelection_DirectTI直连通道的输入TIM_ICSelection_IndirectTI交叉通道的输入 最后把TIM_ICInitStructure结构体地址放在TIM_ICInit函数里。 2.5 选择从模式的触发源 配置TRGI的触发源为TI1FP1. 代码示例 TIM_SelectInputTrigger(TIM3,TIM_TS_TI1FP1);* arg TIM_TS_ITR0: Internal Trigger 0* arg TIM_TS_ITR1: Internal Trigger 1* arg TIM_TS_ITR2: Internal Trigger 2* arg TIM_TS_ITR3: Internal Trigger 3* arg TIM_TS_TI1F_ED: TI1 Edge Detector* arg TIM_TS_TI1FP1: Filtered Timer Input 1* arg TIM_TS_TI2FP2: Filtered Timer Input 2* arg TIM_TS_ETRF: External Trigger input这里给出的8个可选触发源对应上图触发源选择的8个模式。这里选择TIM_TS_TI1FP1。   2.6 配置从模式为Reset 代码示例 TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Reset);* arg TIM_SlaveMode_Reset: Rising edge of the selected trigger signal (TRGI) re-initializes* the counter and triggers an update of the registers.* arg TIM_SlaveMode_Gated: The counter clock is enabled when the trigger signal (TRGI) is high.* arg TIM_SlaveMode_Trigger: The counter starts at a rising edge of the trigger TRGI.* arg TIM_SlaveMode_External1: Rising edges of the selected trigger (TRGI) clock the counter.这里的4种从模式对应上图中的4种从模式。从模式中还有3个Encoder从模式是给编码器接口用的有其他函数可以配置。 例子中选择Reset这个模式。 2.7 开启定时器 开启定时器调用TIM_Cmd函数。 代码示例 TIM_Cmd(TIM3,ENABLE);启动定时器之后CNT就会在内部时钟的驱动下不断自增。即使信号没有过来它也会不断自增等到有信号来的时候会在从模式的作用下自动清零不会影响测量。 初始化之后整个电路就可以全自动测量了。 总结 以上就是今天要讲的内容本文仅仅简单介绍了输入捕获的配置步骤和注意事项。

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

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

相关文章

青岛知名网站建设公司排名长春app制作

在本教程中,您将学习如何使用MySQL ON DELETE CASCADE引用操作来执行外键从多个相关表中删除数据。在上一个教程中,我们学习了如何使用单个DELETE语句从一个或多个相关表中删除数据。但是,MySQL提供了一种更为有效的方法,称为ON D…

南京专业网站建设大连网站设计收费标准

众所周知nginx使用异步,事件驱动方法处理连接。这意味着nginx使用一个worker进程处理多个连接和请求,而不是每一个请求有一个专门的进程或着线程处理(像传统架构的服务器那样,例如apache)。为了实现这个目的,nginx使用非阻塞模式的…

产品销售型企业网站两个网站php 一个空间

说到 Microsoft Bot Framework 其实微软发布了已经有一段时间了,有很多朋友可能还不太了解,微软Bot的功能今天我给大家简单的介绍一下,Bot Framework的开发基础以及如何使用Bot Framework和我们的一个现有的三方客服(例如一个微信…

网站视频怎么做上海做推广的公司

009 设置单元格格式之字体(文档下载:关注本公众号,发送消息【教程】即可获得)通过VBA对单元格字体进行设置也是比较常用的方式,那么本节内容我们就来学习如何使用VBA对单元格中的字体进行设置。如图所示,字体设置主要有&#xff0…

网站是灰色系的网站爱站网ip反域名查询

目录 一、JSON介绍 1.概念 2.主要特点 3.优点 4.使用JSON的原因 使用 XML 使用 JSON 二、JSON语法 三、JSON使用 1.JSON的序列化 2.解析(parse) JSON 3.序列化(Stringify)JSON 四、JSON实例 1.用户信息 2.本地存储 五、JSON应用…

wordpress批量改文章链接肇庆网页关键词优化

WebSocket简介 WebSocket是一种网络通信协议,它使得浏览器(客户端)和服务器之间的通信变得更加高效和实时。这种技术特别适用于需要快速、双向交换数据的应用,比如实时聊天应用、在线游戏、实时股票交易平台等。WebSocket协议在2011年被标准化(RFC 6455),它旨在通过一个…

天津网站优化建设做网站推广怎么定位客户

下载文件 文档 UEditor入门部署 入门部署和体验 1.1 下载编辑器 到官网下载 UEditor 最新版:http://ueditor.baidu.com/website/download.html#ueditor 1.2 创建demo文件 解压下载的包,在解压后的目录创建 demo.html 文件,填入下面的…

政务网站模板wordpress页面显示返回json

python脚本打包为exe并在服务器上设置定时执行 1. Python脚本打包2. 将打包好的Python脚本放入服务器3. 在服务器上设置其定时执行 1. Python脚本打包 首先,下载pyinstaller 键盘winR打开终端,输入命令:pip install pyinstaller,…

网站开发语言用什么好良乡网站建设公司

1、B站视频链接:C02【模板】线段树懒标记 Luogu P3372 线段树 1_哔哩哔哩_bilibili 题目链接:P3372 【模板】线段树 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) void build(int p,int l,int r){tr[p]{l,r,w[l],0};if(lr)return;//叶子节点返回int…

北京视频制作公司湛江网站优化快速排名

A星算法详解(个人认为最详细,最通俗易懂的一个版本)-CSDN博客

什么秀网站做效果图网站开发评估与调整

前言:在android开发过程中,百度地图的使用是比较普遍的,但是如何使用,使用什么版本的百度API还是需要一些讲究。在项目过程中,需要用到百度地图的marker和InfoWindow的功能。标注覆盖物(百度地图官方图)布局文件很简单…

好的网站开发培训茶叶网站建设策划书

Dart 空安全: 空类型操作符 (?)空值合并操作符 (??)空值断言操作符 (!)延迟初始化 (late) 1、空类型操作符 (?) 当你想要根据一个表达式是否为 null 来执行某个操作时,你可以使用 (?)语法:expression1?.expression2如果 expression1…

移动建站平台有哪些wordpress图片本地化插件

Apache JMeter是Apache组 织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等。…

广东省城乡建设厅网站企业网站的功能

传送门 文章目录题意:思路:题意: 你需要实现如下四个操作 q≤1e7q\le1e7q≤1e7 思路: 做的时候想了个链表的思路让队友写了,懒。 看了题解感觉题解还是很妙的。 你需要快速插入一个数在前后两端,还需要…

那些网站可以做问答网站开发刷新图片

1月5日,由国内数字产业独立的第三方调研咨询机构数世咨询主办,以“数字安全,未来可期”为主题的2024安全市场年度大会在北京举办。来自国内网络安全厂商300多人以线上线下方式参加本次大会,通过4个多小时高能演讲,聚焦…

网站集约化建设意见设计公司logo需要多少钱

文章目录 🐸一、队列的概念及结构🍄1、队列的概念定义🍄2、动图演示 🐸二、队列的实现🐸三、链表结构队列详解🍎创建队列的结构⭕接口1:定义结构体(QNode、Queue)⭕接口2…

做网站需要资质吗长沙网站托管公司排名

欢迎来到我的博客,代码的世界里,每一行都是一个故事 揭秘 Gossip 协议:节点之间的悄悄话 前言Gossip协议简介Gossip 协议的工作原理Gossip 协议的优势Gossip协议的实际应用 前言 在分布式系统中,节点之间的信息传递如同社交中的悄…

广州正规的网站建设可以做立体图形的网站

使用过多个版本的Microsoft Office和WPS Office。让我推荐几个版本:Microsoft Office 2003和Microsoft Office 2007是两个资源最密集的版本(不考虑旧版本的Office),除非它们是特别旧的计算机,否则不建议安装。对于十年前的旧计算机&#xff0…

自己能制作免费网站吗免费用搭建网站

编译型语言和解释型语言的区别 通过高级语言编写的源码,我们能够轻松理解,但对于计算机来说,它只认识二进制指令,源码就是天书,根本无法识别。源码要想执行,必须先转换成二进制指令。 所谓二进制指令&…

常见网站类型如何通过c语言来做网站

switch语句格式 switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n1;break; }执行流程: 首先计算表达式的值。依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中…