自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 电源管理—实现低功耗

这个函数有两个输入参数,分别用于控制调压器的模式及选择使用WFI或WFE停止,代码中先是根据调压器的模式配置PWR_CR寄存器,再把内核寄存器的SLEEPDEEP位置1,这样再调用WFI或WFE命令时,STM32就不是睡眠,而是进入停止模式了。”和“__WFE();要注意的是进入停止模式后,STM32的所有I/O都保持在停止前的状态,而当它被唤醒时,STM32使用HSI作为系统时钟(8MHz)运行,由于系统时钟会影响很多外设的工作状态,所以一般我们在唤醒后会重新开启HSE,把系统时钟设置回原来的状态。

2026-04-13 22:28:30 68

原创 Git & TortoiseGit

为了演示冲突场景,需要新建另外一个目录,然后拉取远程仓库,在测试文件01.txt 中添加一些内容,需要提交到本地版本库,接着push 远程仓库。与此同时,在别的仓库也是修改 ”测试文件01.txt“ ,添加内容,需要提交到本地版本库,接着push 远程仓库。当文件添加到本地版本库后,就可以推送给远程仓库了,右键点击push , 弹出框后ok即可。有时候,不想上传某些文件到版本库中,就需要用到 git 的忽略功能了,新建一个文件。在刚才建立的仓库下,新建立一文件,这里的其他文件,是我码云上面的(不用管)

2026-04-12 20:27:58 232

原创 Visual Studio 与 Visual Studio Code 区别

【代码】Visual Studio 与 Visual Studio Code 区别。

2026-04-11 22:57:07 1357 1

原创 CAN FD扩展帧

CAN FD的29位ID不仅仅是"地址",更是协议的载体。通过位域划分,可以在ID中编码丰富的语义信息。

2026-04-10 20:48:13 482

转载 ECAT_CiA402

ECAT_CIA402示例演示使用ESC外设, 基于ETG从站协议栈代码(SSC)实现CANOPEN CiA402协议控制电机的功能。

2026-04-09 21:39:25 148

原创 IntelliSense 无法正常工作

在VSCode中进行C++开发时,IntelliSense无法正常工作的原因可能与项目配置有关。首先需要检查`c_cpp_properties.json`文件是否正确配置。对于大型代码库或复杂构建系统,IntelliSense可能会因性能瓶颈而失效。尝试简化项目结构,移除不必要的依赖项或临时注释掉部分头文件引用。除了配置文件外,还需要验证开发环境中的相关组件是否正常运行。

2026-04-08 21:23:03 105

原创 MinGW下载

是把 GCC 移植到 Windows 的一个项目,让你可以在 Windows 上使用 GCC 编译器来生成 原生 Windows 可执行程序(.exe)。它使用 Windows 的 C Runtime(msvcrt.dll)而不是 POSIX。功能有限,不再活跃维护。是 MinGW 的增强版,由另一个团队开发,支持 64 位和 32 位 Windows 程序,还支持更多的 Windows API。它集成了 GCC(Windows 版本)+ Windows API 头文件和库 + POSIX 兼容层(可选)。

2026-04-07 21:27:26 242

转载 电机控制stm32定时器详解

定时器(Timer)最基本的功能就是定时了,比如定时发送USART数据、定时采集AD数据等等。如果把定时器与GPIO结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以生产输出波形。定时器生产PWM控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解。STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器,还有2个看门狗定时器。看门狗定时器不在本章讨论范围,有专门讲解的章节。控制器上所有定时器都是彼此独立的,不共享任何资源。

2026-04-06 21:00:55 91

转载 编码器的使用

上一节提到了增量式编码器倍频技术可以扩展M法的测量范围,那么现在我们就来讲解下这个M法究竟是怎样测速的,以及简单介绍一些常用的编码器测速方法。对于电机转速的测量,可以把增量式编码器安装到电机上,用控制器对编码器脉冲进行计数,然后通过特定的方法求出电机转速,常用的编码器测速方法一般有三种:M法、T法和M/T法。M法:又叫做频率测量法。这种方法是在一个固定的定时时间内(以秒为单位),统计这段时间的编码器脉冲数,计算速度值。

2026-04-05 20:15:00 63

转载 编码器详解1

编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线运动时的位移位置或速度等信息, 并将其转换成一系列电信号。编码器是工业中常用的传感器之一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景, 包括工业控制、机器人、照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。编码器可以根据不同的方式分出很多种类型。例如根据检测原理,可分为光学式、磁式、感应式和电容式。根据内部机械结构的运动方式,可分为线性编码器和旋转编码器。

2026-04-04 21:58:21 134

原创 Clark 变换与反 Clark 变换

