自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Keil5如何生成bin文件

Keil MDK生成bin文件方法:在工程配置的"User"选项中,添加fromelf转换命令"F:\ARM\ARMCC\bin\fromelf.exe --bin -o 输出路径\BOOT.bin 工程路径\工程名.axf",编译后即可在指定目录生成bin文件。

2025-09-03 15:56:18 138

原创 STM32CubeMX(十八)USB-MSC:外部flash模拟U盘

本文介绍了MSC(MassStorageClass)的基础知识和实践操作。MSC是USB协议中让设备被识别为"可移动存储"的规范,通过SCSI命令集实现主机与设备交互。实践部分详细说明了在STM32上配置USB MSC的步骤:1)基础配置;2)USB参数设置(扇区大小4096字节);3)添加W25Q系列Flash芯片的驱动代码;4)修改存储容量为128MB并调整相关函数;5)验证功能,格式化后即可实现U盘读写操作。文章提供了完整的代码实现方案,适合嵌入式开发人员参考。

2025-08-29 15:59:59 78

原创 STM32CubeMX(十七)内部Flash读写

本文介绍了STM32内部Flash存储器的基本概念和操作流程。主要内容包括:1.计算机存储单位(位、字节、字)的定义及换算关系;2.STM32内部Flash的结构划分(主存储器、系统存储器和选项字节)及其功能;3.通过map文件分析代码占用的Flash空间,确定安全写入区域;4.详细讲解了Flash读写操作的实现代码,包括地址计算、页擦除、数据写入和校验等关键步骤;5.提供了完整的测试代码示例,演示如何在STM32上实现Flash数据的写入和读取操作。文中特别强调了操作时的注意事项,如地址对齐、页擦除要求以

2025-08-29 11:15:21 65

原创 STM32CubeMX(十六)OTA升级

本文介绍了嵌入式设备OTA(空中下载)升级的实现原理与关键流程。OTA通过无线网络实现设备固件更新,具有便捷、安全的特点。升级采用分阶段方式:1)下载阶段通过4G模块获取新固件并暂存外部Flash;2)重启后由Bootloader进行三次CRC校验(服务器文件、外部Flash、内部Flash),确保数据完整性;3)将验证后的固件写入内部Flash应用区。关键设计包括:使用外部Flash暂存避免运行中覆盖程序、三次校验构建全链路安全保障、Bootloader独立控制升级流程。该方案有效解决了嵌入式设备安全升级

2025-08-26 13:48:00 51

原创 STM32CubeMX(十五)IAP-USB(DFU固件升级)

DFU 的全称是,是一种由 USB-IF(USB 标准化组织)定义的,是ST官方推出的一个通过USB接口进行IAP升级的方案。本质是为设备提供一个 “脱离正常操作系统 / 应用程序” 的专用模式 —— 在该模式下,设备仅加载最基础的硬件驱动(不启动核心功能),允许电脑通过 USB 直接与设备的 “固件存储芯片” 通信,实现固件的擦除、写入或校验。

2025-08-25 09:42:21 223

原创 STM32CubeMX(十四)SDIO驱动SD(TF)卡

这篇文章详细介绍了STM32使用SDIO协议操作SD/TF卡的实现方法。主要内容包括:1)基础配置部分,涉及SDIO接口、中断和DMA的使能;2)核心功能实现代码,包含SD卡信息打印、块擦除、阻塞式读写(写入测试数据、读取验证数据)以及完整测试流程;3)DMA读写功能。文章还提供了main.c中的缓冲区定义和主程序示例,展示了如何初始化硬件并执行完整的SD卡测试流程。所有代码均基于HAL库实现,适用于STM32CubeMX开发环境。

2025-08-19 13:40:22 54

原创 STM32CubeMX(十三)FatFs文件系统(SPI驱动W25Qxx)

STM32CubeMX(四)串口配置_stm32cube配置串口-CSDN博客,以及STM32CubeMX(十二)SPI驱动W25Qxx(Flash)-CSDN博客这里我们需要将SPI文章最后的代码全部复制到我们的工程项目中。

2025-08-09 11:18:26 144

