- 博客(22)
- 收藏
- 关注

原创 STM32 时钟配置全攻略——从结构体 RCC_OscInitTypeDef 和 RCC_ClkInitTypeDef入手
在 STM32 开发中,时钟配置至关重要,它影响 MCU 的运行速度和外设的工作效率。如果你的 STM32 代码运行缓慢,或者某些外设无法正常工作,那么十有八九是时钟出了问题!今天,我们进行一场STM32 时钟系统的深度解析,不仅带你了解 RCC 配置的完整流程,还详细剖析 HAL_RCC_OscConfig 和 HAL_RCC_ClockConfig 这两个关键函数的作用。✨ 看完这篇文章,你一定能成为 STM32 时钟配置的高手! 🚀
2025-02-17 17:04:29
2617

原创 修改 Timebase Source 轻松重新定义HAL_InitTick:武侠大侠的进阶秘籍 ⚡️
亲爱的朋友们,今天我们将走进 STM32 的江湖,学习如何通过修改 `Timebase Source`,重新定义 `HAL_InitTick` 这个弱函数。让我们像武林高手一样,轻松自如地掌控时基,决胜千里之外!😎亲爱的朋友们,今天我们将走进 STM32 的江湖,学习如何通过修改 Timebase Source,重新定义 HAL_InitTick 这个弱函数。让我们像武林高手一样,轻松自如地掌控时基,决胜千里之外!😎
2025-02-13 14:35:34
2526
2

