STM32 定时器外部时钟与循迹模块

    1、上篇文章介绍了定时器使用内部时钟信号计数,实现计数、更新中断等功能。
    2、可不可以利用定时器对来自外部的信号进行计数?也就是对输入io的信号计数?
    3、可以

1、定时器外部时钟

    STM32的通用定时器和高级定时器都将外部信号引入了触发控制器。
    但并不是直接的,STM32为每个输入通道都配备了输入滤波器边沿检测器,方便灵活的配置和使用。

1.1 TIM INPUT介绍

    1、在STM32F103上,每个定时器有4个输入通道:TI1、TI2、TI3、TI4(TI是TIM INPUT缩写),其中TI3、TI4并没有接入到触发控制器。这里讨论TI1、TI2。对于TI1来说其边沿检测器输出的脉冲信号有两个:TI1FP1、TI1FP2。这里讨论TI1FP1,它会直接到达触发控制器内部。另外TI1上还有一根称为TI1_ED的信号也会到达触发控制器 前。

    2、TI1_ED和TI1FP1、TI1FP2的区别是:TI1FP1、TI1FP2可以选择是上升沿还是下降沿或者双边沿触发,TI1_ED只能是双边沿触发。

    3、这三个信号我们只能选择一个作为定时器的触发源,需要通过一个叫触发器的结构来选择其中一个通道,最终到达从模式控制器。

1.2 ETR介绍

    1、除了上面三个信号,还有一个外部触发器ETR最终也能进入从模式控制器,这条通路叫做外部时钟模式1。

    2、外部时钟模式2可以直接到达触发控制器。

    3、整体框图如下:
在这里插入图片描述

2、定时器外部时钟使用

    红外循迹模块,可以检测黑白线的变化,并反映在DO引脚上,我们将改脚作为定时器外部信号,就可以对外部的变化实现计数。
在这里插入图片描述

2.1 ETR外部时钟模式1 配置、使用

2.1.1、配置

    1、选择定时器2的时钟源为ETR,可以看见右侧PA0引脚变成TIM2_ETR。所以我们将红外循迹模块的DO引脚接在PA0上即可。
    2、下面Clock Filter设置最大15,来解决在黑白线边界时带来的电平跳变、抖动。
在这里插入图片描述

    3、i2c1也打开,将计数值打印在oled上。
    4、保存生成代码。

