自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 问答 (1)
  • 收藏
  • 关注

原创 ESP32 HTTP OTA测试工作流程

你说得对,前面应该先强调。我重新整理一个完整的。

2026-09-23 10:48:33 301

原创 树莓派PICO Zephyrk调试下载出问题 openocd

* 注意openocd版本问题,要用树莓派官方定制的这个版本的openocd, 不是openocd官网版本就可以了 **

2026-09-19 15:54:39 56

原创 解决WSL USB 串口连接问题与linux串口权限问题

WSL 2 运行在独立的轻量级虚拟机内,默认无法直接访问 Windows 宿主机的物理 COM 串口。,已原生支持常见的 USB 转串口驱动(CP210x、CH340、FTDI 及 CDC-ACM)。工具,通过 USB/IP 协议将 Windows 的物理 USB 串口穿透挂载到 WSL 2 中。挂载完成后,在 VS Code 底部状态栏点击 ESP-IDF 的串口图标,将其切换为。),即可直接在 WSL 内执行编译、烧录和打开 Monitor。:在 WSL 终端中运行。:在 WSL 终端运行。

2026-09-18 10:45:01 125

原创 Raspberry PICO的PIO介绍

RP2040 PIO = 8个独立的小型硬件IO处理器,可以脱离CPU运行,用125MHz级时钟精准控制GPIO。指令速度:约125MHzGPIO翻转:约60MHz数据流配DMA:几十MB/s级别可以用软件定义硬件外设,并且时序完全确定。这也是为什么 $4 的 Pico 能做 VGA、逻辑分析仪、高速协议解析等很多 STM32 普通型号不方便做的事情。

2026-09-17 15:42:11 177

原创 DIY制作Raspberry Pi Debug Probe

你这个疑问非常对。你贴的这篇官方文档主要讲的是**“使用已经买来的 Raspberry Pi Debug Probe”**,所以它没有重点写:“如何把一块普通 Raspberry Pi Pico 刷成 Debug Probe”但是实际上,只是官方文档把这部分放到了 GitHub 仓库里。

2026-09-17 15:33:04 157

原创 Zephyr 调试工具

有,而且。如果你熟悉 FreeRTOS 那套:J-Link + GDB + SystemView + RTT + Tracealyzer + CPU/Task/Stack 分析那么 Zephyr 基本都有对应方案。很多是 SEGGER、Percepio、GDB/OpenOCD 等工具和 Zephyr 集成。

2026-09-16 16:35:13 88

原创 MCU程序编译开发工具链

可以。你现在把搞明白,后面不管是,基本都能套这个框架。我先给你一张,然后逐层拆开。

2026-09-14 16:16:54 218

原创 GDB和openocd介绍

GDB = “老板”:我要停CPU、看变量、单步OpenOCD = “翻译”:把老板的话翻译成SWD操作J-Link = “司机”:真的把这些操作送到MCUSWD = “道路”MCU = “目标机器”VS CodeGDBOpenOCDJ-LinkSWD就不要把它们混在一起了。尤其是 OpenOCD,它本身不等于 J-Link,也不等于 CMSIS-DAP;它是运行在 PC 上、负责连接 GDB 和底层 Debug Adapter 的软件。

2026-09-14 16:13:46 197

原创 直流有刷永磁电机的反电动势波形

有刷直流电机反电动势信号波形显示为直流信号。

2026-08-28 20:40:05 24

原创 电机AB相编码器信号波形图

2026-08-28 19:58:31 174

原创 ESP32分区表

分区角色比喻Bootloader电脑的BIOS/UEFI,负责开机自检和加载系统硬盘的分区表(MBR/GPT),告诉系统每个盘在哪nvs电脑的CMOS/注册表,存配置参数otadata双系统启动菜单(GRUB),记录下次进哪个系统phy_init显卡/网卡的固件校准数据factory出厂预装的操作系统(C盘)ota_0第二个系统分区(D盘),升级时装新系统ota_1第三个系统分区(E盘),下次升级用,交替轮换✅可以改,但有前提内置的不能直接改大小。

