自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FreeRTOS 队列句柄分配失败解决教程:从原理剖析到堆栈调整实战

在嵌入式开发中,FreeRTOS 的队列是任务间、任务与中断间通信的核心工具,但有时会遇到 “队列句柄为空” 的问题 —— 表现为 debug 中句柄地址无效,最终导致队列接收函数 “死等”、系统无法正常运行。本文从 FreeRTOS 队列原理讲起,实战解决这一问题。

2025-11-28 11:52:34 372

原创 【快速修复】STM32CubeIDE FreeRTOS文件夹“被锁定”?一招搞定路径丢失

通过重新链接文件夹的源路径,可以快速解决STM32CubeIDE中FreeRTOS文件夹链接失效问题。这种方法也适用于其他类似的文件链接失效场景。确保在修改工程结构时,及时更新所有链接路径,以避免开发中断。

2025-11-25 10:37:48 157

原创 STM32 USART3 DMA 收发配置全流程

在 STM32 嵌入式开发中,串口(USART)是设备与外界通信的核心外设之一。为了减少 CPU 在数据传输过程中的开销,DMA(直接内存访问)技术可实现串口数据的 “自主” 收发。本教程以 STM32H745 系列芯片为例,从 STM32CubeMX 配置到代码编写,完整讲解 USART3 + DMA 的收发实现。在main.c// 接收数据缓冲区通过STM32CubeMX 可视化配置 + 代码自定义扩展的方式,实现了 USART3 的 DMA 高效收发。

2025-11-10 15:29:38 714

原创 提升代码复用:如何使用STM32CubeIDE开发静态库

通过上述步骤,可在 STM32CubeIDE 中完成静态库的创建与编译。静态库能有效提升 STM32 固件开发的模块化程度与代码复用率,适合复杂项目的分层管理。

2025-09-19 16:32:51 759

原创 VSCode CMake 项目文件夹结构变更后的编译问题修复指南

在 VSCode 中开发 CMake 项目时,文件夹结构调整后常导致编译失败。主要原因是路径配置失效和构建缓存冲突。解决方法包括:检查.vscode目录下的launch.json和task.json路径配置;校验CMakeLists.txt中的头文件、源文件及输出路径;清理并重建build文件夹以清除旧缓存。操作前建议备份配置文件,调整后使用"CMake:清理重建"功能确保正确构建。遵循这些步骤可快速恢复项目正常编译状态。

2025-09-13 07:00:00 403

原创 如何在 STM32CubeIDE 中创建自定义构建配置并指定链接脚本

本文介绍了在STM32CubeIDE中创建自定义构建配置并指定独立链接脚本的方法。主要内容包括:1)通过项目右键菜单管理构建配置;2)创建新配置时设置名称并继承基础配置;3)在项目属性中为每个配置指定专属链接脚本文件;4)验证配置是否生效及输出结果是否符合预期。该流程可实现针对不同场景(如调试、发布)的灵活配置,满足多版本开发需求。

2025-09-11 19:30:00 805

原创 3.6.嵌入式开发:将关键代码移植到RAM中运行的三步法

本文介绍在STM32H745XI芯片上实现部分代码在RAM中运行的方法。通过修改链接脚本定义RAM代码段,使用函数属性宏指定目标函数,并在启动文件中添加代码复制逻辑,可将关键函数从Flash迁移至RAM执行,提升实时性和执行效率。具体步骤包括:1)在.ld文件中定义RAM代码段;2)通过__attribute__宏标记目标函数;3)在启动文件中实现Flash到RAM的代码复制。该方法适用于需要优化执行速度的关键函数,开发者可根据实际需求调整实现方案。

2025-09-09 11:30:57 532

原创 工作记录2-STM32 CAN滤波器配置

can滤波器设置开发测试环境:stm32f407CAN滤波器设置涉及到的两个寄存器。CAN_RIxR(x=0…1)CAN_FiRx(i=0…27,x=1,2)程序中其他配置为:id掩码模式、32位滤波设置。CAN_RIxR表示将要过滤的id,CAN_FIRX表示要过滤那些位,0为不用在意(该位为0或1都可以),1为完全匹配。对应的库函数中为以下两部分:CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0;

2022-01-05 13:23:54 2914

原创 工作记录1-CAN连续发送丢包

can连续发送通讯丢包问题开发测试环境:stm32f407问题描述。can数据帧一发等待一收的情况下,不会发生丢包的情况;连续发送3包的情况下不会出现丢包的问题;连续发送20包数据,就会出现丢包的情况;以下是发送函数贴码:void CAN_Transmit(CAN_TypeDef *CANx,CanTxMsg* TxMessage){ uint8_t mbox; uint16_t i = 0; mbox = CAN_Transmit(CANx,TxMessage

2021-12-30 17:26:38 5709

原创 日常学习记录一_mcufly串口下载

MCUFLY下载环境是STM32f407第一部分 操作步骤板卡部分注意板卡的引脚,boot0接高电平,boot1接低电平。电脑打开mcufly,电脑通过usb串口线,连接STM32的USART1串口(板卡上连接了芯片CH340G)。mcufly配置如下图所示。1处设置串口,波特率不要高于115200。2处将需要下载程序的hex文件,添加到2处。3处mcufly配置校验和编程后执行。4处配置成DTR的低电平复位,RTS高电平进BootLoader。5处点击开始执行。

2021-11-19 16:51:49 1877

空空如也

空空如也

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

TA关注的人

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