- 博客(42)
- 收藏
- 关注
原创 STM32电机不转?从代码到原理的3个实战避坑指南:PWM配置、驱动调试全解析
电机明明接好线、代码也烧录了,却死活不转——这大概是每个嵌入式开发者在电机控制开发中都可能遇到的“灵魂拷问”。本文正是一位开发者在STM32电机控制实战中,针对“电机不转”问题的完整排查与复盘记录。
2025-07-26 15:23:52
447
原创 STM32F4踩坑小记——能不能将函数拷贝到CCMRAM中运行?
本文是接续上一篇文章《从编译到内存全揭秘!STM32工程师必看:点击Build后,代码到底经历了什么?》的进一步探索。在上一篇文章的`5.4 小试牛刀:将中断回调函数拷贝到RAM中运行`章节后,我突发奇想,能不能将函数拷贝到`CCM RAM`中运行?那样的话会更快捷的呀!这个问题困扰了我整整一天的时间,熬夜到半夜,还是无法跳出坑……
2025-07-16 17:52:08
569
原创 STM32F4踩坑小记——使用HAL库函数进入HardFault
这次的踩坑让我出乎意外,因为我的CRC外设的代码一直是正常运行的,后来不知道怎么的,一运行`HAL_CRC_Calculate()`函数,就进入了`hardfault`,为此懊恼不已。问题出在哪里呢?本文洋洋洒洒写了很多,如果您希望直奔最后的解决方案,请直接跳转到`2.8 问题解决`一章节即可。前面写了很多分析过程,弯弯绕绕,不见得读者喜欢。然而这是我的思考过程,里面有讲调试的方法,汇编语句的分析,参考手册的查询和理解,数据手册的阅读和与代码的对照。信息量很多,希望能给大家带来帮助!
2025-07-16 15:07:19
786
原创 从编译到内存全揭秘!STM32工程师必看:点击Build后,代码到底经历了什么?
点击STM32CubeIDE的“编译”按钮,看着进度条滚动时,你有没有好奇过:一行行C代码是如何变成单片机能执行的二进制文件的?为什么明明定义了变量到CCMRAM,map文件里却跑到了RAM?编译后的数据段、代码段到底藏在Flash还是RAM里?为什么有时候函数必须放到RAM里才能跑?
2025-07-15 23:02:13
848
原创 FreeRTOS踩坑小记——vTaskList函数的使用
在 FreeRTOS 中,`vTaskList()` 是一个用于调试的实用函数,用于输出系统中所有任务的详细状态信息。我在使用中遇到了坑,今天分享出来,希望大家不会踩到。
2025-07-11 19:06:31
970
原创 STM32F4 ADC 深度解析:从原理到实战,告别踩坑指南
你是否还在为 STM32F4 的 ADC 配置抓耳挠腮?明明按手册步骤操作,却始终读不到正确的 VBAT 电压?温度传感器数据偏差巨大,查遍资料也找不到症结?这篇文章就是为嵌入式开发者量身打造的ADC 通关秘籍!我们不只会带你吃透 STM32F4 ADC 的底层原理 ——12 位高精度转换、19 路通道灵活配置、规则 / 注入通道的优先级机制,更用 ”厨师做菜“ 的生动比喻让抽象的寄存器操作一目了然。
2025-07-08 23:25:18
712
原创 FreeRTOS内核控制函数全解析:吃透实时系统核心机制
本文聚焦FreeRTOS中最核心的13个内核控制函数,从`taskYIELD()`触发的PendSV异常机制,到`taskENTER_CRITICAL()`系列函数对中断的精细管理;从调度器的启动与暂停,到系统节拍的手动调整,逐一拆解源码实现与底层逻辑。
2025-07-07 22:17:00
581
原创 FreeRTOS延时函数深度解析:从原理到实战,一文掌握任务调度核心机制
本文将打破“知其然不知其所以然”的困境:从SysTick中断到任务阻塞机制,从相对延时的底层代码逐行拆解到绝对延时的时间戳奥秘,再到实验测试中LED闪烁频率的差异验证,完整覆盖从原理到落地的全链条知识。无论你是嵌入式新手还是进阶开发者,这里都有你需要的“时间管理”密钥
2025-07-06 18:09:11
1215
原创 keil编译成功后无法跳转查看变量或函数的定义问题解决方案
如果你的keil在编译成功之后,无法在代码中查看变量和函数的定义,无法跳转,请看一下这篇文章,也许能帮到你!
2025-07-03 17:27:02
176
原创 keil报错:error: #268: declaration may not appear after executable statement in block解决方法
大家有遇到题目中的问题吗?如果正在为此问题困扰,不妨看一下这篇文章的解决方法,保准药到病除!
2025-07-03 13:46:07
301
原创 FreeRTOS时间片调度及实践测试
上一篇文章《硬核解析FreeRTOS任务切换:从寄存器底层到PendSV机制,一文吃透核心原理》介绍了不同优先级的任务之间如何切换,本质上是“抢占式调度”。那么问题来了,相同优先级且都处于就绪态的任务如何进行切换呢?
2025-07-02 19:03:50
948
原创 从底层到实战:FreeRTOS队列全解析,4万字爆肝指南让你一次吃透多任务通信核心
你是否在FreeRTOS多任务开发中遇到过这些困惑: - 任务间消息传递总出bug,数据丢包、错乱怎么破? - 中断里发消息总崩溃,普通任务和ISR的队列操作到底有啥区别? - 队列满了该阻塞等待还是直接覆写?静态创建和动态创建哪个更适合你的场景?
2025-07-01 23:39:17
757
原创 硬核解析FreeRTOS任务切换:从寄存器底层到PendSV机制,一文吃透核心原理
你是否曾困惑于嵌入式系统中多任务是如何“无缝切换”的?当CPU在不同任务间快速跳转时,背后隐藏着怎样的底层逻辑?本文将以FreeRTOS为例,带您穿透代码表象,直击任务切换的核心本质——**CPU寄存器与堆栈的精妙配合**,以及PendSV异常如何确保切换过程安全无干扰。
2025-07-01 23:27:53
1033
原创 STM32F4硬核实战:FSMC驱动TFTLCD从原理到代码全解析,附避坑指南+调试干货
你是否曾在配置FSMC时序时因参数匹配问题抓耳挠腮?是否在驱动LCD时被地址映射、数据宽度等细节搞得晕头转向?这篇文章将从底层原理出发,带你打通“FSMC驱动TFTLCD”的任督二脉:从FSMC的存储区块划分、信号引脚功能,到TFTLCD的接口类型、驱动芯片指令集,再到硬件电路与代码的深度耦合实现,每一个环节都配有原理图解析、时序图说明和调试案例。
2025-06-30 15:18:52
832
原创 STM32F4 RTC从原理到实战全解析:硬件架构+代码流程+闹钟实战(附可直接复用代码)
在嵌入式开发中,实时时钟(RTC)就像设备的“时间管家”——从智能仪表的时间戳记录到物联网传感器的定时唤醒,几乎所有需要“时间感知”的场景都离不开它。作为STM32F4开发者,你是否曾困惑于RTC的32.768kHz晶振为何是标配?备份域寄存器解锁机制该如何正确使用?闹钟中断配置后为何迟迟不触发?这篇文章将带你系统攻克STM32F4 RTC的所有核心知识:从电源域隔离的硬件架构讲起,拆解LSE晶振分频为1Hz的底层逻辑,到HAL库初始化流程的每一步寄存器操作,再到实战演练。
2025-06-29 22:50:46
839
原创 STM32BCubeIDE编译报警告“.elf has a LOAD segment with RWX permissions”解决方法
你是否在升级STM32CubeIDE后遇到过这样的编译警告——?当熟悉的工程突然冒出这个提示,不少开发者会陷入困惑:明明代码没改,为什么新版本IDE会报警告?这个看似陌生的"RWX权限"到底意味着什么安全隐患?作为经历过从旧版本升级到1.18.1的开发者,我曾被这个警告困扰许久。
2025-06-29 13:38:06
438
原创 STM32CubeIDE中文注释变乱码终极解决方案:3步设置永久解决锟斤拷问题!
你是否在STM32CubeIDE中遇到过这样的崩溃场景?——精心编写的中文注释在重新生成代码后变成“锟斤拷”乱码,不仅影响代码可读性,反复修改更是浪费大量时间!作为STM32开发者,我曾被这个问题困扰许久,试过修改软件设置、工程编码却始终治标不治本。直到发现这个基于Java环境变量的终极解决方案,才彻底解决了中文乱码难题。
2025-06-27 20:09:21
678
5
原创 C语言专题——关键字详解
学C语言的宝子们看过来!这篇耗时3天整理的「C语言关键字全攻略」终于完工啦~从32个关键字的分类解析到实战避坑指南,手把手带你吃透C语言的核心语法,收藏这篇=拥有一本「C语言关键字字典」,从此编程再也不怕语法坑!
2025-06-24 21:21:33
668
原创 FreeRTOS任务调度器的启动流程和第一个任务被调用的全过程
本文从FreeRTOS的源码入手,较为系统全面地分析了任务调度器的启动流程和第一个任务被调用的前因后果,最后采用MDK仿真的方式让大家理解任务启动的过程,也包含了很重要的调试技巧。全文包含了一些细微却重要的知识点,需要我们理解并掌握。这一部分对于FreeRTOS整体而言至关重要,所以我尽可能用通俗易懂的方式向大家阐明。文章中大量使用截图的方式,理解起来更容易,希望可以给大家带来帮助!全文一万余字,干货满满。
2025-06-19 17:32:53
1147
原创 FreeRTOS内核核心:列表与列表项从原理到实战,一文吃透任务调度的“串珠子“逻辑
你知道FreeRTOS的任务调度、事件管理靠什么实现吗? 答案藏在“列表”和“列表项”这两个看似简单的数据结构里——它们就像内核的“骨架”,支撑着任务排序、状态切换、超时管理等核心功能。
2025-06-17 23:12:51
1035
原创 STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读
STM32F4的定时器分为高级定时器,通用定时器和基本定时器。上一篇文章已经讲了基本定时器。本文遵从由简入繁的原则,先讲解通用定时器的原理,并通过PWM实例帮助大家加深对通用定时器的理解,最后介绍通用定时器的寄存器,旨在帮助大家逐步掌握通用定时器的全部功能。TIM2-TIM5TIM9和TIM12虽然都是通用定时器,也有细微的差别。本文讲解TIM10/TIM11/TIM13/TIM14和TIM9和TIM12两个部分。
2025-06-14 22:51:07
1901
原创 FreeRTOS任务相关API简介
本文介绍了几个常用的FreeRTOS任务相关的API,列举了任务的创建、删除,挂起和恢复的API,并介绍了函数功能、入参等信息。专为初学者入门而写。希望可以给大家带来帮助。pvTaskCode:任务函数指针。pcName:任务名称。:任务栈大小。:传递给任务的参数。uxPriority:任务优先级。xRegions:内存区域定义,用于 MPU 保护。
2025-06-14 14:10:27
606
原创 FreeRTOS优先级终极对决:任务VS中断的「数字陷阱」,开发者踩过的坑!
你是否曾在FreeRTOS开发中遇到过这样的魔幻场景?——精心设置的高优先级任务突然被低优先级中断打断,或者中断服务函数里调用API时系统莫名崩溃。这些诡异现象的背后,往往藏着一个让开发者头痛的「数字悖论」:**任务优先级数值越大越高,而硬件中断优先级数值越小越高**。这对看似矛盾的规则,正是FreeRTOS与底层硬件交互时最容易踩的坑!
2025-06-14 14:01:36
926
原创 STM32F4基本定时器使用和原理详解
STM32的定时器非常强大,我计划分好几篇文章来细讲。本文介绍基本定时器的原理和使用方法。而通用定时器和高级定时器都是从基本定时器扩展丰富而来,所以先把基本定时器掌握了,为下一步掌握更高级的定时器打好基础。STM32中,基本定时器有TIM6和TIM7,我们就以这两个定时器说起。TIM2-TIM5 和 TIM9-TIM14是通用定时器,而TIM1和TIM8是高级控制定时器。
2025-06-10 21:18:02
1201
原创 STM32嵌套向量中断控制器(NVIC)及外部中断使用案例分析
本文并不是简单介绍一下外部中断的使用和NVIC浅层的内容,而是从内核角度,深入剖析中断的内涵,中断向量表和MVIC内部机理,最后以外部中断使用案例结束。相信会给你带来惊喜。
2025-06-09 21:12:45
1179
1
原创 FreeRTOS硬核解析:从任务调度到TCB核心机制,这篇文章让你避开90%的开发陷阱!
你是否遇到过这样的困惑:任务优先级设置后却无法按预期执行?vTaskDelay()到底是在“摸鱼”还是真的释放CPU?当系统崩溃时,你是否曾对着任务控制块(TCB)的报错信息抓耳挠腮?
2025-06-09 17:19:13
882
原创 FreeRTOS中断屏蔽终极指南:从BASEPRI到临界段,破解99%开发者踩过的寄存器陷阱!
本文从FreeRTOS的中断配置和临界段的角度出发,深入探讨了Cortex-M内核的中断屏蔽机制、FreeRTOS系统对中断的屏蔽理念、临界段的含义和种类及实现方式。最后通过测试FreeRTOS关闭中断和打开中断前后的实验现象,进一步理解FreeRTOS对中断的管理。全文一万多字,耐心看完,收获满满。
2025-06-07 23:13:19
895
原创 STM32F4看门狗原理与实战:从独立看门狗到窗口看门狗的全流程解析
本文详细介绍了独立看门狗和窗口看门狗的配置方法、内部原理和使用方法,对初学者有很大的帮助。全文九千五百多字,耗时一整天的时间。如果您对这一块知识存在一些疑惑,相信看完也会收获满满。
2025-06-06 22:59:47
970
原创 STM32CubeIDE串口配置全流程:从参数设置到代码解析的实战指南
本文从STM32CubeIDE的配置出发,详细介绍了配置流程,另外深入解析USART生成的HAL库初始化相关代码,并给出通过中断和轮询的接收、发送函数的使用方法。尤其对于中断发送函数、中断接收函数的使用和内部原理给出独到而又准确的见解,相信对你有很大的帮助!如果你有这方面的需要,相信你阅读完成会满载而归。
2025-06-05 19:40:53
921
原创 FreeRTOS在STM32上的移植实战:从环境准备到代码实现的详细步骤(基于标准库-Keil环境)
本文详细介绍了将FreeRTOS V9.0.0移植到STM32F407ZGT6开发板(基于标准库)的全过程。主要内容包括:FreeRTOS简介、移植注意事项、前期准备工作(提供源码和工程下载链接)、FreeRTOS源码复制与工程配置(包含文件删除和Keil分组设置)、头文件路径添加以及关键代码修改(重点修改FreeRTOSConfig.h文件以避免函数冲突)。文章以正点原子LED跑马灯工程为基础,通过图文并茂的方式逐步指导读者完成移植,特别针对新手可能遇到的问题提供了解决方案。
2025-06-04 13:15:54
1336
原创 STM32F4串口打印功能的实现及拓展
本文硬件基于正点原子STM32F4探索者开发板,采用STM32F407ZGT6主控芯片,本文的代码运行环境为**STM32CubeIDE**,实现了串口打印和接收数据,并实现了printf和scanf的函数功能,可以酌情移植到其他硬件电路中。
2025-06-02 21:06:15
1157
原创 使用STM32CubeIDE踩的小坑——在别的文件定义的函数无法在main.c里正常调用
别的文件夹下的.c 文件需要特意关照一下才会参加编译吗?
2025-05-26 21:37:05
714
原创 STM32CubeMX实战:待机模式与唤醒功能的完整配置流程和代码编写
本文详细介绍了STM32待机模式及唤醒功能的实现方法。通过STM32CubeMX配置时钟源(可选择内置HSI或外置晶振)、唤醒源(PA0引脚)和LED引脚,并编写代码实现上电检测待机状态标志、待机模式进入及唤醒功能。实验现象显示,设备能在待机模式下被PA0引脚的上升沿触发唤醒,并通过LED闪烁指示唤醒状态。文章还提供了调试步骤,通过观察PWR寄存器验证待机唤醒功能。该方案适用于低功耗场景,完整展示了从配置到验证的全流程。
2025-05-25 22:42:27
1033
原创 EB导入SW32K3_RTD_R21-11_4.0.0_P16 (AUTOSAR 4.7.0)之后打开CAN模块失败解决方法
EB Tresos
2024-05-19 23:00:03
645
1
空空如也
DoIP在TCP/IP协议之上,如何传输大量数据?
2023-06-06
在TwinCat3上同时对两个从站发送数字量,验证EtherCat同步性
2023-02-18
请问DSP28335可以用XINTF接8位的存储器吗?
2023-01-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人