原创 STM32CubeMX(十二)SPI驱动W25Qxx(Flash)

本文介绍了STM32通过SPI接口驱动W25Q64 Flash存储器的快速实现方法。主要内容包括:SPI2接口配置、片选引脚设置、SPI数据收发函数封装,以及W25Q64的基本操作函数实现,如读取ID、状态寄存器、数据读写、扇区擦除等。测试程序通过读取设备ID、擦除扇区、写入数据并验证读取,完整演示了Flash存储器的操作流程。所有代码基于HAL库实现,包含详细的注释说明,可直接用于项目开发。

2025-08-08 21:58:25 175

原创 STM32CubeMX(十一)CRC校验

和:用于。函数内部会先通过重置 CRC 计算单元(将 CRC 初始值载入),然后依次输入数据计算,最终返回这批数据的独立 CRC 结果。适用于单次校验场景(如对一帧完整数据单独计算 CRC)。:用于。函数不会重置 CRC 计算单元,而是基于上一次计算的结果继续累加新数据,最终返回累计后的 CRC 结果。适用于数据分批次传输的场景(如先传一部分数据计算临时 CRC,后续数据继续累加计算,最终得到整体 CRC)。

2025-08-08 13:20:18 225

原创 STM32CubeMX(十)FreeRTOS实时操作系统一CPU利用率

摘要:本文介绍了FreeRTOS基础配置及多任务实现方法。主要包括:1)启用任务运行时间统计功能;2)创建多个LED控制任务;3)配置定时器和串口;4)添加定时器中断回调函数实现系统计时;5)通过任务函数获取并打印CPU利用率等运行信息。实验通过两个LED灯以不同频率闪烁,同时定时输出各任务状态、优先级、堆栈使用情况和CPU利用率等统计信息。关键步骤包括开启定时器中断、初始化任务函数和实现运行信息采集功能。

2025-08-08 09:39:23 72

原创 STM32CubeMX(九)FreeRTOS实时操作系统一内存管理(内存池)

本文介绍了FreeRTOS内存池(osPool)的原理与应用。内存池是一种预分配固定大小内存块的管理机制,通过"提前备好工具箱"的类比,说明其"以空间换时间"的特性,能有效减少内存碎片、提升分配效率并降低动态分配风险。文章详细对比了FreeRTOS的四种内存管理策略(heap_1至heap_4),重点推荐了兼具灵活性和抗碎片能力的heap_4方案。最后通过串口通信实例,展示了内存池与消息队列的协同工作机制:在串口中断中动态申请内存块存储数据,通过消息队列传递指针,由后

2025-08-07 16:56:42 78

原创 STM32CubeMX(八)FreeRTOS实时操作系统一任务创建

本文介绍了FreeRTOS在STM32上的基础配置和实践操作。主要内容包括:1)基础配置中的模式选择(CMSIS-V1/V2)和内核参数设置(如任务优先级、栈大小、时钟节拍等);2)内存管理方案选择(推荐heap_4);3)实践操作步骤:选择非SysTick定时器作为时基源(如TIM7),创建任务时合理设置优先级和栈大小;4)通过示例代码演示了两个LED以不同周期闪烁的任务实现。文中提供了详细的参数说明和优化建议,帮助开发者根据实际需求配置FreeRTOS系统。

2025-08-07 11:42:07 183

原创 STM32CubeMX(七)RTC实时时钟

本文介绍了STM32 RTC(实时时钟)的基础配置与实现方法。首先需激活RTC并配置时钟源(LSE或LSI),然后在主程序中通过HAL_RTC_GetTime和HAL_RTC_GetDate函数获取时间日期数据,并使用串口打印显示。文章还提供了保持重启后时间连续性的方法,即注释掉rtc.c中的相关初始化代码。该实现包含完整的代码示例,展示了如何通过STM32CubeMX配置RTC并实现实时时钟功能,适用于需要时间记录的应用场景。

2025-08-07 11:02:13 92

原创 STM32CubeMX(六)通用定时器配置(PWM、编码器)