Clark 变换(又称为 3/2 变换)是电机控制(尤其是 FOC 磁场定向控制)中的基础数学工具,用于将三相静止坐标系(A-B-C)中的变量变换到两相静止坐标系(α-β)中。将三相电流/电压 分解为两个垂直分量:i_α:与 A 轴对齐i_β:超前 i_α 90°前提条件:三相平衡系统满足 标准形式:i_α = i_ai_β = (i_a + 2i_b) / √3或写成矩阵形式:[ i_α ] [ 1 -1/2 -1/2 ] [

2026-04-03 22:25:43 811

原创 pid知识点速记

PID 的核心是通过三个环节,对系统误差进行闭环调节,公式如下:u(k)=Kp​e(k)+Ki​∑j=0k​e(j)+Kd​[e(k)−e(k−1)]

2026-04-02 22:03:34 124

原创 EtherCAT EEPROM vs Flash

ESC 的 EEPROM 接口是专用的,直接连接 I²C/SPI 总线,上电时自动按字节读取配置。如果你在 ESC 上直接焊一个 W25Q80(SPI Flash),ESC 上电后读取 EEPROM 区域会失败。:几百字节 ~ 几 KB(EtherCAT 常用 93C46/56/66,分别是 1Kb/2Kb/4Kb):Flash 芯片需要先发送命令(如 0x06 写使能、0x20 扇区擦除),ESC 没有这个能力。:不能单字节修改,必须先将整个扇区(4KB)擦除为 0xFF,再写入。

2026-04-01 22:20:02 389

原创 Windows 下 GitLab 完整使用指南

本文覆盖,附可直接复制的命令与权威博文链接,适合从入门到日常开发使用。

2026-03-31 20:14:04 1622

原创 keil下载程序报Contents mismatch at XXX

2、DEBUG->Setting里面改变速率即可,亲测5MHZ改为500KHZ可以不报错;1、用JFLASH.exe烧录;

2026-03-30 22:37:21 77

转载 无刷直流电机

无刷直流电机(Brushless Direct Current Motor,简称BLDCM)由电动机主体和驱动器组成, 是一种典型的机电一体化产品。无刷电机是指无电刷和换向器 (或集电环)的电机,又称无换向器电机。这是模型中除了有刷电机以外用的最多的一种电机, 无刷直流电机不使用机械的电刷装置,采用方波自控式永磁同步电机,与有刷电机相比,它将转子和定子交换, 即无刷电机中使用电枢绕组作为定子,使用钕铁硼的永磁材料作为转子,以霍尔传感器取代碳刷换向器, 性能上相较一般的传统直流电机有很大优势。

2026-03-29 22:43:49 365

原创 CANopen至CoE与CiA402

• NMT帧:全局网络管理帧,控制设备运行状态,包含初始化、预操作(Pre-Operational)、安全操作(Safe-Operational)、操作(Operational)、停止五种状态,伺服设备需切换至Operational状态才可执行实时运动控制;非实时配置通道,带应答确认机制,支持任意长度数据分段传输,用于设备参数配置、版本信息读取、故障查询、参数校准等非实时场景,传输速率低于PDO,保障配置数据的可靠性。

2026-03-27 19:35:55 642

原创 CAN总线技术规范与核心机制

CAN(Controller Area Network,控制器局域网)是ISO国际标准化的串行差分现场总线,隶属于OSI七层模型的物理层+数据链路层,由博世公司于1986年提出,核心面向高实时性、高可靠性的工业与车载多节点通信场景,也是CANopen、CoE(CANopen over EtherCAT)协议的底层通信基础。仅定义物理层与数据链路层,无应用层规范,未定义设备地址、数据含义、参数管理、同步机制,不同厂商设备无法直接互通,需基于CAN制定应用层协议(如CANopen)实现标准化通信。

2026-03-27 19:24:55 347

原创 电机三环控制

电机控制系统里,从外到内一共 3 层闭环位置环(最外层)速度环(中间层)电流环(最内层)

2026-03-26 21:26:55 507

原创 Twincat3 NC轴配置入门介绍

Twincat3 NC轴配置入门介绍。

2026-03-25 22:45:40 846

原创 CIA 402笔记

这里特殊运行模式,在目标位置模式中,bit4会用做启动指令,bit5用作切换目标位置指令,bit6用作绝对位置,相对位置切换功能;*同步位置模式在官方CIA 402文档中并没有提到,但是目前在ethercat中应用较多,故在这里也提出来;CIA 402中规定了一系列完整的电机控制参数,这里简单提取了部分常用的参数(不包含探针功能)状态字会根据系统的当前状态进行状态机切换。6041状态字(官方手册P50)

2026-03-24 22:51:37 593

转载 CubeMx安装

在路径 D:\IDE\ST\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.3 下面可以看到安装好的固件库。先设置 RCC 的模式,将 HSE 和 LSE 都设置为启用外部晶振,并且启用 MCO1 和 MCO2,MCO2 与音频时钟输入不能同时使用。从原理图中允许看出,控制引脚 PF9,PF10为GPIO输出引脚,且输出低电平可以点亮 LED 灯。将 PF9 引脚设置好机制后,在引脚上单击鼠标右键,会调出一个快捷菜单。设置项目名称和生成 .c和.h对。

2026-03-23 22:01:09 209

转载 步进电机

步进电机必须要有控制器和驱动器才可以使电机正常工作,控制器是stm32或者其它型号的MCU了,驱动器就是步进电机驱动器了。为什么要使用驱动器呢?驱动器起到将控制器信号放大或者转换的作用,如下图所示,控制器输出方向信号和脉冲信号来控制步进电机驱动器, 驱动器将其功率放大然后作用到步进电机上。EBF-MSD4805 是野火科技推出的一款静音智能步进电机驱动器。

2026-03-22 16:18:35 234

转载 舵机控制

舵机速度的单位是sec/60°,就是舵机转过60°需要的时间,如果控制脉冲变化宽度大,变化速度快, 舵机就有可能在一次脉冲的变化过程中还没有转到目标角度时,而脉冲就再次发生了变化, 舵机的转动速度一般有0.16sec/60°、0.12sec/60°等,0.16sec/60°就是舵机转动60°需要0.16秒的时间。舵机的速度还有工作电压有关,在允许的电压范围内,电压越大速度越快,反之亦然。

2026-03-21 23:07:57 119

转载 直流有刷驱动板电流电压采集

野火使用MOS管搭建的直流有刷驱动板做到了信号完全隔离,其他驱动板基本都只是使用光耦隔离了控制信号, 并没有对ADC采样电路进行隔离,野火不仅使用光耦对控制信号进行了隔离, 还使用AMC1200SDUBR隔离运放对ADC采样电路进行了隔离。

2026-03-20 18:39:20 113

原创 UART RX为什么要上拉

RX 上拉 = 让总线空闲时稳定为高电平,避免假起始位、乱码、误触发。UART 协议天生要求空闲为高,所以 RX 必须上拉。

2026-03-19 21:00:24 260

原创 NXP eDMA驱动库解析

fsl_edma.c是NXP MCUXpresso SDK中eDMA外设的底层驱动实现,与之配套的还有头文件fsl_edma.h。

2026-03-18 21:42:32 369

转载 直流有刷电机

直流有刷电机(Brushed DC motor)具有结构简单、易于控制、成本低等特点, 在一些功能简单的应用场合,或者说在能够满足必要的性能、低成本和足够的可靠性的前提下, 直流有刷电机往往是一个很好的选择。例如便宜的电子玩具、各种风扇和汽车的电动座椅等。基本的直流有刷电机在电源和电机之间只需要两根电缆,这样就可以节省配线和连接器所需的空间, 并降低电缆和连接器的成本。此外,还可以使用MOSFET/IGBT开关对直流有刷电机进行控制, 给电机提供足够好的性能的同时,整个电机控制系统也会比较便宜。

2026-03-17 21:51:25 78

转载 驱动器的分类

直流有刷电机的驱动方法在之前已经详细的讲解过,这里就不再赘述了。其实本质上是使用H桥电路进行驱动,核心电路H桥加上一些必要的外围电路, 共同组成直流有刷电机的驱动器。H桥本身可作为集成电路使用,也可由分立元件构成。集成电路形式的H桥一般用于中小功率需求的应用, 或者是对电路面积有要求的场合。分立元件形式的H桥通常用于大功率或者超大功率需求的应用,主要由MOSFET或IGBT晶体管组成。不过MCU的引脚是无法直接驱动MOS管等元件的,需要加上专用的MOS管驱动芯片。

2026-03-16 21:19:40 37

原创 二值信号量 vs 互斥量

核心定位:二值信号量管 “同步”,互斥量管 “互斥”;关键区别:互斥量有 “资源归属” 和 “优先级继承”,二值信号量无;避坑原则:保护共享资源优先用互斥量,时序协调优先用二值信号量;禁忌:中断中绝不能操作互斥量,二值信号量仅能在中断中 “释放”,不能 “获取”。

2026-03-15 22:53:04 53

原创 堆栈高频知识点

举例:在 C 语言中,创建 1000 个局部变量(栈)的耗时,仅为创建 1000 个动态分配变量(堆)的 1/100 甚至更低。补充:栈内存连续是因为它是 “预分配的连续区域”,系统在程序启动时就划定了固定的连续内存块给栈,分配时仅移动指针,无需考虑碎片。可见 c 的地址最大(最后入栈),a 的地址最小(最先入栈),符合 “从右到左” 规则。堆(Heap)和栈(Stack)是程序运行时内存的两大核心区域,核心差异体现在。简单记:栈是 “系统管的临时内存”,堆是 “程序员管的永久内存”。

2026-03-13 21:37:32 447

原创 USART_IT_TC 与 IDLE 的区别

串口中断的设计逻辑始终围绕 "数据传输的完整性" 展开,与IDLE中断分别针对发送和接收两个方向,形成互补的通信保障机制。

2026-03-12 22:11:37 286

原创 DPU浅析

DPU 是一种可编程处理器,聚焦数据移动、转换与安全,专门负责从主机 CPU 卸载网络、存储、虚拟化等基础设施任务,解决 “CPU 处理效率低、GPU 无法处理” 的底层数据处理瓶颈。

2026-03-11 21:35:49 777

原创 个人笔记3

补充具体操作:① CPU跑飞:多由指针越界、中断异常、死循环导致,先通过调试器查看PC寄存器(程序计数器)的值,定位跑飞的代码位置,再结合反汇编代码,分析是否存在非法指针访问、函数调用栈异常;③ 异常处理:若B区固件校验失败,需保留原A区固件(避免系统无法启动),同时触发报警机制,提示固件下载异常。① 核心功能:MPU可将整个内存空间划分为多个独立区域(最多支持8个区域,部分ARM芯片可扩展),为每个区域配置独立的访问权限(如只读、读写、禁止访问)、访问属性(如缓存、缓冲),还可设置区域的大小和起始地址;

2026-03-10 22:12:48 642

原创 判断链表是否有环

最优方案:快慢指针法(时间复杂度O(n),空间复杂度O(1)),核心是快指针走 2 步、慢指针走 1 步,有环则必然相遇,无环则快指针先到末尾。备选方案:哈希表法(时间复杂度O(n),空间复杂度O(n)),通过记录已访问节点判断是否重复,逻辑更直观但占用额外空间。边界注意:必须处理空链表、单节点链表等特殊情况,避免空指针异常。

2026-03-09 19:44:37 223

原创 RTOS 实时性优化

实时性的核心并非 “速度快”,而是时间确定性,即系统对事件的响应可预测、关键任务能在截止时间完成、高优先级任务可抢占低优先级任务,这是区别于普通系统的关键。实时系统类型核心特征典型应用硬实时错过截止时间会引发严重后果、系统故障甚至安全问题安全气囊、刹车系统、工业电机控制软实时错过截止时间仅降低系统性能,无灾难性后果视频播放、普通数据采集、非核心通信。

2026-03-08 21:35:49 403

原创 控制台命令行核心工具(反汇编 / 调试 / 分析类)

这类工具是 “二进制文件→汇编 / 段信息” 的核心,解决 “编译链接是否正确、代码段对齐、启动地址匹配” 等底层问题。GDB 是嵌入式调试的核心,命令行版可实现 IDE 图形化工具的所有功能,且能精准控制底层硬件。专注解析 ELF 文件的头部、段、符号表等结构化信息,比 objdump 更精准。将内存地址(如 PC 指针)转换为对应的源代码文件和行号,需配合编译时的。

2026-03-07 09:00:00 532

原创 ARMv7到ARMv9的对比

ARM架构历经多代迭代,ARMv7、ARMv8、ARMv9是奠定市场地位的关键版本,核心定位如下表:版本核心定位关键突破ARMv732位移动与嵌入式核心引入Cortex系列,确立32位体系,基础TrustZone安全ARMv864位高性能计算拓展支持64位指令集,硬件虚拟化,安全扩展ARMv9安全与AI导向,面向未来SVE2矢量扩展,CCA机密计算,AI性能优化。

2026-03-06 18:30:00 566

原创 嵌入式中断服务程序(ISR)编写注意点

多数 MCU 开发工具会为未使用的中断向量分配默认处理程序,其通常仅执行无限循环,导致系统故障时难以排查。自定义默认 ISR:在默认处理程序中设置故障标志位、记录中断来源等诊断信息,便于系统后续排查;故障恢复机制:可结合看门狗设计,在默认 ISR 中触发看门狗复位,使系统从异常状态恢复,避免长时间卡死;适配安全需求:工业控制、汽车电子等场景需在默认 ISR 中添加故障上报逻辑,确保符合功能安全标准。

2026-03-05 22:49:50 301

原创 EtherCAT 的看门狗触发

2026-03-04 22:33:31 195

空空如也

空空如也

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

TA关注的人

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