自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 提交Git遇到“Failed to connect to 127.0.0.1 port 26561 after 2020 ms: Connection refused”的解决

可能因为之前使用过代理工具(如 VPN、 Shadowsocks,或像 Composer 这样的工具也可能设置代理),但后来代理服务被关闭或更改了,而 Git 的配置或系统环境变量中没有相应更新。通常是因为 Git 被配置了指向本地地址(127.0.0.1)和特定端口(26561)的代理,但该端口并没有程序在监听代理服务。你可以回想之前自己是怎么配置本地代理的,然后重新配置一遍本地代理。如果忘记了当时本地代理是怎么配置的,还可以使用方法二:取消本地代理。关闭终端后,这些变量可能会再次出现。

2025-11-04 10:12:38 440

原创 【杂谈】Gitee的使用方法

顺利将仓库克隆到本地后就会有一个被打了绿勾的文件夹,名字和Gitee仓库的名字一样。点击commit进入如下界面,在message栏中输入信息后点击commit。注意要先安装 git 再安装 Tortoise。在点击add后的框中选择ok进入如下界面。最后点击push即可。

2025-11-03 02:19:31 417

原创 【通信模块】蓝牙模块

本文介绍了蓝牙模块的基本概念、分类对比及配置方法。蓝牙模块作为无线通信组件,可实现设备间的短距离数据交换。文章对比了经典蓝牙、低功耗蓝牙和双模蓝牙的特性差异,重点讲解了通过AT指令配置HC-05蓝牙模块的具体步骤,包括进入AT模式、常用指令集和使用示例。此外,还说明了两个蓝牙模块互连通信的设置方法,以及当AT指令无响应时的检查步骤。内容涵盖了蓝牙模块从基础认知到实际应用的关键知识。

2025-10-26 13:23:26 1146

原创 【通信协议】串口、SPI和IIC通信协议小结

本文对比了UART、SPI和I²C三种通信协议的特性与应用场景。UART采用异步通信,简单可靠但速度较慢;SPI同步全双工传输,速度最快但引脚占用多;I²C仅需两根线支持多设备,但协议复杂速度较慢。选择时需考虑速度、引脚数量、设备规模等因素:高速选SPI,多设备选I²C,简单调试用UART,长距离通信可转换为RS-485标准。

2025-10-23 08:30:18 1315

原创 【通信协议】IIC总线

IIC协议是一种两线制(SCL时钟线和SDA数据线)的串行通信协议,支持多主从架构,通过地址寻址选择从设备。其核心时序包括起始条件(SCL高时SDA由高到低)、停止条件(SCL高时SDA由低到高)、数据传送(SCL低时写数据,高时读数据)和应答机制(每字节后跟随应答位)。硬件上需采用开漏输出模式并加上拉电阻。典型应用包括指定地址写(发送设备地址+寄存器地址+数据)和指定地址读(通过"写地址指针+读数据"两步实现)。协议规定0表示有效应答,从机地址可通过硬件引脚修改。该协议广泛用于低速设备

2025-10-22 00:09:41 875

原创 【通信协议】SPI总线

SPI(串行外设接口)是一种同步全双工串行通信协议,采用四线制(SCK、MOSI、MISO、SS)实现主从设备间的数据交换。其特点包括高速传输(可达几十Mbps)、无寻址机制(通过片选线选择从机)、无应答机制。SPI支持4种工作模式(由CPOL和CPHA决定时钟极性与采样边沿),常用模式0和模式3。硬件电路需注意从机未被选中时MISO必须保持高阻态。软件模拟SPI需实现时序控制、字节交换等核心功能。相比I2C,SPI具有速度更快、硬件更简单等优势,但需要更多信号线且不支持总线寻址。

2025-10-21 00:14:29 1106

原创 【通信协议】串口

本文介绍了串口通信的基本原理和实现方法,主要内容包括:1. 串口通信的基本概念,包括通信线路(TX、RX、GND)、关键参数(波特率、数据位、校验位等)和流控制方式;2. 串口通信的时序规范,详细说明数据帧的组成(起始位、数据位、校验位和停止位)及其电平状态变化;3. 软件模拟串口通信的实现方法,包括初始化、数据发送和接收的具体代码示例;4. 硬件串口在51单片机和STM32上的应用,涵盖初始化配置、数据收发功能实现,以及HEX数据包和文本数据包的处理方法。文章提供了完整的代码示例,适用于不同场景下的串口通