2.1.2、coding

  OLED_Init();OLED_Clear();HAL_TIM_Base_Start(&htim2);int counter;char message[20];/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){counter = __HAL_TIM_GET_COUNTER(&htim2);sprintf(message,"counter:%d",counter);OLED_PrintString(0, 0, message);HAL_Delay(100);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

2.1.3、效果

    1、使用黑白线在红外循迹模块下来回晃动观察counter的变化。
在这里插入图片描述

2.2 ETR外部时钟模式2 配置、使用

    1、外部时钟模式2通道最终进入从模式控制机,需要借助从模式
在这里插入图片描述
    2、效果与之前一样。

2.3 TI外部时钟模式配置、使用在这里插入图片描述

定时器从模式???

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

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

相关文章

【Algorithms 4】算法(第4版)学习笔记 24 - 5.5 数据压缩

文章目录 前言参考目录学习笔记1:介绍2:游程编码 run-length encoding2.1:介绍2.2:Java 实现3:霍夫曼压缩 Huffman compression3.1:变长前缀码 variable-length codes3.1.1:介绍3.1.2&#xff1…

Nginx 基础应用实战 01 课程大纲与安装部署

Nginx 基础应用实战 01 目录 Nginx基础 版本区别与安装基础知识 Nginx安装部署http协议基础域名与dns 核心功能与应用场景 网站静态资源访问虚拟主机反向代理服务负载均衡rewrite软防火墙Tengine的扩展模块 实战:构建一个可供大家访问的静态网站 高级使用 核心配置…

【IC前端虚拟项目】验证环境方案思路和文档组织

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 对于mvu的验证环境,从功能角度就可以分析出需要搭建哪些部分,再看一下mvu的周围环境哈: 很明显验证环境必然要包括几个部分: 1.模拟idu发送指令; 2.模拟ram/ddr读写数据; 3.rm模拟mvu的行为; …

无缝集成:使用Spring Boot和Vue实现头像上传与回显功能

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

查询category的id存在于项目表中category_id_list的json array字段中

表category 表project 查询category的id存在于项目表中category_id_list的json array字段中。

Cmake学习笔记3

视频学习地址08-重命名和安装共享库_哔哩哔哩_bilibili 1、同时创建动态连接和静态连接库 SET_TARGET_PROPERTIES 这条指令可以用来设置输出的名称,对于动态库,还可以用来指定动态库版本和API版本 SET(LIBHELLO_SRC hello.cpp)ADD_LIBRARY(hello_sta…

4.11Qt

完善网络聊天室客户端实现 工程文件 QT core gui network 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket> #include<QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…

前端三剑客 —— JavaScript (第九节)

目录 内容回顾&#xff1a; 1.事件解除 2. Ajax jQuery选择器 回顾CSS选择器 CSS选择 1.基本选择器 2.包含选择器 3.伪类选择器 4.伪元素选择器 5.属性选择器 jQuery 库 jQuery 动画 系统动画 自定义动画 常见API操作 内容回顾&#xff1a; 1.事件解除 如果是使…

头歌-机器学习 第9次实验 随机森林

第1关&#xff1a;Bagging 任务描述 本关任务&#xff1a;补充 python 代码&#xff0c;完成 BaggingClassifier 类中的 fit 和 predict 函数。请不要修改 Begin-End 段之外的代码。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 什么是 Bagging&#xf…

李廉洋;4.11#黄金,WTI原油#行情走势分析策略。

美国银行预计&#xff0c;在今天召开的欧洲央行会议上不会有重大的政策变化&#xff0c;但欧洲央行正逐渐接近开始降息&#xff0c;尽管它采取的是一种谨慎的、依赖数据的方式。虽然欧洲央行对降息轨迹的信心不断增强&#xff0c;但降息的具体速度和幅度仍未公布&#xff0c;而…

QT系列教程(2) 创建项目和编译

新建Qt Widgets应用 我们启动qt creator 创建项目&#xff0c;选择Qt Widgets应用 接下来选择项目目录&#xff0c;项目名字就叫helloworld 构建系统选择qmake 我们创建一个名字为HelloDialog的类&#xff0c;继承于QDialog 构建套件选择你们安装的就行了&#xff0c;我这里选…

【LeetCode刷题记录】560. 和为 K 的子数组

560 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 示例 2&#xff1a; 输入&#xf…

负载均衡原理和负载均衡算法代码案例

由于在这个文本环境中无法直接绘制图形&#xff0c;我将尽量使用文字描述来详细解释负载均衡原理和算法&#xff0c;并提供一个简单的代码案例。但请注意&#xff0c;真正理解负载均衡和算法的工作最好通过查看图形化表示和可视化工具。 负载均衡原理 负载均衡是通过在网络架…

【leetcode面试经典150题】22. Z 字形变换(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

ELK及ELFK排错

目录 一、ELK及ELFK排错思路 1.1filebeat侧排查 1.2logstash侧排查 1.3ES、kibana侧问题 一、ELK及ELFK排错思路 1.1filebeat侧排查 第一步&#xff1a;排查filebeat上的配置文件有没有写错&#xff0c;filebeat的配置文件是yml文件&#xff0c;一定要注意格式。 第二步…

Day3-struct类型、列转行、行转列、函数

Hive 数据类型 struct类型 struct&#xff1a;结构体&#xff0c;对应了Java中的对象&#xff0c;实际上是将数据以json形式来进行存储和处理 案例 原始数据 a tom,19,male amy,18,female b bob,18,male john,18,male c lucy,19,female lily,19,female d henry,18,male davi…

python botos s3 aws

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html AWS是亚马逊的云服务&#xff0c;其提供了非常丰富的套件&#xff0c;以及支持多种语言的SDK/API。本文针对其S3云储存服务的Python SDK&#xff08;boto3&#xff09;的使用进行介绍。 …

男生裤子怎么选?5条永远不会出错的长裤分享

作为一名热衷于分享日常穿搭的博主&#xff0c;我在后台收到了很多粉丝的询问&#xff0c;大家都休息知道哪个品牌的裤子质量更好&#xff0c;而且风格能够适合男生。而且我注意到很多粉丝习惯于在网红直播间下单&#xff0c;对裤子的品牌以及基本品质并不够了解&#xff0c;所…

suno有了新对手udio炸裂音乐圈;又一个开源AI Devin 程序员;完全开源轻量级的文本到语音可生成特定说话者的风格

✨ 1: udio 由音乐和科技界重量级人物支持的强大 AI 音乐生成器&#xff0c;被称为音乐界的另一个 ChatGPT。 Udio 由前 Google DeepMind的研究院和工程师创立&#xff0c;得到了a16z的支持&#xff0c;总部在伦敦和纽约。 目前是一个免费的V1测试版产品&#xff0c;每个人每…

缺失msvcr110.dll要怎么处理?快捷的修复msvcr110.dll方法

当你在使用电脑进行工作或娱乐时&#xff0c;可能会突然遇到一个错误提示&#xff1a;“程序无法启动&#xff0c;因为电脑中缺失msvcr110.dll”。这样的情况不仅会打断你的活动&#xff0c;还可能带来一定程度的不便。面对这个在Windows操作系统中相对常见的问题&#xff0c;其…