2026-08-25 12:25:43 252

原创 Git rebase介绍

会保留分叉痕迹,历史图会有岔路,代码效果没问题,就是提交图看着乱一点。你本地拉完之后,本地main到C,你切到自己分支开发,做了本地提交E。如果 rebase 过程冲突:改文件 → git add →。你本地:A‑B‑C‑E;远程已经跑到 A‑B‑C‑D。不去rebase,直接把main合并进你的分支。,直接快进合并,历史一条直线,没有分叉。“把我写的E,拿下来,贴到D的后面”。,ID和原来E不一样,内容逻辑不变。远程多了D,你本地在C基础写了E,远程origin/main。

2026-08-17 15:55:15 251

原创 FOC-PWM单向递增模式-无刷电机PWM波形图

2026-08-16 14:26:26 217

原创 无刷电机三相霍尔测波形

2026-08-15 00:07:00 47

原创 C++在C语言基础上加了什么?

你说得对,我刚才理解偏了。你问的是,不是 C++ 里的“++ 运算符”概念。a ++;表示:a 增加 1所以C++它不是“两个 C”,也不是“C 加一个模块”。

2026-08-07 12:30:57 261

原创 FOC PID速度环

针对你目前的波形情况,FOC 速度环 P 和 I 的调整可以总结为“先降 P 稳住底盘,后加 I 补齐缺口”。

2026-08-07 10:38:47 154

原创 FOC无刷电机电压方程

平衡车SPMSM,控制全程使用dq方程;电流环PI输出基础电压,稳态方程用来计算前馈电压做解耦,消除交叉耦合震荡;当计算出需要的ud2uq2Umaxud2​uq2​Umax​→ 触发弱磁,减小idi_did​(往负方向拉);转速很低时ωe\omega_eωe​≈0,交叉耦合(R_s i_d、R_s i_q)反电动势项很小,前馈不加也能转;高速不加前馈电流环极易不稳定;

2026-08-04 14:27:03 191

原创 STM32的缓存Cache

内核Cache情况Cortex-M3通常无CacheCortex-M4可无,也可有厂商加速STM32F103无CacheSTM32F407ART指令缓存/预取,不是完整DCacheCortex-M7真正I/D Cache不是Cortex-M4突然支持Cache,而是ARM只定义了内核接口,芯片厂商可以增加自己的存储加速结构。

2026-08-04 11:39:28 297

原创 STM32 IIC HAL库,LL库

STM32 HAL I2C 库其实是一个的封装。理解它以后,你之前说的“”这个思路,基本就是 HAL 库内部干的事情。我以 STM32F1/F4/G4 常见 HAL I2C 为例拆开讲。

2026-08-04 11:08:27 309

原创 FOC电角度为什么要零点校准?

你这个问题问到了。

2026-08-04 09:26:52 234

原创 IMU数据处理的流程(原始数据->零漂校准->数据滤波->四元数计算得出欧拉角)

适用:STM32 / ESP32 / 普通32位MCUIMU:6轴(加速度计+陀螺仪,如MPU6050、ICM42688)流程:原始数据读取 → 零偏校准 → 一阶低通预处理 → Mahony AHRS融合输出四元数 → 四元数转欧拉角坐标系约定(行业通用)X:右,Y:前,Z:下roll(绕X)横滚,pitch(绕Y)俯仰,yaw(绕Z)偏航⚠️6轴IMU yaw会漂移,想要稳定航向必须加磁力计扩展9轴。

2026-08-03 15:21:55 271

原创 FOC不做零点角度校准的弊端

项目没校准影响SVPWM输出可以正常六步换向可以开环V/F可以速度读取可以速度环勉强FOC电流环严重影响Id=0控制基本不可信最大转矩下降效率下降高速稳定性差对于你现在这个ESP32 + AS5600 + 自研FOC电角零点校准不是锦上添花,而是FOC闭环成立的基础条件之一。AS5600机械角方向电角offsetSVPWM αβ方向Uq正负方向这四个统一起来。这个比调PI重要得多。你之前电流环调不顺,很可能根源就在这里。