原创 一文带你理解 Cortex-M4 三级流水线
流水线的概念就像是厨房中的分工合作:如果你做五道菜,每道菜都要从头到尾单独完成,那时间将极其漫长。想象一下,如果你在做菜时,可以同时进行多项任务——比如同时炒蛋、炖汤和切水果,这就是流水线的思想。在计算机中,指令执行也可以像做菜一样分工。每条指令并不是等待前一条指令完全执行完才开始,而是分成几个阶段并行进行,提高效率。
2025-01-02 11:19:43
956
1
原创 [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
嵌入式队列精要指南:队列是嵌入式系统的核心数据结构,遵循FIFO原则实现任务解耦与资源优化。两种主流实现:循环队列(内存紧凑,中断安全)适合高频传感器场景;链式队列(动态扩展)适用于通信协议等复杂数据。优化技巧包括静态内存预分配、中断安全API和DMA组合方案。典型应用涵盖RTOS任务通信、协议解析和事件驱动架构。防御性编程需加入错误处理与实时监控,通过MPU保护内存边界。队列作为嵌入式系统的"消息血管",平衡了生产者与消费者的速度差异,是资源受限环境中的关键枢纽。
2025-07-26 18:51:19
900
原创 一文带你了解嵌入式软件面试中“栈”知识点
提示:面试时结合具体项目说明栈的使用(如:“我在CAN通信解析中用栈缓存分包数据,解决了粘包问题”),更能展现工程能力。:有限栈深的MCU需避免递归爆栈(如文件系统遍历)。:中断栈深度需预留最坏情况(如中断嵌套层数)。:返回地址、局部变量、函数参数、寄存器快照。:函数调用栈包含哪些内容?
2025-07-25 19:30:48
634
原创 【嵌入式Linux开发】网络传输翻车实录:为什么老程序员都备着U盘搞开发?
Linux萌新必看!U盘传文件到开发板终极攻略:无需网络、零配置,3步搞定!优势明显:规避IP冲突、SSH连不上等问题,操作简单可靠。关键步骤:1) 确保U盘为FAT32格式;2) 插入开发板查看挂载点;3) 执行cp命令复制文件。特别注意:必须用sync保存后umount卸载,否则可能丢文件。适用场景广泛,尤其适合无网络环境、大文件传输和紧急修复,比网络传输更稳定高效。新手友好,告别网络配置烦恼,物理连接最可靠!
2025-07-25 12:29:48
393
原创 嵌入式数据结构之顺序表总结
这篇嵌入式面试指南全面解析了顺序表的优化应用。重点包括:1)嵌入式场景下顺序表的优势(缓存命中率高)与设计要点(静态分配优先);2)核心操作的时间复杂度分析及嵌入式优化技巧(如用memmove加速插入);3)专项优化方案(内存对齐、DMA搬运)与安全性考量;4)面试高频问题解析与代码陷阱提示;5)与链表的对比选型指南。文章提供了符合嵌入式规范的完整代码示例,特别强调中断安全、内存管理和实时性处理,帮助开发者掌握嵌入式系统中顺序表的高效实现方法。
2025-07-18 15:43:33
823
原创 C++算法刷题,你要知道的一些STL库介绍
STL(Standard Template Library)是C++标准库的超级武器库,诞生于惠普实验室,由Alexander Stepanov领衔打造。它的出现直接让C++标准推迟了3年发布(史上最强“鸽王”👑),但换来的是
2025-07-13 20:52:28
542
原创 C++算法刷题,你要知道的一些vector用法
std::vector作为C++中最常用的动态数组容器,兼具传统数组的高效访问和自动内存管理优势。文章从四大维度展开:首先分析vector的三大核心特性(动态扩容、连续存储、自动析构)及其与传统数组的对比优势;其次详解六大初始化方式、增删改查操作及容量管理技巧;然后针对迭代器失效、二维初始化陷阱等9个常见问题提供解决方案;最后通过决策树指导不同场景下的容器选型。文章强调vector在随机访问频繁场景下的卓越性能,同时指出其在中间插入操作时的局限性,
2025-07-13 20:46:37
740
原创 IP地址宇宙生存指南:从“分房大战”到“智能合租”的终极进化
融合全球IP分配、私有地址、子网掩码全能攻略。全球IP分配——互联网的“房产管理局”
2025-04-12 18:45:48
879
原创 【调试真相】为什么 printf 能好好输出,而 HAL_UART_Transmit_DMA()`就会翻车?
printf()并不神秘,真正干活的是你自己写的底层输出函数;不懂“排队”,你得给它做调度;DMA ≠ 快捷方式,反而更考验系统设计!
2025-04-07 15:46:18
1313
原创 DMA传输优先级与中断优先级:嵌入式系统的协同调度之道 ——解析两大机制的协作原理与实战优化策略
DMA传输优先级与中断优先级:嵌入式系统的协同调度之道 ——解析两大机制的协作原理与实战优化策略
2025-03-10 18:49:55
1111
原创 C语言修炼面向对象编程:从青铜到王者的蜕变之旅
嘿,在程序员这个犹如江湖般的世界里,面向对象编程(OOP)那可是响当当的三大神功——封装、继承、多态。掌握了它们,就如同拥有了绝世武功秘籍,能编写出优雅、模块化且扩展性超强的代码,成为编程界人人敬仰的大侠。可咱们的C语言呢,就像一个出身平凡的小子,天生在OOP方面没啥天赋。但别小瞧它,C语言凭借“函数指针”和“结构体”这两件独门法宝,愣是要在OOP的江湖里闯出一片天!今天,咱就一起瞧瞧C语言是咋修炼这绝世武功的,助你在嵌入式编程江湖中笑傲群雄!
2025-02-27 12:58:00
747
原创 GCC 编译调试完全指南:让你的嵌入式代码飞起来!
在嵌入式开发的世界里,我们的代码运行在 资源受限 的设备上,比如微控制器(MCU)、ARM 处理器、DSP 等。因此,如何用 GCC 高效编译、优化、调试代码,让固件既小巧又高效,是嵌入式开发者的必修课!
2025-02-21 09:56:45
961
原创 提升代码质量:嵌入式开发中的统一类型定义与命名策略
嵌入式开发通常涉及多种硬件平台,跨平台兼容性是一个重要的挑战。不同的硬件架构对数据类型的大小、字节序等方面有不同的规定。数据不兼容:不同平台上整数类型的大小可能不同,导致数据读取错误。例如,int类型在 32 位平台上可能是 4 字节,而在 16 位平台上可能是 2 字节。代码难以维护:没有规范的类型定义,后续维护者可能难以理解类型的实际长度和用途,增加了代码的维护成本。移植困难:没有一致的命名和类型管理,不同平台之间的移植将变得更加困难,增加了开发时间和成本。
2025-02-19 16:09:23
929
原创 善用 STM32 关键字,高阶关键字技巧全揭秘
在 STM32 开发的浩瀚宇宙里,有些关键字就像武林秘籍,掌握了它们,你的代码就能上天入地,无所不能!今天就带你揭秘 STM32 中最实用的。,让你的 STM32 项目更加稳定可靠!希望这篇文章能帮你在嵌入式开发的道路上。,让你的嵌入式开发从 “Hello World” 一跃成为 “武林盟主”!
2025-02-19 14:17:35
583
原创 STM32 定时器中断类型大揭秘:谁才是“最强打工人”?
在 STM32 这个江湖里,定时器(TIM)绝对是 “最强打工人”!💼TA 一年 365 天、一天 24 小时不停歇,为我们提供精准的时间管理。但 一个定时器远远不够,TA 还带着一群“中断兄弟”,个个身怀绝技,各司其职。今天,我们就来扒一扒这群“定时器界的社畜”都在干嘛!
2025-02-12 09:59:13
972
原创 STM32定时器“诈尸”事件——为什么 while(1) 能救它一命?
这就好比你安排了一个定时炸弹(定时器),但程序突然说:“哥们儿,我先睡会儿,你自己玩吧。如果你的 STM32 代码里有很多中断,而 TIM 定时器的中断优先级又低,那它可能会被。,STM32 会持续运行,不会擅自进入低功耗模式,定时器自然就能按计划触发中断了!如果你的项目用到了 FreeRTOS,STM32 可能在。STM32 定时器触发一次后就“死”了,通常是因为。,它就能满血复活,正常工作……,不然它会觉得自己“生命走到尽头”然后躺平。,导致它“诈尸”一次后就再也不来了。计时不对,可能会间接影响。
2025-02-11 15:42:25
603
原创 任务调度那些事:中断江湖传说与 HAL_Delay 的“卡死危机”
江湖风云莫测,武功虽强,也需用得其所。希望各位侠士在面对中断和调度问题时,能用上这些化解之道,不被“卡死”危机打乱了节奏。总之,行走 RTOS 江湖,常怀敬畏之心,代码自然稳定如山!在 MCU 编程的江湖中,任务调度与中断控制就像一场风云诡谲的武林争霸。江湖有言:“高手过招,往往胜负只在一线之间”,而这个“一线”,可能就是你调用的。在这种情况下,重新审视代码逻辑,减少不必要的中断屏蔽,或通过更细粒度的锁来保护共享资源,是个明智选择。这就好比武功练到关键时刻,突然丹田被封,气机运行不畅,瞬间入魔。
2025-01-17 14:03:53
546
原创 任务调度那些事:taskENTER_CRITICAL() 和 taskDISABLE_INTERRUPTS() 的中断江湖传说
这是 FreeRTOS 专属的“定点清除”技能,目标明确,只封锁低等级的小喽啰(低优先级中断),让高优先级的中断继续运行。用它就像开了一个“VIP 通道”,大事我先干,重要的事你可以继续来,闲杂人等通通靠边站。它们一个玩精准控制,一个走全场压制,都是中断领域的大侠,但出手风格截然不同。在嵌入式系统里,中断好比江湖上的突袭事件,随时打断你的思路。比如厨房煤气泄漏了(超级关键事件),你得先把所有厨房用具关了(全体中断禁用),这时候别说谁抢煎饼了,命最重要!别急,咱们先从“武功秘籍”看看这俩招式。
2025-01-17 10:20:02
848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人