2025-10-20 09:05:30 1149

原创 【STM32F1标准库】代码——SPI通信

摘要 本文介绍了W25Q64串行Flash存储器的使用,包括其内部结构(页、扇区、块划分)、关键指令集(写使能、页编程、扇区擦除等)和操作流程(先擦后写、检查忙状态等)。详细阐述了软件模拟SPI时序的实现方法,包括引脚配置、字节交换逻辑及W25Q64驱动层函数(如扇区擦除、页编程)。同时对比了硬件SPI接口的配置流程,展示了如何通过STM32硬件SPI优化数据传输效率。核心要点包括:写操作前需使能并等待BUSY位清零,页编程不可跨页,以及硬件SPI的时钟配置与数据交换机制。

2025-10-18 23:27:40 770

原创 【STM32F1标准库】理论——SPI通信

SPI(串行外设接口)是一种高速全双工同步串行通信协议,采用四线制(SCK、MOSI、MISO、SS)实现主从设备通信。其特点包括无寻址机制、最高可达几十Mbps的传输速率,以及通过片选线选择从设备。SPI通信基于移位寄存器交换数据,支持四种工作时序模式(由CPOL和CPHA决定)。相比I2C,SPI具有速度更快、硬件简单等优势,但缺乏应答机制和寻址功能。SPI广泛应用于存储器、显示屏等高速外设,而I2C更适合中低速传感器等设备。使用时需注意主从设备模式匹配和片选信号管理。

2025-10-14 11:39:59 903

原创 【STM32F1标准库】代码——IIC通信

本文详细介绍了MPU6050六轴运动传感器的使用方法和I2C通信实现。主要内容包括:1. MPU6050基础介绍,包括常用寄存器功能、初始化流程和数据换算方法;2. 软件模拟I2C时序的实现,包括起始/停止条件、字节收发、应答处理等底层时序,以及MPU6050寄存器读写应用层实现;3. 硬件I2C接口的使用方法,包括STM32硬件I2C配置流程和MPU6050驱动实现。文章重点讲解了I2C通信中的关键时序细节和注意事项,并提供了完整的代码实现,可作为MPU6050传感器开发的实用参考。

2025-10-09 23:33:38 1093

原创 【STM32F1标准库】理论——IIC通信

《IIC通信协议详解》摘要: IIC是一种两线制串行通信协议,采用SCL时钟线和SDA数据线实现半双工通信。协议支持多主从架构,通过7位或10位地址寻址,包含起始/终止时序、数据收发和应答机制。硬件采用开漏输出和上拉电阻设计,确保总线安全。基本时序包括:SCL高电平时SDA跳变控制起止,低电平期间传输数据,每字节后需应答。实用时序分为指定地址写、当前地址读和复合的指定地址读(先写地址指针再读数据)。关键问题解答了应答信号逻辑、从机地址修改方法及复合读操作原理。该协议广泛应用于低速设备通信,具有结构简单、扩展

2025-10-09 01:11:35 987

原创 【FreeRTOS】第八课(2):互斥信号量(Mutex)

互斥信号量是一种特殊的二值信号量,具有优先级继承机制,可防止优先级反转问题。其特点包括:仅允许一个任务运行实现互斥操作,并能提升持有任务优先级至等待任务级别。执行逻辑中,低优先级任务获取互斥量后优先级被提升,确保高优先级任务不被阻塞。函数操作与普通信号量类似,包括创建(静态/动态)、删除、give/take等,但不可在ISR中使用。应用示例展示了两种典型场景:解决多任务优先级反转问题(通过优先级继承机制调整执行顺序)和保护共享资源(如IIC总线访问)。使用时需注意互斥量的获取和释放成对出现,确保资源正确释放

2025-10-04 11:58:04 411

原创 【FreeRTOS】第八课(1):信号量(Semaphore)

信号量是一种用于任务同步和互斥的计数机制,不涉及数据传输。通过take(获取)和give(释放)操作控制资源访问:当信号量为0时任务阻塞,优先级高的优先获取。与普通队列不同,信号量队列无需数据缓冲区,只有计数值和等待队列。二值信号量和计数型信号量分别用于互斥和资源计数。使用中需注意优先级反转问题,即低优先级任务可能阻塞高优先级任务。创建信号量时可静态或动态分配内存,并提供ISR(中断服务程序)专用操作函数。通过合理使用信号量能有效实现任务间的同步与互斥。

