自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FOC中PLL的点乘法

ThetaErr = 常数 × sin(真实角度 - 估算角度)物理意义结果为正 → 猜的角度偏小 → 要增大结果为负 → 猜的角度偏大 → 要减小结果为零 → 猜对了 → 保持这就实现了一个角度追踪器注入信号探测用猜测角度计算误差根据误差方向调整猜测重复直到误差为0最终,即使我们一开始完全不知道转子在哪,也能通过这个闭环过程找到并跟踪转子位置。这就是高频注入无传感器控制的核心原理。

2026-03-22 23:03:12 341

原创 SWD协议中BANK机制详解

地址空间扩展:解决SWD协议地址线不足的问题寄存器组织:将寄存器按功能分组到不同BANK性能优化:常用寄存器放在BANK0,减少切换开销。

2026-03-18 17:24:17 199

原创 SWD读取AP寄存器完整流程

每次内存访问流程:DP SELECT选择AP → AP CSW配置 → AP TAR地址 → AP DRW数据。​ (Memory Access Port): 内存访问端口 (最常用)​ (JTAG Access Port): JTAG调试端口。​ (AHB Access Port): AHB总线访问。​ (APB Access Port): APB总线访问。AP通过DP SELECT寄存器选择,每个AP有唯一编号。: 访问端口,执行实际的内存/寄存器访问。: 通常为MEM-AP (内存访问)

2026-03-18 16:48:51 369

原创 SWD协议底层实现完全详解

A3=0,A2=0 → 地址0x0 (DP-IDCODE/ABORT)A3=0,A2=1 → 地址0x4 (DP-CTRL/STAT)计算公式:频率 = 1 / (2 × 延迟 × 时钟周期时间)A3=1,A2=0 → 地址0x8 (DP-SELECT)A3=1,A2=1 → 地址0xC (DP-RDBUFF)返回ACK=OK,idcode=0x1BA01477。奇校验:1的个数为奇数时校验位=1。每次接收1位,右移并放入最高位。ACK=0b111(协议错误)ACK=0b011等(保留值)

2026-03-16 20:48:55 649

原创 Keil下载时的具体指令详解

整个流程严格按照ARM Cortex-M调试架构设计,通过SWD接口精确控制目标芯片的每一个操作。每个DAP_Transfer命令都对应特定的调试寄存器访问,共同完成了从连接、算法加载、Flash操作到验证复位的完整下载过程。当您在Keil MDK中点击"Download"或"Load"按钮时,会触发一个完整的CMSIS-DAP协议通信流程。Keil点击下载时,通过CMSIS-DAP协议执行了。:约50-100次,用于寄存器访问和CPU控制。:约3-5次,用于连接和配置。CPU控制与Flash操作。

2026-03-16 10:33:01 350

原创 CMSIS-DAP协议关键命令完整数据包示例详解

每个字节都有其特定含义,整个协议栈设计精巧而高效。这个详细的数据包示例展示了CMSIS-DAP协议的关键命令的。调试DAPLink固件问题。0x40 (64字节)​ - 传输的数据内容。0x01 (1字节)​ - 标识操作类型。​ - 具体操作参数。​ - 补全64字节。

2026-03-15 23:15:42 411

原创 单片机调用 Init 算法的详细流程解析

这是整个下载流程中的部分。单片机如何调用一个从外部下载到RAM中的函数?我来详细拆解这个"魔术"般的流程。

2026-03-05 10:51:05 398

原创 Keil 点击 Download 后的完整下载流程详解

整个下载流程是一个高度优化和协调协议分层清晰智能错误处理: 多层重试和恢复机制性能优化: 块传输、流水线、智能缓冲通用性: 通过Flash编程算法支持多种芯片可靠性: 验证和错误检查确保编程正确这个流程使得 Keil 能够在几秒内可靠地编程数MB的固件,是嵌入式开发中不可或缺的核心技术。

2026-03-05 10:29:04 256

原创 FOC 无感 SMO

完整的FOC滑模观测器:包含SMO、PLL和状态机工程优化:饱和函数、自适应增益、相位补偿实时性:适合在单片机上运行可配置性:参数可调,适应不同电机鲁棒性:包含故障检测和保护机制注意:实际应用中需要根据具体电机参数调整增益,并通过实验验证性能。低速时可能需要配合高频注入等其他方法。

2025-12-29 20:21:23 510

原创 滑模观测器在FOC中的完整设计与实现:从理论到实践