2026-08-03 12:10:04 225

原创 电角度零点校准方法(正反转平均法)

但是!因为机械角也是周期。359°1°平均:180°炸。必须:圆平均。if(avg<0)

2026-08-03 10:56:32 372

原创 BLDC无刷电机三相反电动势波形图

2026-07-31 23:13:22 157

原创 中值滤波+一阶低通滤波数据效果展示

2026-07-30 17:14:29 226

原创 FOC硬件电路设计

整块板严格划分四大独立区域,

2026-07-21 16:53:17 364

原创 机器人学和四元数

2026-07-17 21:43:01 206

原创 volatile关键字原理解释

STM32里不加volatile、被编译器缓存的变量,只会存在 **CPU通用寄存器 R0R12**,绝大多数场景优先占用R0/R1/R2/R3;volatile强制每次访问都从SRAM/外设内存重新加载,禁止长期把值锁在R0R12里复用。需要我给你一段可直接编译的代码,对比加/不加volatile的完整反汇编,直观看到寄存器加载差异吗?

2026-07-17 17:59:06 159

原创 PWM+DAM发送协议数据的原理

CPU提前把数据编码成一串PWM占空比数组,Timer负责产生固定频率的PWM波,Timer每个周期触发DMA,DMA自动把下一次PWM比较值写入CCR寄存器,从而连续输出高速编码波形。你之前做的DShot600、900ns周期PWM通信,实际上就是这个架构。TIM1 PWMCCR1就是非常经典的实现方式。如果你继续深入,可以再理解一下为什么DMA必须挂在TIM Update事件,而不是PWM输出事件,这个是很多人第一次写DShot DMA时最容易踩坑的地方。

2026-07-16 11:26:11 209

原创 如何使用MCU-timer PWM解析dshot600协议?

这个方案比传统 UART 解码更稳,也比 EXTI 中断可靠得多,是 MCU 接收 DShot600 的标准做法。

2026-07-07 12:15:12 171

原创 IMU右手坐标系

X:车头前进方向+Y:车体左侧+Z:车体上方+Z 上↑+Y 左 ←------●------→ +X 前绕 X 轴转:Roll 横滚绕 Y 轴转:Pitch 俯仰绕 Z 轴转:Yaw 偏航Pitch 俯仰角也就是车子前后倒的角度。这个角度通常和绕 Y 轴的旋转关系最大。

2026-05-17 12:52:10 460

原创 经典标识TAG

【代码】经典标识TAG。

2026-04-13 00:48:29 42

原创 ST7701和ST7701S区别

项目ST7701ST7701S发布时间老新接口支持RGB/MIPI更完整功能基础更丰富功耗优化一般更好初始化方式固定可存储(OTP)应用早期屏现在主流👉ST7701 vs ST7701S:差别不大,关键是初始化参数不同。

2026-04-11 23:50:00 673

原创 显示屏关键参数

分辨率(决定UI空间)尺寸(决定物理大小)接口(SPI / RGB)显存/带宽(ESP32能不能带动)👉 色深解决“细不细腻”👉 色域解决“艳不艳”如果你愿意,我可以帮你:👉针对你那块ESP32 RGB屏,设计一套“不会翻车的UI配色方案”(很多人UI丑,其实是被硬件限制坑了 😄)

2026-04-11 22:58:12 1828

原创 ST7701S 3.5寸显示屏

HSYNC 行同步:画完一行,换行VSYNC 场同步:画完一屏,刷新CLK:画每一个小点DE:告诉屏幕现在是不是有效画面区域如果你愿意,我可以给你画一张时序图,一眼看懂三者怎么配合。

2026-04-11 22:50:27 698

原创 IMU传统矩阵变换方式计算欧拉角