2025-10-03 23:28:33 1019

原创 【PID学习】PID算法改进

本文系统介绍了PID控制器的改进方法,主要分为三部分:1)积分部分改进:通过积分限幅防止饱和、积分分离消除大误差积分、变速积分动态调整积分速度;2)微分部分改进:采用微分先行避免目标突变干扰、不完全微分抑制噪声影响;3)输入输出改进:输出偏移增强小信号响应、输入死区避免微小误差波动。这些方法通过调整PID各环节作用,有效解决了传统PID存在的超调、振荡、响应慢等问题,提升了控制系统的稳定性和动态性能。

2025-10-01 18:44:39 1371

原创 【PID学习】位置式PID和增量式PID伪代码

本文介绍了PID控制器的两种实现方法。位置式PID通过定时中断获取传感器数据,计算当前误差、误差积分和微分项,输出控制量并进行限幅处理。增量式PID则在位置式基础上增加了上上次误差项,通过增量计算调整输出量。文章指出,PID三个参数需根据应用场景灵活选择:位置控制适合PD组合避免积分项导致的超调;速度控制则需要积分项补偿摩擦力。两种实现均采用定时器中断方式,确保控制周期T的精确性。

2025-09-30 17:10:15 485

原创 【PID学习】PID基本原理

本文介绍了PID控制算法的三个核心参数及其作用:比例控制(Kp)用于快速响应,微分控制(Kd)抑制振荡,积分控制(Ki)消除稳态误差。以无人机悬停为例,说明各参数的应用效果及不当设置的缺点。最后对比了位置式PID和增量式PID的特点:位置式直接输出全量控制值,增量式输出控制增量,后者能保持暂停时的控制状态。两种形式通过不同变量调节可实现不同特性,增量式更适合需要保持状态的执行机构。

2025-09-29 20:29:07 1243

原创 【杂谈】写代码一定要注意数据类型匹配

51单片机延时函数卡死问题分析:由于输入参数(unsigned int)与循环变量(unsigned char)类型不匹配,当输入值>255时导致变量溢出形成死循环。两种解决方案:1)统一变量类型;2)自定义延时逻辑。该问题警示了数据类型匹配的重要性,提醒开发者需注意变量范围的兼容性,避免因类型不匹配导致的程序异常。

2025-09-28 18:01:41 221

原创 【FreeRTOS】第七课(4):任务间的通信——一个设备的数据写入多个队列

本文介绍了一个基于红外遥控的多任务汽车游戏程序框架。程序分为游戏层和数据获取层:游戏层创建了3个汽车任务,每个任务通过队列接收红外遥控数据;数据获取层实现红外数据的采集、解析和分发功能,采用注册机制将数据同时发送到多个任务队列。该设计通过队列通信机制实现了任务间的解耦,使多个汽车可以独立响应不同的红外按键控制,同时保证了系统的可扩展性,其他游戏模块也可通过注册队列来获取红外数据。文中提供了详细的数据结构定义和任务处理函数实现代码。

2025-09-27 16:04:44 256

原创 【FreeRTOS】第七课(3):任务间的通信——使用队列集优化程序架构

本文介绍了解决I2C设备冲突的两种方法(互斥操作或双I2C)以及基于FreeRTOS队列集的多设备数据处理框架。主要内容包括:1. 解决屏幕与MPU6050共用I2C导致的通信问题;2. 队列集的工作原理及API函数说明(创建、添加队列、读取等);3. 实现实例展示了游戏应用中如何通过队列集整合红外遥控、旋转编码器和MPU6050三种输入设备的数据处理流程,包括各模块的队列创建、数据采集和句柄管理。这种架构降低了代码耦合性,提高了系统可扩展性。

2025-09-26 15:49:30 1088

原创 【FreeRTOS】第七课(2):任务间的通信——队列实验