这里的 S_α = 0 和 S_β = 0 就是两个滑模面。我们的目标就是让系统状态 (S_α, S_β) 被赶到这个"面"上去。一旦我们得到了平滑的 êα 和 ê解释atan2(y, x) 是四象限反正切函数它自动处理了象限问题返回值范围是 [-π, π] 或 [0, 2π]速度估计对位置微分但需要对位置信号进行滤波或平滑处理从反电动势幅值计算更直接,但需要知道准确的 ψ_f这个 θ̂_e 就是最终输出给FOC的转子位置估计值。你可以把整个过程想象成一个"电流跟踪游戏"游戏角色。

2025-12-29 17:28:58 1156

原创 FOC中角度不准带来的问题

转矩损失:与cos(Δθ)成正比效率下降:与1/cos²(Δθ)成正比电流谐波:与sin(Δθ)成正比。

2025-12-27 10:23:22 1067

原创 深度解析有刷直流电机电压方程:从理论到故障诊断的完整指南

有刷直流电机的电压方程U = E + IₐRₐ是其运行的核心数学模型。解释现象:理解为什么运行后性能下降预测性能:计算不同工况下的转速、电流、效率诊断故障:通过测量分析快速定位问题优化设计:指导电源选择、散热设计、材料选择关键要点回顾反电动势E反映转速状态,是天然调速器内阻Rₐ是损耗根源,温升使其增加效率η = E/U,优化目标是提高E、降低损耗运行后压降主因是Rₐ增加,有效驱动电压降低给工程师的建议设计时留有余量,考虑温升影响定期维护,特别是电刷和换向器测量分析结合理论,科学解决问题。

2025-12-07 18:26:01 1061

原创 SimpleFOC中setPhaseVoltage函数讲解

这个函数是 FOC(磁场定向控制)算法中的,它负责将旋转坐标系(d-q轴)下的电压指令Ud和Uq,通过​ 和 ​​ 处理,最终转换为驱动三相逆变器的信号。其目的是产生一个旋转的磁场,以精确控制电机的转矩和转速。下面是该函数主要信息的一个总结表,方便你快速了解:环节核心输入核心输出关键处理/公式目的​​UqUdangle_el(补偿后)或或计算归一化电压幅值,并确定电压矢量的准确角度。​​angle_el(补偿后)sector(1-6)将360度电气角度划分为6个扇区,确定电压矢量所在区域。

2025-09-23 09:28:05 887

原创 SimpleFOC中Move函数讲解

这个move函数是电机控制的核心,它根据设定的控制模式 (controller) 和新的目标值 (new_target),来计算并设置相应的控制量(电压或电流)。它通常用于磁场定向控制(FOC)​​ 系统中。

2025-09-23 09:14:47 729

原创 SimpleFoc中getAngle() 与getVelocity() 函数讲解

