- 博客(22)
- 收藏
- 关注
原创 DSP的基础平台搭建
摘要:安装CCS6.0时需关闭防火墙、杀毒软件及联想管家,断网安装。若仿真器驱动报错,需关闭Windows内存完整性并重启,安装后不可开启内存完整性。仿真器连接时需尝试切换V1/V2版本。关键步骤:开发板先上电再测试连接,配置完成后必须测试连接成功才能启动调试,否则会出现调试失败问题。连接过程存在不稳定性,需多次尝试。
2025-07-10 21:53:58
327
原创 永磁同步电机的矢量控制
摘要:矢量控制理论由F.Blaschke于1971年提出,通过模仿直流电机磁场定向方式实现交流电机高性能控制。其核心是在dq坐标系下分解定子电流为励磁和转矩分量,采用id=0、MTPA或弱磁控制策略。实现需高性能处理器、精确传感器及参数补偿算法。SVPWM调制相比SPWM提高15%电压利用率,谐波抑制更优。永磁同步电机矢量控制简化了磁链观测,但需注意不同Park变换(余弦/正弦基)的对应关系。
2025-08-05 21:25:08
1126
原创 实时操作系统
摘要:本文介绍实时操作系统(RTOS)的概念、分类(硬实时/软实时)、核心特点(确定性调度、低延迟)及典型应用场景(工业控制、医疗设备等)。同时详解板级支持包(BSP)的定义、移植步骤(硬件适配、接口实现)与难点。最后提到Micrium账号注册异常问题,表现为注册失败却提示已存在,密码重置功能失效,建议尝试更换邮箱解决。全文涵盖RTOS技术要点和实际开发中的常见问题。
2025-07-08 12:37:40
999
原创 转速控制系统-串口调试(有线和蓝牙)
该文件主要实现了STM32定时器(TIM1~TIM4)的中断服务函数和初始化函数。它用于定时采集编码器数据、计算电机转速、统计转动圈数、动态调整PWM参数等,是整个运动控制系统的“心跳”与调度核心。编码器通过定时器硬件自动计数,软件定时读取增量,结合采样周期和编码器分辨率即可计算电机速度。这种方式实时性高、精度好,是工业运动控制的标准做法。如需具体速度计算公式或代码实现,可进一步说明你的需求。clock记录的是从开始计时到转完一圈,经过了多少个20ms每过20ms,clock就加1。
2025-07-07 17:25:00
979
原创 电机转速控制系统算法分析与设计
摘要:该文档详细描述了一个基于STM32的电机控制系统设计,包含硬件接口电路和软件实现方案。硬件部分采用电机驱动芯片U21,通过PWM信号控制电机正反转,并配备编码器信号采集电路。软件实现包括:1) 编码器初始化与信号读取,采用TIM4定时器实现四倍频计数;2) PWM驱动模块,通过TIM1生成1kHz PWM信号控制电机转速和方向;3) 保护机制如限幅函数和滤波电路设计。系统可实现电机闭环控制,支持LADRC等高级控制算法,具有方向识别、抗干扰和防短路等安全特性。
2025-07-04 16:26:32
1756
1
原创 I2C学习
比如AT24C02芯片的设备地址是101000,但是由于I2C协议在数据传输的时候是一8bit为单位进行传输,二I2C总线只有一根数据线,所以只能采用半双工的方式通信,就要求主机设置数据的传输方向,数据的传输方向由1bit进行控制,这一bit和从器件的设备地址一起发出。I2C通信:空闲状态SCI和SDL,都是高电平,SCL高电平时读取数据,SCL低电平时切换数据,8个bit(从设备地址是7bit,需要说明数据的传输方向,数据的传输方向。I2C通信由一系列标准化步骤组成,从起始条件开始,到停止条件结束。
2025-06-27 10:49:28
1743
原创 SPI串行外设
SPI是一种高速全双工串行通信协议,采用主从模式,由SCLK、MOSI、MISO和SS四线组成,支持多从设备扩展。其四种工作模式由时钟极性和相位组合决定(CPOL/CPHA),分别控制数据采样时机。SPI具有速率高(可达MHz级)、协议简单等优点,广泛应用于存储器、传感器、显示屏等场景,但存在引脚占用多、无错误校验等不足。与I2C和UART相比,SPI速率更高但引脚需求更多,适合短距离高速通信。UART异步简单但速率低,I2C引脚少但协议较复杂。
2025-06-25 11:46:12
752
原创 ADC/DAC数模模数转换
摘要:STM32F103的ADC模块具有12位精度、18个复用通道(含16个外部和2个内部信号源),支持规则通道和可优先采样的注入通道。系统可通过外部中断或软件触发AD转换,最大频率14MHz,转换周期1us。配置时需遵循香农采样定理(采样频率≥2倍信号最高频率,推荐3-5倍),并参考数据手册的引脚配置和库文件代码。该模块支持数据对齐和可调采样周期(1.5个时钟周期),适用于实时信号采集场景。(149字)
2025-06-24 21:44:43
304
原创 存储器的分析与学习
内部Flash是一种嵌入在微控制器(MCU)或系统级芯片(SoC)中的非易失性存储器,用于存储程序代码、配置数据或用户数据。内部Flash是一种嵌入在微控制器(MCU)或系统级芯片(SoC)中的非易失性存储器,用于存储程序代码、配置数据或用户数据。Flash的编程原理都是只能将1写为0,而不能将0写为1,所以在进行Flash编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为1的过程,块内的所有字节变为0xFF。如果不是对之前相同的地址,就不需要,如果是之前的就需要先把之前的擦除,然后再写数据。
2025-06-22 16:45:58
2035
原创 RTC实时时钟的特点和分析
RTC实时时钟技术解析 RTC(实时时钟)是独立于主系统的计时模块,具有三大核心特性:1)低功耗设计,采用纽扣电池供电,主系统关闭时仍能持续计时;2)高精度,优质RTC误差可控制在±2ppm(年误差约1分钟);3)独立运行,不受主系统电源影响。典型应用包括物联网设备定时唤醒、服务器日志记录等。硬件实现基于32.768kHz晶振分频,软件需注意时间同步和中断处理。常见型号如DS3231(带温度补偿)和PCF8563(低成本方案),开发者需根据精度、功耗和接口需求选型。STM32等MCU通过配置备份域和LSE时
2025-06-20 21:07:13
880
原创 STM32的看门狗学习
看门狗(Watchdog)是一种硬件或软件定时器,用于监测系统运行状态。STM32微控制器集成看门狗模块,旨在解决嵌入式系统因软件错误、外部干扰或死循环导致的“死机”问题。其设计初衷源于嵌入式系统对高可靠性的需求,尤其在工业控制、汽车电子等关键领域。STM32看门狗的设计体现了嵌入式系统“自愈”能力,是硬件级可靠性保障的关键机制。独立看门狗(IWDG)与窗口看门狗(WWDG)
2025-06-19 19:43:52
318
原创 VS-code下调试的launch.jsion文件和task.jsion文件
VSCode调试配置文件launch.json详解 launch.json是VSCode中配置调试环境的文件,主要包含以下关键配置项: 调试器类型(type)和启动方式(request) 程序入口(program)、参数(args)和环境变量(env) 路径变量如${workspaceFolder}表示项目根目录 支持与tasks.json协作,通过preLaunchTask实现调试前自动执行构建任务 对于C++调试示例,配置需注意: 需要设置WSL和Windows路径映射(sourceFileMap) 通
2025-06-19 18:20:48
581
原创 Visual StudioandVS-code(WSL)配置C++矩阵库Armadillo
VScode配置这个库,只需要在系统下,安装相关的配置文件(列如 sudo apt larmadillo的相关配置),然后,命令行参数添加如下。另外,printf错误为,主函数调用TS时,其在内部函数未定义,因此可以通过参数传递。,另外上次调试的代码,问题为.h被两个.cpp文件包括会有重复定义的错误,因此需要。VC++目录下,可执行文件目录包含include,库目录包含lib_win64.一个.h声明,一个.cpp定义即可,这两个名字需要一样。C/C++目录下,添加附加包含的include目录,
2025-06-19 16:25:58
295
原创 PWM的概述和概念
PWM(脉冲宽度调制)是微控制器通过数字信号控制模拟电路的技术,其关键参数为频率和占空比。文章详细介绍了在STM32上实现PWM控制的步骤,包括初始化时钟、配置GPIO引脚、设置定时器参数、配置PWM模式等。代码示例展示了如何使用TIM1通道2(PB14引脚)实现PWM输出控制LED亮度,包含时钟使能、引脚配置、定时器初始化及占空比设置等关键操作。
2025-06-13 19:59:54
313
原创 一、STM32 定时器概述
STM32定时器具有丰富功能,包括定时、中断、输入捕获和输出比较,可用于控制电机、LED等设备。STM32F103芯片共有14个定时器,分为高级、通用和基本三类。配置基本定时器时需注意时钟设置、参数配置和中断设置,但TIM6和TIM7在STM32F103中不可用。实际开发中需根据芯片型号适配配置文件,并正确编写中断服务函数。
2025-06-12 16:30:16
470
原创 系统定时器的基本概念和应用
1s (1000000us)振荡 168000000 次,振荡 1 次的周期是 1/168us,也就是振荡 168 次花费 1us。1s (1000000us)振荡 21000000 次,振荡 1 次的周期是 1/21us,也就是振荡 21 次花费 1us。1s (1000000us)振荡 21000000 次,振荡 1 次的周期是 1/8us,也就是振荡 8 次花费 1us。内核中提供了一个systick的时钟源,并且内核中提供其的函数接口,不同时钟源主要影响的是延时时间。即可实现LED的反复闪烁1s。
2025-06-11 17:28:06
253
原创 程序的运行方式
摘要:文章介绍了三种嵌入式系统架构:轮询系统(顺序执行,无中断)、前后台系统(增加中断处理)和多任务系统(基于优先级调度)。重点讲解了STM32外部中断配置流程:1)初始化APB2时钟(AFIO+GPIO);2)引脚映射到中断线;3)配置GPIO模式;4)设置NVIC;5)配置外部中断;6)编写中断服务函数;7)主函数初始化。以GPIO_Pin_13为例,详细展示了EXTI配置代码,包括中断触发方式(下降沿)、优先级设置及中断标志清除操作。
2025-06-10 19:01:27
283
原创 C++下的两种微分器(实现到三阶的对比)
本文对比分析了三阶积分链式微分器和鲁棒微分器的性能差异。研究表明:对于带噪声信号的一阶微分,三阶积分链式微分器能有效滤除噪声,鲁棒微分器虽能滤噪但存在初始误差。在二阶微分方面,鲁棒微分器表现更优,其初始尖峰较小且噪声抑制能力更强,而三阶积分链式微分器则存在明显波动。实验以理想正弦信号为参照,通过对比一阶差分法,验证了高阶微分器在噪声抑制方面的优势,为不确定系统控制提供了微分器选择依据。
2025-06-09 14:23:53
477
原创 STM32时钟体系
时钟相当于处理器的”心脏“,外部晶振经过振荡会产生高度稳定的信号,由芯片的引脚输入芯片内部,再经过芯片内部的频率放大器进行放大或者缩小,最终变成各种总线的时钟频率,处理器的外设都是由时钟控制的,举个例子:交响乐团时钟信号由什么产生的?时钟信号是时钟源产生的,比如外部晶振产生的时钟信号就是时钟源的一种,但是有的外设不需要太高的时钟频率,所以提供了多种时钟源,参考SMT32用户手册。
2025-06-07 11:54:56
846
原创 GPIO寄存器开发方式-以点亮LED灯为列
摘要: 本文介绍了使用STM32寄存器配置点亮LED灯的详细步骤。首先分析原理图确定外设连接引脚,理解高低电平控制逻辑。然后通过查阅芯片手册,定位GPIO寄存器地址(如端口B地址0x40010C00),掌握寄存器操作原理(位操作与地址映射)。重点讲解了配置APB2时钟、设置CRH/CRL输出模式(推挽模式01)以及通过ODR寄存器输出低电平点亮LED的过程。最后提及利用结构体指针实现寄存器配置的方法。全过程涉及原理图分析、手册查阅、地址定位和位操作等关键技术要点。
2025-06-06 20:56:05
425
原创 STM32下的GPIO外设流程
摘要:本文介绍了STM32 GPIO的配置与使用方法。首先阐述了6种GPIO工作模式(输入上拉/下拉、模拟功能、开漏输出、推挽输出等)的特点及适用场景。重点对比了推挽输出(直接驱动高低电平)和开漏输出(需外接上拉)两种模式的差异,并给出STM32 HAL库配置代码示例。随后详细说明GPIO初始化流程,包括时钟配置(APB2总线)、引脚模式选择(速度/方向)等关键步骤,以LED点亮为例展示了标准库和HAL库两种配置方法。最后提及使用STM32CubeMX工具简化配置过程。全文涵盖GPIO理论到实践的关键知识点
2025-06-05 17:09:19
999
原创 vscode(WSL)下的lanuch调试文件编写
"/mnt/d/study/pa/work/微分器/Addvanced_PID_Control_V3": "D:\\study\\pa\\work\\微分器\\Addvanced_PID_Control_V3""program": "/mnt/d/study/pa/work/微分器/Addvanced_PID_Control_V3/PID_ISA.exe","cwd": "/mnt/d/study/pa/work/微分器/Addvanced_PID_Control_V3/",// bash 的工作目录。
2025-06-04 20:59:46
682
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