本文介绍了FreeRTOS队列的使用方法,包括动态/静态创建队列、读写队列操作及工程应用。主要内容:1.队列创建方式:动态创建使用xQueueCreate(),静态创建使用xQueueCreateStatic();2.队列操作函数:包括普通/中断环境下的读写接口;3.工程应用示例:通过挡球板控制任务展示了直接读写队列和间接读写队列两种实现方式,后者通过中介队列处理复杂数据转换;4.混合控制方案:结合红外中断和旋转编码器的多输入控制实现。文中详细提供了各场景下的代码实现模板和参数说明。

2025-09-25 00:18:03 1360

原创 【FreeRTOS】第七课(1):任务间的通信——使用队列

本文介绍了多任务通信的三种方法:全局变量、环形缓冲区和队列。重点分析了环形缓冲区的工作原理,通过读写指针和计数值实现数据存取管理。详细讲解了队列通信机制,它是在环形缓冲区基础上增加了互斥和阻塞唤醒功能,适用于生产者-消费者模式。以流水线为例,说明了接收方B任务的执行流程:当产品到达时被唤醒处理,或超时后主动检查。队列实现了任务间的同步与资源管理,避免CPU资源浪费。

2025-09-21 22:33:07 728

原创 【FreeRTOS】第六课:同步与互斥

本文介绍了RTOS中任务同步、互斥和通信的实现方法及注意事项。在同步方面,使用全局变量作为触发条件存在缺陷,会导致CPU资源浪费,建议采用阻塞方法优化。互斥问题可通过禁止任务切换解决,但仍存在资源占用问题。通信的关键在于保证结果正确性。文章还详细讲解了volatile关键字的作用:防止编译器过度优化,确保对硬件寄存器和异步修改变量的正确访问,举例说明了其在内存映射寄存器和信号处理程序中的典型应用场景。这些技术要点对嵌入式系统开发具有重要意义。

2025-09-18 17:10:22 728

原创 【FreeRTOS】第五课:任务管理

任务就是函数,每一个任务都相当于一个独立运行的小main函数,由链表进行管理,在FreeRTOS操作系统中,将链表中存储的任务结构体称为任务控制块(TCB,Task Control Block)默认会创建出一个任务函数每一个任务函数在内存中都需要有自己的栈帧空间存储程序任务之间亦有优先级高低之别有动态和静态两种方法创建任务(使用函数)

2025-09-16 17:26:11 1056

原创 【C语言】深入理解指针(5)

文章摘要:sizeof是C语言操作符,用于计算变量或类型的内存占用(字节),不关注数据内容。strlen是库函数,统计字符串中\0前的字符数,依赖\0作为结束符。主要区别:sizeof是编译时计算的操作符,strlen是运行时执行的函数;sizeof计算内存大小,strlen统计字符数量;sizeof不依赖\0,strlen可能因缺失\0导致越界。两者在字符串处理中常被对比使用。

2025-09-04 21:28:21 333

原创 【C语言】深入理解指针(4)

本文介绍了回调函数的概念及其应用。回调函数是通过函数指针调用的函数,其地址作为参数传递并在特定事件发生时被调用。文章展示了回调函数的代码示例,并对比了使用与否的差异。第二部分探讨如何用回调函数模拟实现qsort功能,首先分析冒泡排序仅支持单一数据类型的局限性,接着介绍qsort函数支持任意类型排序的特性及其比较函数的实现方式。最后通过应用实例说明了整个回调流程的实现过程。

2025-09-04 20:50:48 1126

原创 【杂谈】2025电赛G题:扫频得到未知模型输出的幅值后如何判断它的滤波类型以及寻找-3db位置

文章摘要:本文介绍了一种通过扫频信号分析滤波器特性的方法。扫频是通过顺序改变信号频率并采集输出信号来获取系统响应。算法首先判断滤波器类型(低通、高通、带阻或带通),通过比较首尾点和极值点的关系确定;然后采用比较法寻找最接近-3dB的点,用数组存储截止频率位置。对于高低通滤波器只需一个截止点,带通/带阻需要两个点。文中提供了C语言实现代码,包含极值查找、阈值计算和滤波器类型判断等功能,可直接移植使用。算法通过比较当前值与历史值来确定最接近-3dB的点,具有较高的实用性和灵活性。

2025-09-01 11:18:42 443

原创 【FreeRTOS】补充:简明理解CPU、内存、Flash的执行关系和一些简单的汇编指令