这两个函数是电机控制中非常核心的和模块,通常用于处理增量式编码器的信号。它们协同工作,为FOC(磁场定向控制)等高级算法提供关键的反馈信息。下面这张表格汇总了它们的核心功能、关键变量和主要特点,方便你快速建立整体概念:特性getAngle() (角度获取函数)getVelocity() (速度计算函数)​​获取电机轴的​(弧度)计算电机轴的​(弧度/秒)​​编码器原始计数 (当前角度 (getAngle())、时间戳 (_micros()​​float。

2025-09-23 09:09:09 1023

原创 Protel99SE快捷键

Protel 99SE 是一款经典的电路设计软件,熟悉快捷键能极大提高你的设计效率。下面我为你整理了一份详细的快捷键清单,并附上了一些学习建议。类别快捷键功能说明​​Enter选取或执行当前操作Esc放弃或取消当前操作F1启动在线帮助Tab启动浮动图件的属性窗口Ctrl + Z撤销Ctrl + Y重做Ctrl + C复制Ctrl + V粘贴Ctrl + X剪切Delete删除选中的对象Ctrl + S保存文件​​PageUp放大显示比例PageDown缩小显示比例End刷新屏幕V + D。

2025-09-22 16:02:50 1335

原创 STC15W4K56S4 单片机 PWM 功能详解与配置指南

STC15W4K56S4 是宏晶科技(STC)​​ 生产的一款基于增强型 8051 内核的高性能单片机。它不仅与传统 8051 指令集兼容,还大大提升了性能(1T 设计),并集成了丰富的外设资源,如大容量存储器、多路串口、ADC 以及本文的重点——高精度 PWM 模块。PWM (Pulse Width Modulation,脉冲宽度调制) 是一种通过调节脉冲的占空比来模拟不同电压值或控制能量输出的技术。

2025-09-22 15:33:02 1117

原创 STC8H 8051内核单片机开发(PWM)

例:24MHz系统时钟,PSCR=0(不分频),ARR=23999 → fPWM​=24MHz/24000=1kHz。例:ARR=1000, RCR=3 → 实际周期 = 1001×4 = 4004个时钟周期。例:24MHz系统时钟 + PSCR=23 → 计数时钟 fCK_CNT​=1MHz。例:ARR=23999,CCR=6000 → D=6000/24000=25%。​:在PWM翻转时插入短暂延迟,确保一侧完全关断后再开启另一侧。

2025-08-28 17:03:54 1187

原创 STM32 定时器(互补输出+刹车)

以下是一个基于STM32F103标准库实现的PWM互补输出+刹车功能的完整代码,使用高级定时器TIM1(支持互补输出和刹车功能)。代码包含详细注释和配置说明,适用于电机控制等场景。

2025-08-26 11:46:31 908 1

原创 STM32 定时器(PWM输入捕获)

以下是基于STM32标准库(以STM32F103为例)实现PWM输入模式(自动双沿捕获)的完整代码,通过配置定时器的,可自动捕获外部PWM信号的和,无需手动切换边沿。

2025-08-26 08:58:58 1074

原创 STM32 TIM_SelectInputTrigger()函数

其核心作用是将定时器的内部事件或外部信号映射为触发信号(TRGI),进而控制从定时器的计数行为(如启动/停止/复位等)。​:单信号同时触发两个通道,分别捕获周期(CCR1)和占空比(CCR2)。A:否,一次只能选择一个触发源,但可通过分时复用或组合模式实现复杂功能。​:信号上升沿触发CNT复位,CCR直接存储周期计数值,无需计算差值。触发源信号(TRGI)输入至定时器的从模式控制器,通过配置。A:改用普通输入捕获模式(手动记录两次捕获值差值)。​:主定时器更新事件触发从定时器计数,扩展定时范围。

2025-08-23 09:30:57 1373

原创 STM32输入捕获相位差测量技术详解(基于TIM1复位模式)

PA8下降沿 → 复位TIM1计数器 → PA9下降沿触发捕获 → CCR2值即为相位时间差。实测性能:在STM32F103C8T6上可稳定测量。相位差测量基于两个同频方波信号。​(10kHz方波)

2025-08-21 22:53:02 769

原创 STM32 TIM_CtrlPWMOutputs函数

是 STM32 标准库中用于​ 的关键函数,直接影响 PWM 信号是否有效输出。

2025-08-21 09:15:44 1003

原创 STM32 AFIO模块

想象AFIO模块是一个“智能交通管制中心”,负责协调STM32芯片内部外设(如串口、定时器)与物理引脚(如PA9、PB6等)的连接关系。通过精确控制AFIO时钟,开发者能最大化利用STM32有限的引脚资源,实现灵活可靠的硬件设计 🔧。许多人误以为“只要用到了复用功能(如PWM、UART)就要开AFIO时钟”,这是错误的!STM32的所有外设(包括AFIO)默认处于“断电”状态(时钟关闭)。没有电(时钟),管制中心无法工作,所有信号路由都会瘫痪。,解决硬件资源冲突问题。,使其寄存器可被读写。

2025-08-21 09:10:58 1432

原创 STM32 定时器(级联实现32位定时器)

在STM32F103微控制器中,通过将两个16位定时器级联为32位定时器,可显著扩展定时范围(最长可达数天)。

2025-08-20 09:53:21 1091

原创 STM32 定时器(主从模式实现 3路PWM相位差)

摘要:本文介绍基于STM32定时器硬件触发实现多路PWM相位同步控制的方法。通过配置主定时器(TIM1)输出基准PWM并作为触发源,从定时器(TIM2/3/4)采用门控模式,以不同的计数器初值实现精确相位差(如120°间隔)。关键点包括:主从定时器需同频同源、高级定时器需使能MOE、通过TIM_SetCounter()动态调整相位。该方法具有纳秒级精度,适用于三相电机驱动、RGB调光等场景,可减轻CPU负载。

2025-08-19 12:48:15 2162 2

原创 STM32 定时器(主从模式)

​:想象定时器是一个快递站长,TRGO 就是站长发出的指令广播——不同指令(触发源)会让其他外设(快递员)执行不同任务。​ 向其他外设(如其他定时器、ADC、DAC)发送同步信号。​:定时器作为“主设备”时,通过 ​。)、从设备触发使能(如 ADC 的。

2025-08-19 12:14:50 2095

原创 STM32 定时器(中断源)

通过合理选择中断类型并优化配置,可充分发挥STM32定时器的硬件效能,实现高可靠性实时控制系统。

2025-08-19 11:51:47 1403

原创 stm32 定时器(计数模式)

配置时需严格匹配硬件特性(如定时器类型)和任务需求(如波形对称性、中断频率),结合预分频器(PSC)与自动重载值(ARR)精细调整时序精度。三种模式均通过计数器。

2025-08-19 11:44:59 1654

原创 STM32 定时器(单脉冲模式)

为计数器时钟频率(定时器时钟经预分频后的频率)。

2025-08-19 11:03:23 2018

原创 STM32 定时器(输出模式)

STM32定时器的输出比较模式通过比较计数器(CNT)与捕获/比较寄存器(CCRx)的值,控制输出引脚(OCx)的电平状态。CNT < CCRx → 高电平;CNT > CCRx → 低电平;CNT < CCRx → 低电平;CNT > CCRx → 高电平;CNT ≥ CCRx → 低电平。CNT ≤ CCRx → 高电平。CNT ≥ CCRx → 高电平。CNT ≤ CCRx → 低电平。

2025-08-19 10:56:50 1365

原创 STC8G 8051内核单片机开发(内存分布)

STC8G系列单片机采用,程序存储器和数据存储器独立编址,物理和逻辑结构复杂但高效。

2025-08-15 10:49:57 968

原创 STC8G 8051内核单片机开发(寄存器速查)

(Bit5):ADC转换完成中断优先级。(Bit6):低电压检查中断优先级。(Bit3):外部中断1请求标志。(Bit2):外部中断1触发方式。(Bit1):外部中断0请求标志。(Bit0):外部中断0触发方式。(Bit5):ADC转换完成中断。(Bit3):定时器1中断优先级。(Bit1):定时器0中断优先级。(Bit7):定时器1溢出标志。(Bit6):定时器1运行控制。(Bit5):定时器0溢出标志。(Bit4):定时器0运行控制。(Bit7):PCA中断优先级。(Bit4):串口1中断优先级。

2025-07-17 10:53:49 1000

原创 STC8G 8051内核单片机开发(定时器)

寄存器,定时器 3 能高效完成定时、计数及 PWM 输出任务。​ 实现高精度 PWM、脉冲捕获或串口波特率发生器(需配置。,结合中断逻辑构建稳定时序控制框架。通过合理配置定时器0,可高效实现。STC8G定时器的核心能力在于。,以确保时序精度与稳定性。定时器 3 可结合 ​。

2025-07-04 01:58:06 1066

原创 STC8G 8051内核单片机开发(GPIO)

​。

2025-07-03 23:51:36 1155

原创 STC8G 8051内核单片机开发 (中断)

通过合理配置中断系统,STC8G可胜任电机控制、环境监测、多机通信等复杂场景。建议结合STC-ISP工具的 ​。​ 初始化寄存器,避免手动配置错误。​(0最低,3最高),通过组合 ​。

2025-07-03 23:17:52 1404

原创 STM32 CCR寄存器

​:CCR寄存器存储的是捕获瞬间的CNT值,而CNT的清零由硬件自动完成,与CCR无关。,可观察到PA8下降沿时CNT被清零,而CCR1的值保持不变直至下次捕获。用户代码中通过主从模式实现了。

2025-06-27 16:24:57 968

原创 STM32 定时器讲解

FPWM​=(PSC+1)×(ARR+1)Fclk​​占空比=ARR+1CCR​×100%:72MHz时钟生成1kHz PWM(占空比50%)→。

2025-06-19 15:58:28 1522

原创 STM32 串口寄存器开发

通过直接操作寄存器,串口通信延迟可降至1μs以内(比库函数快3-5倍),适用于电机控制、高速传感器等实时场景。

2025-06-18 19:43:42 2719

原创 STM32 GPIO 寄存器开发

若需使用PA13~PA15/PB3~PB4作GPIO,需禁用JTAG。I²C等总线场景,外部需接4.7kΩ上拉电阻。防止关键引脚(如复位脚)被意外修改。

2025-06-18 19:37:43 1604

空空如也

空空如也

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

TA关注的人

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