- 博客(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关注的人
RSS订阅