本文介绍了计算机系统中CPU、内存和Flash的协作关系:CPU从Flash读取指令,通过寄存器与内存交互数据。重点解析了常见汇编指令:1)内存读写指令(LDR/STR及其变体);2)算术运算(ADD/SUB);3)比较指令CMP;4)跳转指令(B/BL)。内存被组织为可寻址单元,CPU通过指针访问,寄存器分为通用型和功能型(如esp/ebp管理栈帧)。这些基础机制构成了程序执行的核心框架。

2025-09-01 11:12:38 1142

原创 【C语言】深入理解指针(3)

本文系统梳理了C语言中指针相关的核心知识点,主要包括:1.字符指针变量与常量字符串的区别及使用方法;2.一维数组指针变量的创建、初始化和使用技巧,重点解析了其在二维数组打印中的优势;3.二维数组传参的本质探讨;4.函数指针变量的概念及应用;5.函数指针数组和转移表的实现方法,通过简易计算器案例展示了三种实现方式(常规方法、回调函数、转移表)。文章对指针在数组和函数中的应用进行了深入剖析,特别是对一维数组指针在二维数组处理中的优势做了详细论证,为理解指针的高级用法提供了清晰的思路框架。

2025-08-31 02:08:20 709

原创 【C语言】深入理解指针(2)

本文摘要:数组名本质上是数组首元素地址,但存在sizeof(数组名)和&数组名两个例外。指针可用于数组操作,数组传参本质是传递首元素地址。二级指针存储一级指针地址,指针数组存放指针并可模拟二维数组效果,但各数组地址不连续。函数内sizeof无法正确计算数组大小,建议提前计算并传入。

2025-08-30 00:10:55 800

原创 【C语言】深入理解指针(1)

本文系统介绍了C语言中指针的核心概念和使用方法。主要内容包括:1)内存划分与编址原理,将内存比作楼栋,地址对应房间号;2)指针变量定义与解引用操作,强调指针变量存储地址、*操作符访问数据;3)指针变量大小32位平台4字节、64位8字节;4)指针运算规则及const修饰符用法;5)野指针的成因与防范措施;6)指针实现传址调用的原理。通过生活化类比和代码示例,深入浅出地讲解了指针这一重要概念,为后续学习数据结构打下基础。

2025-08-30 00:10:22 5835

原创 【C语言】操作符详解

本文系统介绍了C语言操作符的分类与使用,包括算术、移位、位、赋值等11类操作符。重点讲解了二进制与进制转换方法、原码/反码/补码表示原理、移位和位操作规则,以及结构体成员访问等特殊操作符。同时阐述了表达式求值中的整型提升和类型转换机制,并说明了操作符优先级和结合性的重要性。全文通过具体示例演示了各类操作符的实际应用场景,为深入理解C语言运算机制提供了全面参考。

2025-08-29 11:43:14 827

原创 【C语言】递归

本文介绍了递归的概念、限制条件及具体应用示例。递归是函数自我调用的过程,通过将复杂问题分解为相似子问题来求解,需满足终止条件。文章以阶乘计算、整数逐位打印和斐波那契数列为例,详细说明递归实现思路、函数编写及执行过程,并通过图示推演展示递归流程。同时指出递归的缺陷:可能造成栈溢出和效率低下,建议对斐波那契数等计算采用迭代方式。最后强调递归虽简洁但需慎用,在效率和简洁性间取得平衡。

2025-08-29 07:56:22 986

原创 【C语言】函数栈帧的创建与销毁

文章摘要:本文介绍了函数调用过程中的栈帧管理机制。重点阐述了两个关键寄存器ebp(栈底指针)和esp(栈顶指针)的作用,以及函数调用时栈空间的开辟、初始化过程。详细说明了实参到形参的传递机制、函数执行时对栈空间的操作方式,以及通过eax寄存器带回返回值的原理。同时指出不同编译器在栈帧创建上存在差异,并解释了栈区(高地址向低地址)和堆区(低地址向高地址)的不同使用方向。最后描述了函数返回时通过锚点恢复调用位置的机制。

2025-08-28 15:29:54 460

原创 【C语言】函数

