STM32F407ZGT6定时器相关测试
结论:
- 20us以下的IO翻转操作,存在误差
- 输出比较定时器使能与禁用功能正常
- 输入捕获定时器使能与禁用功能正常
- 单通道输出比较、输入捕获均正常
- 多通道输出比较波形无干扰,但仍是存在20us以下的IO翻转操作存在误差
- 多通道输入捕获正常
一、单一通道基本功能测试(TIM5、CHANNEL1)
1、精度与定时器赋时长操作测试(TIM5、CHANNEL1)
- 测试方法: 在输出比较定时器的测试中断HAL_TIM_OC_DelayElapsedCallback中进行IO翻转和TimerSetNextTimeValue_FB(定时器重新赋时长:6us、10us交替赋值)操作。
预期结果: 产生周期为16us,占空比为62.5%的波形
实际结果: 周期 22us ,占空比:58.18%

结论: 误差过大,精度达不到,波形不准确
- 测试方法:在输出比较定时器的测试中断HAL_TIM_OC_DelayElapsedCallback中进行IO翻转和TimerSetNextTimeValue_FB(定时器重新赋时长:24us、40us交替赋值)操作。
预期结果: 产生周期为64us,占空比为62.5的波形。
实际结果: 周期:64us,占空比:62.5%

结论: 占空比正确,周期正确,通过对比可知,当翻转速度过快,例如进入10us以下的级别,会出现误差导致波形不准。
2、使能/关闭测试(TIM5、CHANNEL1)(TIM3、CHANNEL2)
- 测试方法: 在测试中断600us定时器中断中进行IO翻转,在600us定时器中断中对600us定时器中断进行禁用操作(每执行7个600us定时器中断禁用自身一次,其它时刻不进行中断禁用与使能操作)。在10ms中断中对600us定时器中断进行使能操作,并禁用10ms中断,即只执行一次。

结论: 使能与禁用功能均正常。
3、单通道输入捕获功能测试(TIM3、CHANNEL1)
-
测试方法: 单通道下降沿输入捕获对PWM测量进行验证(TIM5、CHANNEL1输出周期8ms,占空比为50%的PWM波;TIM3、CHANNEL1进行下降沿捕获)。
TIM5、CHANNEL1输出的PWM波形:
占空比:50%
周期:8ms

TIM3、CHANNEL1捕获中断中打印输出:

结论: 每两次捕获之间间隔8ms,输入捕获中断正常 -
测试方法: 基于以上实验,在第50次捕获关闭输入捕获中断
测试结果:

对应接口: Capture_FA_Disable();//关断输入捕获
结论: 中断在第50次停止,输入捕获关闭函数正常
- 测试方法: 单通道下降沿输入捕获对PWM测量进行验证(TIM5、CHANNEL1输出周期16ms,占空比为62.5%的PWM波;TIM3、CHANNEL1进行双边沿捕获)。
TIM5、CHANNEL1输出的PWM波形:
占空比:62.5%
周期:16ms

TIM3、CHANNEL1捕获中断中打印输出:

结论: 每两次捕获中断间隔分别是6ms、10ms,来回转变,总体上基本正常,但有几次存在1ms的误差
二、多通道干扰测试(TIM5、CHANNEL1)(TIM3、CHANNEL2)
1、输出比较定时器
- 测试方法: 使能两路定时器中断通道,定时器中断周期分别为6us和100us。在中断中分别对不同IO进行翻转,观察两中断同时触发时的相互影响。

结论: 看起来没啥问题,波形挺正常,除了6us级别的翻转有些误差
2、输入捕获定时器
- 测试方法: 由TIM5、CHANNEL1产生周期为8ms,占空比为50%的PWM波,双通道(TIM3、CHANNEL1)(TIM14、CHANNEL1)输入捕获对PWM进行测量。
TIM5、CHANNEL1输出的PWM波形:
占空比:50%
周期:8ms