定时器的计数器仅在外部触发信号为高电平时运行,适用于需要外部信号控制计数的场景。:定时器的时钟由外部输入引脚(如 TI1)提供,适用于需要外部时钟同步的应用。:当外部触发信号有效时,定时器开始运行一次,适用于单次触发的应用。:当外部触发信号有效时,定时器计数器被复位。:外部时钟模式 1。

2025-08-06 10:44:41 428

原创 STM32CubeMX(五)基本定时器配置(定时)

本文介绍了STM32F103VET6基本定时器(TIM6/TIM7)的配置方法,实现LED每1秒状态翻转功能。主要内容包括:1) 确定定时器时钟源为APB1(72MHz);2) 配置定时时间和中断优先级;3) 通过HAL_TIM_Base_Start_IT()启动定时器;4) 在中断回调函数HAL_TIM_PeriodElapsedCallback()中实现LED引脚电平翻转。该方案适用于需要精确定时控制的嵌入式应用开发。

2025-08-06 10:04:15 330

原创 STM32CubeMX(四)串口配置

摘要:本文详细介绍了USART串口通信的基础配置与实现方法。首先解析了8种通信模式(异步/同步/单线半双工等)及其适用场景,以及4种硬件流控制模式的选择策略。随后给出了具体配置步骤:设置异步模式并禁用硬件流控制,配置波特率115200/8位数据/无校验/1位停止位等通信参数,最后说明中断使能与优先级设置要点。全文为STM32串口开发提供了完整的配置参考,特别强调了不同模式的应用场景选择与中断管理的注意事项。

2025-08-05 16:43:30 1424

原创 STM32CubeMX(三)GPIO配置(按键控制LED灯)

本文介绍了STM32CubeMX中GPIO的基础配置方法。首先需完成项目基础设置,然后根据原理图将LED1的PE5引脚配置为输出模式,KEY1的PC3引脚配置为输入模式。最后提供测试代码:在while循环中检测按键状态,当KEY1按下时点亮LED1,实现按键控制LED灯的功能。代码包含消抖处理和状态判断,确保操作稳定性。

2025-08-05 15:22:36 240

原创 STM32CubeMX(二)新建工程、界面认识、基础配置

本文介绍了使用STM32CubeMX开发工具的基本流程。主要内容包括:1)新建工程;2)界面功能说明,重点介绍引脚配置、时钟系统设置(LSE/HSI/HSE时钟源)和项目管理选项;3)功能配置步骤,包括时钟频率设置、SWD调试模式配置和代码输出选项;4)生成代码,其中.ioc文件保存了所有配置信息,作为初始化代码生成的依据。该工具可通过图形化界面快速完成STM32芯片的初始化配置工作。

2025-08-05 14:46:39 248

原创 STM32CubeMX(一)安装硬件支持包

本文介绍了更换硬件支持包下载地址及下载方法。首先说明如何修改支持包的默认保存路径,然后以STM32F1为例演示下载流程,同时提示如需STM32F4支持包可直接下载对应版本。文中特别说明若安装时要求登录账号,只需使用邮箱注册新账号并登录即可完成下载操作。

2025-08-05 13:57:35 111

原创 STM32F1控制步进电机

本文介绍了步进电机的两种控制方式:GPIO模拟脉冲和PWM定时器输出。通过对比分析,指出GPIO方式适合低速简单控制,而PWM方式精度高、CPU占用率低。文章详细说明了驱动器细分档位的设置原理,并提供了基于STM32的实验代码,包括GPIO模拟脉冲实现正反转控制和PWM方式按键控制。实验部分展示了两种控制方法的具体实现,其中GPIO方式通过延时函数控制脉冲,PWM方式则利用定时器自动生成脉冲信号。文中还包含完整的引脚定义、初始化配置和中断处理等关键代码。

2025-07-10 16:25:13 700

原创 ModBus总线协议

本文介绍了Modbus工业通信协议的基础知识。Modbus是一种主从式通信协议,支持串口和以太网传输,包括RTU(二进制)、ASCII(文本)和TCP三种类型。文章重点解析了Modbus RTU的数据帧结构,包含从机地址、功能码、数据区和CRC校验等关键字段,并详细说明了不同功能码对应的操作类型。最后通过三个典型示例(读取保持寄存器、读取输入寄存器、写入多个寄存器)演示了Modbus通信的完整交互过程,包括请求帧和响应帧的十六进制格式展示。这些内容为理解Modbus协议的工作原理提供了实用参考。