本文介绍了C语言函数的基本概念和使用方法。主要内容包括:1.函数的概念、组成结构(返回类型、函数名、参数、函数体)和编写示例;2.形参与实参的区别,数组作为参数的注意事项;3.函数的声明和调用的三种方式;4.库函数和头文件的作用;5.static和extern关键字的使用,重点说明static修饰局部变量和全局变量的区别,以及extern声明外部符号的作用。文章通过具体代码示例展示了函数的封装和复用优势,以及变量作用域和生命周期的相关概念。

2025-08-28 07:17:58 994

原创 【C语言】数组

本文系统介绍了C语言中数组的概念和使用方法。主要内容包括:一维数组的创建、初始化(完全/不完全)、访问方式(下标/循环)、内存存储特点及大小计算方法;二维数组的创建、初始化(含特殊形式)、行列访问方式及其连续存储特性。此外还介绍了C99标准中的变长数组和字符数组的特殊存储方式(含\0结尾)。文章通过形象的"背包格子"比喻帮助理解数组结构,强调了下标从0开始、内存连续存储、越界访问风险等关键知识点,并对比了sizeof和strlen在字符数组中的不同表现。

2025-08-27 17:34:39 878

原创 【C语言】分支和循环

本文介绍了C语言中的关系操作符、逻辑操作符、分支语句和循环语句。关系操作符包括6种比较运算符,逻辑操作符包含与、或、非三种。分支语句详细讲解了if语句的多种形式及其嵌套使用,以及switch语句的语法结构。循环语句部分涵盖了while、for、do...while三种循环结构,并介绍了break、continue、return和goto四种提前离开循环的方法。文章还特别说明了各语句的语法规则和使用注意事项。

2025-08-26 17:55:38 845

原创 【C语言】一些常见概念

本文摘要:该文档系统介绍了C语言编程基础知识点,包括32个关键字分类(数据类型、控制语句等)、ASCII码表特性、字符串存储规则(以\0结尾)、变量存储区域(栈/堆/静态区)及sizeof用法。重点讲解了输入输出函数:scanf的EOF判断、格式控制及注意事项;printf的格式化输出技巧(对齐、精度控制等)。同时解释了数据类型存储空间、循环输入实现、字符处理差异等内容,为C语言基础学习提供了全面的参考指南。

2025-08-25 08:41:09 962

原创 【STM32F1标准库】代码——定时器中的编码器接口

在使用结构体初始化时有时候不是所有参数都用得上的,同时为了防止没有给结构体所有变量赋值导致错误,建议使用XX_StructInit()函数赋默认值。当变量类型是uint16_t,0--会变成65534,将变量类型强转为int16_t后0--则变成了-1。对于一个寄存器来说,如果同时配置了多次只会保留最后一次的配置,所以功能代码的位置很重要。2.配置输入捕获通道1和输入捕获通道2对应的GPIO为输入模式。使用另一个定时器定时中断,读取前一个定时器测出的转速。使用一个定时器作为编码器接口测速。

2025-07-12 20:24:16 632

原创 【STM32F1标准库】理论——定时器中的编码器接口

1.Encoder Interface 编码器接口2.编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度3.每个高级定时器和通用定时器都拥有1个编码器接口,整个F1只有四个编码器接口资源,且定时器用于做编码器接口后就做不了其他的事情了4.两个输入引脚只能借用输入捕获的通道1和通道2单靠一组方波A,通过测量频率只能知道编码器的转速此时再输出一组方波B,可以人为规定A信号超前或滞后B信号90°分别代表正转或反转。

2025-07-11 09:38:49 370

原创 【STM32F1标准库】代码——定时器中的输入捕获

使用PWMI库函数快捷地配置两个通道,基本逻辑和方法一一致,只需要配置一个通道,库函数会自己将对应的另一个通道进行相反的配置(仅支持每个定时器中的CH1和CH2)所能测得最大频率 = 1MHz,但会存在误差(不是用于信号还原的奈奎斯特采样频率问题)配置一输入捕获通道采集总时间,另一通道采集某一电平时间(需将其配置为交叉输入)在测量频率的基础上使用两个输入捕获通道捕获同一个引脚的信号。想要将最小频率继续降低可以让PSC分频后的频率变低。想要将最大频率继续提高可以让PSC分频后的频率变高。

2025-07-10 07:06:08 601

HC-05蓝牙串口模块使用规格书(含指令集)

HC-05蓝牙串口模块使用规格书(含指令集)

2025-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除