TIM3、CHANNEL1捕获中断中打印输出:(上升沿捕获):

TIM14、CHANNEL1捕获中断中打印输出:(上升沿捕获):

结论: 每8ms进一次捕获中断,多通道输入捕获正常。
相关文章:
STM32F407ZGT6定时器相关测试
结论: 20us以下的IO翻转操作,存在误差输出比较定时器使能与禁用功能正常输入捕获定时器使能与禁用功能正常单通道输出比较、输入捕获均正常多通道输出比较波形无干扰,但仍是存在20us以下的IO翻转操作存在误差多通道输入捕获正常 一、单一通…...
群晖通过 Docker 安装 GitLab
Docker 配置容器步骤都是大同小异的,可以参考: 群晖通过 Docker 安装 Gitea-CSDN博客 1. 在 Docker 文件夹中创建 GitLab,并创建子文件夹 2. 设置权限 3. 打开 Docker 应用,并在注册表搜索 gitlab-ce 4. 选择 gitlab-ce 映像运行…...
1.Node.js环境搭建(windows)
一、环境搭建(windows) 1.1下载并安装 https://nodejs.org/dist/v18.20.4/node-v18.20.4-x64.msi1.2测试和查看版本 #cmd命令 node -v输出: #能正确输出版本号,说明安装成功 v18.20.41.3使用nodejs启动第一个js #hello.js console.log(hello world!…...
链上相遇,节点之间的悸动与牵连
公主请阅 1. 返回倒数第 k 个节点1.1 题目说明1.2 题目分析1.3 解法一代码以及解释1.3 解法二代码以及解释 2.相交链表2.1 题目说明示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析 1. 返回倒数第 k 个节点 题目传送门 1.1 题目说明 题目名称: 面试题 02…...
一些简单的编程题(Java与C语言)
引言: 这篇文章呢,小编将会举一些简单的编程题用来帮助大家理解一下Java代码,并且与C语言做个对比,不过这篇文章所出现的题目小编不会向随缘解题系列里面那样详细的讲解每一到题,本篇文章的主要目的是帮助小编和读者们…...
java计算机毕设课设—愤怒小鸟游戏(附源码、文章、相关截图、部署视频)
这是什么系统? 资源获取方式再最下方 java计算机毕设课设—愤怒小鸟游戏(附源码、文章、相关截图、部署视频) 基于Java的愤怒小鸟游戏,我们不仅复刻了原版游戏的核心玩法,还增加了一些创新元素。游戏以2D图形界面呈现,玩家需要…...
【ARM】MDK-Flex服务管理软件使用说明
【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录MDK网络版部署工具Imtools.exe 的各个界面中相关配置的功能说明 2、 问题场景 解决客户咨询,该服务管理软件如何使用,为客户使用服务管理软件后期自行维护增加一定指导作用。 3、软硬件环…...
【H2O2|全栈】WPS/Office系列有哪些好用的快捷方式?
目录 WPS/Office 前言 准备工作 Office通用快捷键 PPT快捷键 Excel快捷键 Word快捷键 结束语 WPS/Office 前言 本章节属于前端前置知识,即使不学习前端,在工作中掌握常见的WPS/Office办公技能也是十分重要的。在本篇中,我将会分享常…...
对比学习)
目录 概念 数据增强 损失函数 NCE(noise contrastive estimation) Info NCE CV上的发展 InstDisc InvaSpread CPC CMC MoCo simCLR MoCo v2 SimCLR v2 SwAV BYOL SimSiam MoCo v3 DiNO 概念 通过利用样本之间的相似性和不相似性&…...
第十六届蓝桥杯嵌入式真题
蓝桥杯嵌入式第十二届省赛真题二 蓝桥杯嵌入式第十三届省赛真题一 蓝桥杯嵌入式第十三届省赛真题二 蓝桥杯嵌入式第十四届省赛真题 蓝桥杯嵌入式第十四届模拟考试一 蓝桥杯嵌入式第十四届模拟考试二 蓝桥杯嵌入式第十五届模拟考试一 蓝桥杯嵌入式第十五届模拟考试二 蓝…...
音频转码常用命令
1.转码为wav8k16bit -v提高音量 pitch调高音调 speed调整语速 sox -v 2.0 input.wav -r 8000 output.wav pitch 50 speed 1.05 sox input.wav -r 8000 output.wav 只是转码,不提高音调语速 压缩文件:zip -r filename.zip file1 file2 file3 2.批量转…...
INNER JOIN、LEFT JOIN 和 RIGHT JOIN有什么区别?什么是自连接?
INNER JOIN、LEFT JOIN 和 RIGHT JOIN 都是多表连接的不同方式,它们的主要区别在于它们如何处理表之间不匹配的数据。下面分别介绍它们的区别。 目录 一.多表连接查询 INNER JOIN(内连接) LEFT JOIN(左连接) RIGHT…...
原型模式具体和直接调用构造函数创建实例的区别
原型模式与直接调用构造函数创建实例的区别主要在于创建对象的方式和使用场景。让我们一步一步来理解。 直接调用构造函数创建实例 这是我们通常使用的创建对象的方法。通过调用类的构造函数,传入必要的参数来初始化对象。每次都要通过构造函数为对象设置所有初始值…...
MySQL 数据备份与恢复指南
本文将介绍如何通过命令行对 MySQL 数据库进行备份与恢复操作,适用于日常开发和生产环境中的数据管理需求。 1. MySQL 数据备份 MySQL 提供了 mysqldump 工具来执行数据库的备份操作,可以备份单个数据库、多个数据库或整个数据库实例。 1.1 备份单个数…...
NGINX 保护 Web 应用安全之基于 IP 地址的访问
根据客户端的 IP 地址控制访问 使用 HTTP 或 stream 访问模块控制对受保护资源的访问: location /admin/ { deny 10.0.0.1; allow 10.0.0.0/20; allow 2001:0db8::/32; deny all; } } 给定的 location 代码块允许来自 10.0.0.0/20 中的任何 IPv4 地址访问…...
数据结构——顺序表的基本操作
前言 介绍 🍃数据结构专区:数据结构 参考 该部分知识参考于《数据结构(C语言版 第2版)》24~28页 补充 此处的顺序表创建是课本中采用了定义方法为SqList Q来创建,并没有使用顺序表指针的方法,具体两个…...
智能去毛刺:2D视觉引导机器人如何重塑制造业未来
机器人技术已经深入到各个工业领域中,为制造业带来了前所未有的变革。其中,2D视觉引导机器人技术以其精准、高效的特点,在去毛刺工艺中发挥着越来越重要的作用。本文将为您介绍2D视觉引导机器人技术的基本原理及其在去毛刺工艺中的应用&#…...
计算机系统的层次
目录 计算机系统的层次ISA(指令集体系结构) 计算机系统的层次 计算机硬件是基础指令集体系结构:将硬件的功能封装从指令供软件使用操作系统:提供人机交互界面、提供服务功能的内核例程语言处理系统: 语言处理程序&…...
一起搭WPF架构之LiveCharts.Wpf的简单了解与安装
一起搭WPF架构之LiveCharts.Wpf的简单了解与安装 前言LiveCharts.Wpf介绍LiveCharts.Wpf的安装总结 前言 根据项目需求,我单独留了一个界面用于进行数据分析。数据分析的内容考虑是采用图表的形式将SQLite数据库中存储的数据进行绘制成图,以便数据分析。…...
深度学习杂乱知识
阿达玛乘积(Hadamard Product)详解 1. 定义: 阿达玛乘积(Hadamard Product),又称为元素乘积或逐元素乘积,是指对两个维度相同的矩阵进行逐元素相乘的操作。 假设我们有两个维度相同的矩阵 ( …...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