2025-06-06 11:12:52 840

原创 从零开始学电机(一)认识电机

本文系统介绍了电机的基本概念和分类。首先解释了定子、转子、绕组、永磁体等核心结构,以及有刷/无刷、有感/无感的区别。重点对比了有刷电机(结构简单、成本低)与无刷电机(高效耐用、精度高)的特性差异。随后分类介绍了直流电机(含普通型和减速型)、交流电机、步进电机(脉冲控制、无累积误差)和伺服电机(闭环控制、高精度)的特点及应用场景。全文通过表格对比和实例说明,为读者提供了电机技术的基础认知框架,帮助理解不同类型电机的结构原理和适用领域。

2025-05-26 17:36:05 1235

原创 Simulink创建测试框架Harnesses

2025-05-14 18:06:10 194

原创 Simulink硬件模型算法

本文介绍了基于模型编程的LED控制及PID应用。主要内容包括:1)实现LED 500ms定时闪烁;2)呼吸灯效果模拟;3)按键消抖处理(低电平触发);4)按键组合控制LED开关及闪烁模式(Key1点控亮灭,Key2切换闪烁状态);5)速度环PID控制算法实现。所有功能均通过模型仿真验证,配置方法参考CSDN技术博客。文章提供了完整的嵌入式控制方案,涵盖基础IO操作和闭环控制算法应用。

2025-05-14 15:13:59 325

原创 Simulink模型仿真配置及算法代码生成

本文介绍了使用Matlab 2022a生成STM32 HAL库代码的方法。首先配置Matlab模型生成参数,然后通过LED灯闪烁实验演示完整流程:1)创建控制模型并更新修改;2)使用数据字典管理变量,实现全局变量定义;3)生成算法代码;4)将关键代码(led.c/h和rtwtypes.h)集成到Keil工程。重点说明了函数调用方法,包括初始化函数调用、定时中断或延时处理闪烁周期,以及LED输出接口控制。该方法简化了嵌入式代码开发流程,特别适合算法验证和快速原型开发。

2025-05-13 14:51:01 418

原创 硬件元件三极管:从基础到进阶的电子探秘

本文介绍了半导体器件的基础理论,重点解析了PN结、三极管的结构与工作原理。PN结由P型和N型半导体接触形成,具有单向导电特性,是半导体器件的基础。三极管分为NPN和PNP两种类型,通过基极微小电流可控制集电极大电流,实现放大和开关功能。文章还提供了记忆三极管类型的技巧,并详细阐述了三极管的放大作用和开关作用,包括简单放大电路和麦克风放大电路的应用实例。这些基础知识为理解更复杂的半导体电路奠定了基础。

2025-04-16 12:07:36 983

原创 CMake 详解:跨平台构建系统的入门与进阶

CMake是一种跨平台的开源构建工具,它通过CMakeLists.txt配置文件自动生成适用于不同平台的构建系统(如Makefile)。相比手动编写复杂的Makefile,CMake能自动处理编译器选择、依赖关系等任务,支持Windows、Linux和macOS等多平台开发。使用流程包括:1)创建CMakeLists.txt定义项目;2)建立独立build目录;3)运行cmake生成构建文件;4)执行make进行编译。CMake特别适合中大型跨平台项目,能显著简化构建过程。

2025-03-24 20:40:27 899

原创 ROS实践(五)机器人自动导航(robot_navigation)

本文系统介绍了机器人自主导航的关键技术框架,主要包括定位、路径规划和避障三大核心模块。在定位方面,详细阐述了AMCL定位算法及其参数配置;路径规划部分分解为全局规划(A*/Dijkstra算法)和局部规划(DWA/TEB算法)两个层级;避障技术则通过代价地图(costmap)机制实现。文章还完整呈现了ROS导航栈的软件架构,包括move_base、amcl等核心功能包的作用与交互关系,并提供了从实验准备到参数配置的完整导航实现方案,其中包含8个关键的YAML配置文件详解。该技术体系通过多传感器融合和分层规划