如果需要更高精度和更复杂的融合,你可以考虑使用卡尔曼滤波来对加速度计和陀螺仪的数据进行融合,尤其适合需要在动态环境中提高精度的情况。其中,( a_x ), ( a_y ), 和 ( a_z ) 分别是加速度计输出的X、Y、Z轴的加速度值。简而言之,利用IMU的加速度和角速度数据来计算欧拉角的关键是通过滤波和积分来处理数据,得到精准的姿态估算。是一种简单且有效的方式,它将加速度计的低频信号(低噪声)和陀螺仪的高频信号(高精度)进行融合。加速度数据可以用来估算设备的俯仰角(Pitch)和滚转角(Roll)。

2026-02-06 15:27:42 450

原创 ST LSM6DSO IMU芯片介绍

高集成度:在一个紧凑的封装内集成了3轴加速度计和3轴陀螺仪。高性能与低功耗:支持多种工作模式(如高性能模式、正常模式、低功耗模式),用户可根据应用需求在性能和功耗之间灵活权衡。丰富的嵌入式功能:内置了多种实用的可编程逻辑,无需主机处理器持续干预,显著节省系统功耗。这些功能包括:计步器:用于活动和健康追踪。手势检测:如倾斜检测、自由落体检测、唤醒检测、单击/双击识别。有限状态机(FSM):用户可编程的逻辑,用于创建自定义的运动识别算法。先进的接口和数据处理传感器集线器(Sensor Hub)

2026-01-23 10:07:00 1353

原创 neovim 配置C/C++的环境

gd。

2026-01-16 11:52:19 996

原创 keil项目生成反汇编程序地址的文件

在Object.axf 文件夹内,执行此命令,或者写个bat脚本。

2025-11-07 11:20:17 183

原创 MCU Timer定时计算案例

项目值定时器输入时钟240 MHz计数频率240 MHz计数周期(每个 tick)4.17 ns自动重装载值 ARR48溢出周期(中断周期)≈ 204 ns溢出频率≈ 4.9 MHz。

2025-11-03 10:27:02 484

个人AD PCB设计规则

个人AD PCB设计规则

2026-10-03

DIY制作Raspberry Pi Debug Probe

DIY制作Raspberry Pi Debug Probe

2026-09-17

嵌入式软件开发-设备分层驱动方法.pdf

嵌入式软件开发-设备分层驱动方法.pdf

2025-09-16

ICM45686-IIC linux 应用层驱动demo

需要加载到内核层驱动才可以

2025-08-13

AW2013-Linux-Driver-example

AW2013-Linux-Driver-example

2025-07-28

LED驱动芯片-【电子元A器件】AW2013W三通道LED驱动器:2I2C兼容接口与0智能1呼吸模式设计及应用3

内容概要:AW2013是一款支持I2C接口的3通道智能LED驱动器,能够为每个LED提供恒流输出,最大电流可达15mA,并支持4级电流调节。它支持直接PWM控制模式和一键编程模式,具有256级PWM调光功能。AW2013还支持淡入淡出效果,适用于手机、手持设备及家电中的LED驱动。其I2C接口兼容1.8V/2.8V/3V电压,最高工作频率为400kHz,默认I2C地址为45h,可通过配置寄存器修改。此外,AW2013内置LDO和振荡器,工作温度范围为-40℃至85℃,采用2mm×2mm的DFN-10L封装。 适合人群:电子工程师、嵌入式开发人员以及对LED驱动器设计有兴趣的技术人员。 使用场景及目标:①用于手机、手持设备及家电中的LED亮度控制;②通过I2C接口实现多通道LED的精确控制;③实现LED的淡入淡出效果及呼吸灯效果;④通过编程实现不同亮度和颜色的变化。 其他说明:AW2013支持两种工作模式:PWM控制模式和一键编程模式。PWM模式下,可以通过设置PWM寄存器来调节亮度;一键编程模式下,可以配置呼吸周期的时间和重复次数。此外,AW2013还提供中断引脚INTN,用于通知主控设备操作完成。寄存器配置灵活,支持多种功能设置,如电流等级、亮度控制、呼吸效果等。文档还提供了详细的封装信息、推荐焊盘布局及回流焊曲线,便于实际应用中的硬件设计。

2025-07-28

