STM32
文章平均质量分 92
蜘蛛-侦探
擅长嵌入式领域相关的开发,如软件框架设计、GUI和各种设备等开发,具备多年物联网开发经验。
目前在机器人领域从事开发工作。
希望个人和大家都不要去限制自己,以自己要去实现的产品为目标导向去学习自己想要去学习的技术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件设计 - 用C实现面向对象
介绍一种面向对象的GPIO接口封装方法,遵循DRY和WORA设计准则,实现底层硬件与上层应用的解耦。通过Gpio_S结构体封装硬件差异,使用映射表将逻辑引脚转换为物理寄存器配置,使芯片更换时只需修改底层映射而无需改动业务代码。同时采用回调函数机制处理中断,分离硬件驱动与业务逻辑。这种设计提高了代码的可维护性和可移植性,适用于各种复用性高的组件封装。原创 2026-02-27 22:09:06 · 692 阅读 · 0 评论 -
聊一聊 - STM32的堆和栈空间怎么分配
借助实际碰到的问题引出排查过程,并和大家聊一聊当出现栈空间不足时如何合理的规划栈和堆的大小。原创 2026-01-07 08:34:46 · 1435 阅读 · 0 评论 -
聊一聊 - CANOPEN
聊一聊CANOPEN的一些基础知识和概念原创 2026-01-07 08:30:28 · 1147 阅读 · 0 评论 -
聊一聊 - RS485
最近在机器人产品中经常接触到485,所以就想着系统的梳理下,方便后续的查看和回顾以及对自己不懂的地方进行查漏补缺。本篇属于学习笔记记录原创 2025-11-25 08:41:12 · 1332 阅读 · 0 评论 -
FreeRTOS - 定时器踩坑记录(注意用不好真的会崩)
在STM32设备上,使用FreeRTOS时遇到设备重启后反复崩溃的问题。经过排查,发现与FreeRTOS定时器的使用不规范有关。具体表现为定时器回调函数执行时间过长,导致定时器消息队列堆积,最终引发系统崩溃。通过分析栈回溯和定时器源码,确认了问题的根源,并提出了增加定时器队列大小和优化回调函数执行时间的解决方案。文章详细介绍了排查过程,并总结了FreeRTOS定时器的使用规范,以避免类似问题的发生。原创 2025-05-22 17:11:51 · 1839 阅读 · 0 评论 -
STM32开发过程中碰到的问题总结 - 4
记录下在使用STM32L4系列芯片进行开发时,碰到的各种问题,第4期。比较杂。原创 2025-04-20 15:12:55 · 1597 阅读 · 0 评论 -
一文读懂安全加密相关知识
通俗理解安全加密相关知识。原创 2025-03-23 20:54:03 · 844 阅读 · 0 评论 -
N32G003查看设备重启原因
分享获取N32G003设备重启的代码,以及其他单片机想要获取设备重启原因的代码编写思路原创 2025-02-23 21:43:35 · 869 阅读 · 0 评论 -
一种简单的将app.hex和boot.hex进行合并的方法
在开发调试过程中,我们一般采用将bootloader的程序如boot.hex和的程序如app.hex进行分别下载的方式,即采用两次下载。但是在产线上为了增加生产效率,一般都会要求研发提供一种只烧录一次即可的办法,这时我们经常采用将boot.hex与app.hex进行合并生成一个后重新烧录的方式。原创 2025-02-23 20:43:24 · 617 阅读 · 0 评论 -
聊一聊 - FreeRTOS的调度器是如何接管main函数的
我们知道在使用FreeRTOS时,当我们在main函数中调用了之后,FreeRTOS的任务调度器就接管了main()了,且不会运行main中之后的代码了。之前我一直认为FreeRTOS中有类似于while(1)地方,所以调用了();之后就不会再往下继续运行了。然后带着这种想法我去查看了FreeRTOS的代码,可是走进()的实现,并没有找到有任何wihle(1)的地方。于是为了找到答案,我重新梳理了下FreeRTOS的任务调度器是如何接管main。原创 2025-01-09 20:31:15 · 1226 阅读 · 0 评论 -
N32使用定时器TIM1注意事项
在N32G003上进行裸机驱动代码编写时,碰到一个使用TIM1输出PWM一直没有波形的问题。本来想着以自己多年的开发经验,写个裸机的驱动不是轻而易举,没想到还是花费了点时间,这里发出来和大家分享一下。原创 2025-01-07 20:59:03 · 2058 阅读 · 0 评论 -
一种好用简单的软件定时器写法(支持裸机)
分享一种我近些年经常使用,好用简单的裸机软件定时器写法可以运行在各类单片机的裸机中,这块的设计主要参考开源GUI引擎AWTK的定时器实现。不需要操作系统的接口,也不需要链表,简单好用易懂。原创 2024-12-24 19:00:59 · 1208 阅读 · 0 评论 -
FreeRTOS的辅助调试手段
在使用FreeRTOS开发的过程中,经常碰到因内存不足以及线程栈溢出而产生的崩溃问题。起初对FreeRTOS不熟悉,碰到这种崩溃问题就是通过map文件反向查看是不是崩在了FreeRTOS的线程或者定时器调度中,如果是这几个里面那么大概率是线程或者定时器的资源不足,导致的崩溃,然后尝试增加资源再次进行尝试。等空下来去查看FreeRTOS有哪些调试手段,发现人家本身提供的就有“线程栈溢出钩子函数”以及“内存分配失败的钩子函数”,只是自己没有用起来。下面简单介绍下这两种调试手段怎么使用。原创 2024-11-26 20:00:41 · 1236 阅读 · 0 评论 -
外置看门狗与STM32内置看门狗介绍
要永远保持一颗好奇心。原创 2024-10-24 17:05:39 · 2019 阅读 · 0 评论 -
STM32崩溃问题排查
近期发现合并了一些其它平台上的代码到STM32上后,出现了崩溃问题,于是想要整体梳理下STM32上崩溃问题排查的原理。原创 2024-07-07 15:50:20 · 1769 阅读 · 0 评论 -
STM32开发过程中碰到的问题总结 - 3
记录下在使用STM32L4系列芯片进行开发时,碰到的各种问题,最后一期。比较杂。原创 2024-06-18 16:53:07 · 565 阅读 · 0 评论 -
STM32开发过程中碰到的问题总结 - 2
记录下在使用STM32L4系列芯片进行开发时,碰到的各种问题,第二期。比较杂。原创 2024-06-14 13:39:25 · 1225 阅读 · 0 评论 -
STM32开发过程中碰到的问题总结 - 1
记录下在使用STM32L4系列芯片进行开发时,碰到的各种问题。比较杂。原创 2024-06-13 21:10:40 · 1188 阅读 · 0 评论 -
STM32CubeMX 生成的代码框架解析 - 最小化工程篇(含FreeRTOS)
最近因为工作中要用到STM32+FreeRTOS进行开发,因此借助此次机会学习下STM32CubeMX生成的带有FreeRTOS的工程代码。熟悉下其生成代码的结构,以及一些细节。这篇的话我想首先分析下,最简单的结构是什么样的,即所有的都按照默认来,不增加外设驱动,不对FreeRTOS进行过多的配置,我称之为最小化工程。后面再通过写一些增加驱动、FreeRTOS的各项配置等来进行对比,进一步加强理解。文件夹总目录下分别有4个文件夹Core、Drivers、MDK-ARM、Middlewares。原创 2024-03-25 17:00:03 · 4887 阅读 · 0 评论 -
STM32 使用gcc编译介绍
我们在STM32上进行开发时,一般都是基于Keil5进行编译下载,Keil5中默认集成了arm的编译工具链。这种方式的优点是简单方便,但是相对应的不够灵活。例如我们在实际开发过程中经常一套代码需要在不同的RTOS和硬件平台上运行,为了更好的维护这套代码,我们一般会对RTOS和硬件驱动进行抽象,不同的RTOS和硬件平台分别是实现这些抽象。然后通过编译时传入不同参数来确定最终要使用的RTOS和硬件平台。这种情况如果利用Keil5去直接编译就比较麻烦,因此我们需要借助makefile去组织和管理代码。原创 2024-03-23 11:43:17 · 2616 阅读 · 0 评论 -
STM32 CubeMX使用介绍(含FreeRTOS生成)
手上有块STM32L4的板子,想要在上面把FreeRTOS给用起来,顺便把这个板子也用起来。自己在网上找了下Free RTOS的源码,下载下来后发现移植目录下有Core-M4的移植版本。本想着拿来直接用,但是发现又缺少了STM32L4的驱动,然后通过一些其它渠道了解到,现在STM芯片开发方式大都是通过ST公司提供的STM32 CubeMX来生成驱动和Free RTOS。这里记录下学习使用STM32 CubeMX生成含FreeRTOS 操作系统和驱动工程的过程。原创 2024-03-19 20:13:08 · 7169 阅读 · 0 评论
分享