2025-03-13 14:42:17 1930

原创 ROS实践(四)机器人SLAM建图(gmapping)

本文介绍了SLAM技术及其实现方法。SLAM(同步定位与地图构建)让机器人在未知环境中通过传感器数据自主定位并构建地图。文章详细讲解了激光雷达、RGBD相机等常用传感器,以及gmapping和map_server这两个ROS功能包的使用方法。重点阐述了SLAM建图实验步骤:配置gmapping节点参数、启动机器人仿真、运行gmapping节点、使用rviz可视化工具、通过键盘遥控机器人完成地图构建并保存。实验结果表明,该方法能有效实现机器人自主建图功能,为后续导航等应用奠定基础。

2025-03-11 17:51:13 3240

原创 ROS实践(三)机器人描述文件xacro(urdf扩展)

XACRO是URDF的高级扩展,用于简化机器人模型的描述。本文介绍了XACRO文件的核心组成部分,包括宏定义、参数化、条件语句和Gazebo仿真标签的使用。通过示例代码展示了如何构建带传感器的机器人模型,包括轮式底盘、IMU、激光雷达和摄像头等组件,并详细说明了如何将这些模型加载到Gazebo仿真环境中。文章还提供了完整的XACRO文件示例和启动文件配置,为机器人仿真开发提供了实用参考。

2025-03-11 12:13:37 1521

原创 ROS实践(二)机器人模型描述文件urdf

摘要:本文介绍了URDF(Unified Robot Description Format)文件的基本语法和实际应用。URDF是一种基于XML的格式,用于描述机器人模型的结构、关节、连杆和传感器信息。文章首先详细讲解了URDF文件的核心组成元素,包括根标签robot、link标签(定义刚体部分)、joint标签(定义连接方式)和sensor标签(定义传感器)。随后通过一个实验案例,展示了如何编写机器人模型的URDF文件,创建launch文件,并最终在RViz中查看机器人模型效果。该文为机器人模型构建和仿真提

2025-03-10 10:11:43 1418

原创 ROS分布式部署通信

本文介绍了ROS分布式通信的设置与应用。文章首先阐述了ROS分布式通信的概念,通过ROSMaster实现多设备间的数据共享,适用于PC主机与树莓派等设备协同工作的场景。随后详细说明了环境配置步骤:1)确保设备在同一局域网并安装相同ROS版本;2)主机设置ROS_MASTER_URI等环境变量;3)从机配置连接主机的环境变量;4)通过话题测试通信。最后介绍了进阶应用——使用launch文件启动多从机节点,说明了launch文件编写方法及各参数含义,包括机器定义、节点部署和环境加载等关键配置。该方案能有效分配计

2025-03-08 16:58:24 1430

原创 ROS实践(一)虚拟仿真平台Stage/Gazebo(虚实结合)

本文介绍了ROS中两种主流仿真工具Stage和Gazebo的区别与应用。Stage是轻量级2D仿真工具,适合大规模群体仿真;Gazebo则是功能强大的3D物理仿真环境,支持复杂物理交互和传感器建模。文章详细讲解了Stage仿真的三个核心功能实现:圆形轨迹控制、直线往返运动以及在RViz中显示轨迹。同时,系统介绍了Gazebo仿真的完整工作流程,包括模型创建、世界文件构建、机器人导入、传感器添加以及SLAM建图和导航功能实现。最后针对多机器人控制等常见问题提供了解决方案,包括话题重映射和.world文件修改方

2025-03-07 17:48:04 1664

原创 ROS系统(三)编程基础

本文详细介绍了ROS开发中的核心功能实现方法:(1)创建功能包的基本流程;(2)实现C++/Python版本的发布订阅节点,包括代码编写、编译规则修改和运行验证;(3)编写launch文件管理多个节点;(4)自定义消息类型msg的开发和使用,涵盖C++/Python实现;(5)自定义服务类型srv的创建和调用,展示服务端和客户端的开发方法。文章通过具体代码示例,系统讲解了ROS开发中的关键技术和实现步骤,包括文件组织、编译配置、运行调试等完整流程,为ROS开发者提供了实用的开发指导。