C/C++ 代码格式化配置文件结合者 vscode clang-format 使用,在项目根目录下 新建个这个文件

C/C++ 代码格式化配置文件结合者 vscode clang-format 使用,在项目根目录下 新建个这个文件

2025-07-23

MIPI-CS2的资料

MIPI-CS2的资料

2025-05-07

USB-mouse-hid-complete-enum.pcapng

USB HID 类 鼠标 完整的通信数据枚举过程

2025-04-16

USB-mouse-HID-enumeration.pcapng

USB HID 类 鼠标的枚举信息

2025-04-16

HardFault 定位方法

内容概要:本文档详细介绍了ARM Cortex-M系列处理器中HardFault异常的定义、常见原因及其定位方法。HardFault是ARM Cortex-M核的一种硬件异常反馈机制,通常由非法内存访问、堆栈溢出、未定义指令、总线错误、异常处理失败及浮点运算错误等原因引发。文档通过具体案例分析,展示了如何通过半自动和手动方法定位HardFault问题的位置。特别是通过调试工具设置断点、单步执行、检查寄存器值及栈回溯等技术手段,帮助开发者快速找出问题根源。; 适合人群:嵌入式系统开发人员,尤其是从事ARM Cortex-M系列微控制器开发的技术人员。; 使用场景及目标:①帮助开发人员理解HardFault异常的原因及其影响;②提供具体的定位方法,如半自动定位方法和手动定位方法,帮助开发人员快速解决HardFault问题;③通过实际案例演示,提升开发人员的故障排查能力。; 阅读建议:此文档不仅提供了理论知识,还结合了实际案例,建议读者在阅读时结合自己的开发环境进行实践操作,同时参考附录中的手动定位方法,以便更好地掌握HardFault问题的定位技巧。

2025-04-16

hardfault 分析方法

hardfault 分析方法

2025-04-16

树莓派PICO keil example project

树莓派PICO keil example project

2025-04-14

树莓派PICO keil包

树莓派PICO keil包

2025-04-14

树莓派PICO debugprobe 烧录成CMSIS DAP link的固件

树莓派PICO debugprobe 烧录成CMSIS DAP link的固件

2025-04-06

Arm Compiler 5.06 update 7 (build 960) Lin32

Arm Compiler 5.06 update 7 (build 960) Lin32

2025-03-13

keil arm5编译器工程向arm6转变

keil arm5编译器工程向arm6转变

2025-03-13

arm嵌入式编译器,keil使用的,linux版本

arm嵌入式编译器,keil使用的,linux版本

2025-03-12

arm嵌入式编译器windows版本

arm嵌入式编译器windows版本,就是keil所使用的编译器

2025-03-12

eclipseCDT&&python&&maketools&&arm-compile-tools

eclipseCDT&&python&&maketools&&arm-compile-tools

2025-03-18

PICO 开发入门教程 && C/C++ SDK文档

PICO 开发入门教程 && C/C++ SDK文档

2025-03-14

Getting started with Raspberry Pi Pico-series

C/C++ development with Raspberry Pi Pico-series and other Raspberry Pi microcontroller-based boards. 2024-10-15: b6018e-clea

2025-03-14

Raspberry Pi Pico-series C/C++ SDK

Libraries and tools for C/C++ development on Raspberry Pi microcontrollers

2025-03-14

阅读LINUX内核源码的工具

阅读LINUX内核源码的工具

2025-02-07

RGB IR图像同步核心

RGB IR图像同步核心

2025-01-24

uIP协议栈在DSP声信号采集阵列上的应用.pdf

uIP协议栈在DSP声信号采集阵列上的应用

2024-09-30

gcc+makefile你必须懂得前提知识

gcc大概的编译流程

2024-05-02

git 入门学习笔记专对新手

git 入门学习笔记专对新手

2024-04-27

ARM-Keil Studio for VScode externsion

ARM-Keil Studio for VScode externsion

2023-08-17

ARM-常见汇编指令大全

下载这个文件 在VSCODE中直接使用搜索指令就可以查找某条指令的意思了

2023-03-12

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

TA关注的人

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