2025-03-05 20:49:01 663 1

原创 ROS系统(二)常用工具及命令

ROS常用命令与工具摘要 本文整理了ROS开发中的核心命令与工具: 包管理:catkin_create_pkg创建包,catkin_make编译,需配置环境变量(source devel/setup.bash)。 节点操作:rosrun运行节点,roslaunch启动多节点,rosnode查看节点状态。 通信调试: 话题:rostopic(查看/发布数据)、rosbag(录制回放)。 服务:rosservice调用服务,rossrv查看服务类型。 消息:rosmsg查看消息结构。 可视化工具: rqt_gr

2025-03-05 10:12:46 1175

原创 ROS系统(一)安装及基础知识

消息和服务是节点之间通信的数据格式。消息定义文件(

2025-03-04 10:55:19 5284

原创 嘉立创EDA一自画元件及其封装

本文介绍了在嘉立创EDA工具中自绘元件及封装的详细步骤:首先创建元件,绘制外形框架并设置引脚;其次根据芯片手册精确绘制封装,确保焊盘位置准确;最后将元件与封装关联。注意事项包括焊盘尺寸选择、引脚间距控制、层次结构设计以及制造公差考量。通过规范操作可以创建满足个性化需求的元件封装,确保PCB设计质量。

2025-02-23 22:27:45 5406

原创 嵌入式八股文(五)硬件电路篇

本文介绍了电路基础概念和常用元器件。主要内容包括:1.直流电(DC)和交流电(AC)的特点及转换(整流和逆变);2.串联和并联电路的基本特性及计算方法;3.常用元器件(电阻、电容、电感、二极管、三极管、保险丝)的功能特点及应用场景,重点介绍了电阻的限流、分压作用,电容的滤波、延时功能,以及二极管整流、三极管开关等典型电路。这些基础知识为理解电子电路原理和设计提供了重要参考。(150字)

2025-02-23 10:59:33 2900

原创 贴片式TF卡测评体验(雷龙)

使用pSLC技术,拥有高容量的同时兼具SLC的特性,不用写驱动程序自带坏块管理的NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容SPI,兼容拔插式TF卡/SD卡,可替代普通TF卡/SD卡,尺寸6.2x8mm,内置平均读写算法,通过1万次随机掉电测试,耐高低温,机贴手贴都非常方便,速度级别Class10,标准的SD 2.0协议使得用户可以直接移植标准驱动代码,省去了驱动代码编程环节。

2025-02-20 11:28:48 874 2

原创 嵌入式八股文(四)计算机网络篇

本文系统介绍了计算机网络的基础概念与核心协议。第一章阐述了网络基础原理,包括OSI七层模型与TCP/IP四层参考模型对比,数据链路层的功能(帧封装、差错控制、流量控制等),以及MTU、VLAN、DNS、子网掩码和网关等关键概念。第二章重点解析了常用网络协议:自动重传请求协议(ARQ)中的停止等待和滑动窗口协议(回退N与选择重传),地址解析协议(ARP)的工作机制,移动IP实现主机漫游的原理,以及DHCP动态分配IP地址的流程。全文通过理论说明与实例解析相结合的方式,为读者构建了完整的计算机网络知识体系框架。

2025-02-18 14:06:44 1231

Keil5:stm32标准库按键扫描函数

stm32标准库按键扫描函数

2025-07-10

yolov5模型:目标跟踪+流量检测算法

目标跟踪+流量检测算法

2025-05-11

simulink模型:控制led 500ms闪烁的算法

simulink控制led 500ms闪烁的算法

2025-05-14

simulink模型:呼吸灯led控制算法设计

呼吸灯led控制算法设计

2025-05-14

simulink模型:实现两个按键控制led闪烁和亮灭!

实现两个按键控制led闪烁和亮灭!

2025-05-15

字库取模软件FontLab-V1.0.7.2101

字库取模软件FontLab-V1.0.7.2101

2024-12-06

空空如也

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

TA关注的人

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