STM32
文章平均质量分 86
STM32开发
Ch_champion
爱上挨踢,成为一名(软/硬件)合格的攻城狮
联系方式:加这个QQ号:191502656
展开
-
STM32HAL-最简单的时间片论法
一款占用资源最小的时间片论法框架原创 2024-06-14 23:26:04 · 484 阅读 · 0 评论 -
STM32HAL-最简单的长、短、多击按键框架
一款占用资源最小的按键框架原创 2024-06-02 22:46:42 · 708 阅读 · 0 评论 -
STM32HAL-完全解耦面向对象思维的架构-时间轮片法使用(timeslice - pro)
双向链表时间片论法原创 2024-05-19 23:20:21 · 833 阅读 · 0 评论 -
一个基于单片机内存管理-开源模块
一个基于单片机内存管理-开源模块原创 2024-04-14 20:43:31 · 1276 阅读 · 3 评论 -
基于STM32HAL库(窗口看门狗)-简述
基于STM32HAL库讲解 “窗口看门狗 ”示例原创 2023-11-05 17:19:39 · 379 阅读 · 0 评论 -
基于STM32HAL库(独立看门狗)-简述
基于STM32HAL库讲解 “独立看门狗 ”示例原创 2023-11-05 14:39:08 · 675 阅读 · 0 评论 -
STM32HAL-完全解耦面向对象思维的架构-时间轮片法使用(timeslice)
完全解耦面向对象思维的架构-时间轮片法原创 2023-11-03 00:21:46 · 2140 阅读 · 0 评论 -
STM32-bootloader的实现和应用
stm32 Bootloader原理分析转载 2023-10-15 20:58:33 · 4581 阅读 · 0 评论 -
STM32标准库代码转为LL库代码-详解
标准库代码转为LL库代码原创 2023-10-11 20:50:38 · 1285 阅读 · 0 评论 -
STM32HAL库-F4-针对芯片内部FLASH读保护实现防篡改、破解功能(详解)
STM32HAL库-F4系列,针对芯片读写保护实现防篡改、破解功能(详解)原创 2023-03-08 23:38:05 · 1695 阅读 · 1 评论 -
STM32读写内部Flash(介绍+附代码)
概述内部flash读写详解一、介绍首先我们需要了解一个内存映射:stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同。RAM起始地址是0x2000 0000,结束地址是0x2000 0000加上芯片的RAM大小。不同的芯片RAM也不同。Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失,RAM可以理解为内存,用来存储代码运行时的数据,变量等等。掉电数据丢失...原创 2022-04-10 22:34:54 · 40195 阅读 · 13 评论 -
STM32内存结构介绍和FreeRTOS内存分配技巧
概述这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32内存的相关知识。所以首先大致介绍一下STM32的内存结构。一、STM32内存结构STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,能掉电储存,并且一般空间比RAM大...转载 2022-04-10 22:24:14 · 2482 阅读 · 3 评论 -
STM32HAL库 基于Flash+FatFs模拟U盘形式进行固件拷贝升级(详解)
概述 做电子产品,如果不支持固件升级,后期可能带来维护成本非常巨大,为了降低后期维护成本,引入固件升级功能是基本条件。网上这些资料一抓一大把,我这里直接说怎么使用,具体原理,大家伙自行网上查找资料科普,在此本人分享一种,将APP的bin文件复制到模拟U盘里,进行固件升级方式。比起ST官网介绍的DFU模式还要便捷,无需第三方上位机,无需安装任何驱动,方可对产品固件升级。ST官网例程(AN4657-STM32Cube_IAP_using_UART)链接一、STM32CubeMx配...原创 2021-07-01 12:30:40 · 9564 阅读 · 2 评论 -
基于STM32HAL库编写状态机模式
概述 本篇文章介绍如何使用STM32HAL库,编写一些项目时经常使用到an'z原创 2021-06-16 16:47:00 · 10015 阅读 · 1 评论 -
STM32HAL库-针对芯片内部EEprom读写操作介绍
概述 本篇文章介绍如何使用STM32HAL库,本案例只要介绍如何操作芯片内部EEprom读写数据,类似操作Flash写法。(注:有些型号才有内部EEprom,没有的话,只能使用内部FLASH模拟EEprom,或者外挂EEprom芯片)硬件:STM32L051C8T6最小系统板软件:Keil 5.29+ STM32CubeMX6.2.1一、使用方法 通过参阅《STM32数据手册》得知,通过目录找到芯片中的内部eeprom章节,如下所示:在《STM...原创 2021-05-12 22:44:51 · 19203 阅读 · 6 评论 -
STM32HAL库-F1-针对芯片内部FLASH读保护实现防篡改、破解功能(详解)
概述 本篇文章介绍如何使用STM32HAL库,针对芯片读写保护实现防篡改、破解功能(详解),实质也是操作Flash。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX5.6.1一、使用方法 通过参阅《STM32中文参考手册》得知,不同型号的芯片对应FLASH大小不一样,如下所示:在《STM32中文参考手册》pdf文档中找到,第2.3.3小节:嵌入式闪存,对应的页数30。这里我使用的是STM32F103...原创 2021-04-28 19:47:36 · 18695 阅读 · 5 评论 -
STM32HAL 移植功能强大letter-shell开源库(裸机开发)
概述letter shell 3.0是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数。优点:使用C99语法编写,并且没有平台相关代码; 没有动态内存分配; 使用更优的内存复制而不是循环从内存读取数据/向内存写入数据;GitHub:https://github.com/NevermindZZT/letter-shell硬件:STM32F103CBT6最小系统板软件:Keil 5.29...原创 2021-04-26 11:52:17 · 15636 阅读 · 2 评论 -
STM32HAL 移植json解析器开源库(裸机开发)
概述 json是一个资源占用极小的json解析器,号称世界上最快,并遵循 MIT 开源许可协议。GitHub:https://github.com/zserge/jsmn优点:代码移植性高 占用代码小 极其简单,只需使用两个API硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法Downloadjsmn.h, include it, done.#include "jsmn.h".....原创 2021-04-26 11:29:07 · 13897 阅读 · 0 评论 -
STM32HAL 移植cmd-parser(新增哈希算法)解析器开源库(裸机开发)
概述 cmd-parser是一个资源占用极小的命令解析器,并遵循 Apache License v2.0开源协议。GitHub:https://github.com/jiejieTop/cmd-parser优点:用户无需关心命令的存储区域与大小,由编译器静态分配。 加入哈希算法超快速匹配命令,时间复杂度从O(n*m)变为O(n)。 命令支持忽略大小写。 非常易用与非常简洁的代码(不足150行)。硬件:STM32F103CBT6最小系统板软件:Keil 5.29...原创 2021-04-26 11:20:18 · 13654 阅读 · 0 评论 -
STM32HAL 移植一款通用FIFO轻量级环形缓冲管理器开源库lwrb(裸机开发)
概述ringbuff 是一款通用FIFO环形缓冲区实现的开源库,并遵循 MIT 开源许可协议。ringbuff优点:使用C99语法编写,并且没有平台相关代码; 没有动态内存分配; 使用更优的内存复制而不是循环从内存读取数据/向内存写入数据;GitHub:https://github.com/MaJerle/lwrb硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法https://docs.maj...原创 2021-04-26 10:17:48 · 15888 阅读 · 4 评论 -
STM32HAL库-移植mbedtls开源库示例(二)
概述本篇文章介绍如何使用STM32HAL库,这篇文章只要是讲如何使用mbedtls开源库,实现 1、base64编码,2、AES加解密示例。怎么样移植mbedtls开源库,请阅读我写的一篇文章《STM32HAL库-移植mbedtls开源库示例(一)》。GitHub:https://github.com/ARMmbed/mbedtls硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01使用前,需了解,你产品中的FL...原创 2021-04-23 00:52:24 · 14525 阅读 · 1 评论 -
STM32HAL库-移植SFUD开源库
概述本篇文章介绍如何使用STM32HAL库,移植SFUD开源库。GitHub:https://github.com/armink/SFUD硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法0、SFUD 是什么SFUD是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现...原创 2021-04-21 16:41:17 · 10714 阅读 · 0 评论 -
STM32HAL库-移植mbedtls开源库示例(一)
概述 本篇文章介绍如何使用STM32HAL库,移植mbedtls开源库支持mqtt证书加密示例。GitHub:https://github.com/ARMmbed/mbedtls硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码参考文章:1、https://www.i...原创 2021-04-21 16:33:26 · 12824 阅读 · 2 评论 -
STM32 基于Keil IDE 开发引用 Astyle 第三方工具格式化插件
概述 本篇文章介绍如何使用Keil IDE,引用Astyle 第三方工具格式化代码。GitHub:硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码参考文章:1、https://www.jianshu.com/p/f22b369ca71e2、https://blog...原创 2021-04-21 15:56:34 · 9404 阅读 · 0 评论 -
STM32HAL库-移植Unity针对微控制器编写测试框架
概述 本篇文章介绍如何使用STM32HAL库,移植Unity 是一个为C语言构建的单元测试框架,侧重于使用嵌入式工具链。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码参考文章:1、https://www.sohu.com/a/367952273_505803...原创 2021-04-21 15:38:59 · 10201 阅读 · 0 评论 -
STM32引用“CmBacktrace”: ARM Cortex-M 系列 MCU 错误追踪库
概述 本篇文章介绍如何使用STM32HAL库,移植J-Link RTT软件调试示例,从此解放传统串口打印输出,JLINK RTT代替串口输出printf,输出速率比传统USB转串口CH430还要快。GitHub:https://github.com/armink/CmBacktrace硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、E...原创 2021-04-21 15:23:15 · 11457 阅读 · 0 评论 -
STM32HAL库-移植J-Link RTT软件调试神器
概述 本篇文章介绍如何使用STM32HAL库,移植J-Link RTT软件调试示例。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码五、总结 好了,就介绍到此。...原创 2021-04-21 09:50:08 · 9490 阅读 · 0 评论 -
STM32HAL库-内部Flash在指定页读写保护示例
概述 本篇文章介绍如何使用STM32HAL库,内部Flash读写示例。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码五、总结 好了,就介绍到此。...原创 2021-04-21 09:43:44 · 9704 阅读 · 0 评论 -
STM32HAL库-USART-调试串口(大小端测试)
概述 本篇文章介绍如何使用STM32使用HAL库,来读取 UID唯一码加密示例。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码五、总结 好了,就介绍到此。...原创 2021-04-21 09:41:12 · 9247 阅读 · 0 评论 -
STM32HAL库-读取芯片维一码(UID)加密
概述 本篇文章介绍如何使用STM32使用HAL库,来读取 UID唯一码加密示例。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法二、STM32CubeMx配置三、Examples四、运行结果传送门->代码五、总结 好了,就介绍到此。...原创 2021-04-21 00:29:14 · 8640 阅读 · 2 评论 -
STM32HAL库-实现USB虚拟串口打印(printf功能)
概述 本篇文章介绍如何使用STM32使用HAL库,来实现USB虚拟串口打印功能,代替传统中的串口打印。硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码参考文章:1、https://www.stm32cube.com/question/262、https://w...原创 2021-04-20 17:37:59 · 10115 阅读 · 3 评论 -
STM32HAL库-自带CRC对数据冗余校验讲解
概述 本篇文章介绍如何使用STM32使用HAL库,自带CRC功能检验数据正确性。CRC校验原理:循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码参考文章:https://bruce...原创 2021-04-20 17:25:42 · 11570 阅读 · 2 评论 -
STM32HAL库-读取芯片维一码(UID)
概述 本篇文章介绍如何使用STM32使用HAL库,来读取 UID唯一码示例,硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法 二、STM32CubeMx配置三、Examples四、运行结果传送门->代码五、总结 好了,就介绍到此。...原创 2021-04-20 17:20:07 · 10370 阅读 · 5 评论 -
STM32HAL 移植MultiButton小巧简单事件驱动型按键驱动框架(裸机版本)
概述 本篇文章介绍如何使用STM32移植 MultiButton开源框架,引用官网简述如下:MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。GitHub:https://github.com/0x1abin/MultiButton硬件:正点原子探索者开发板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法...原创 2021-04-20 12:12:01 · 6895 阅读 · 1 评论 -
STM32CubeMX 使用手册中文版(官网下载详解)
概述 自从STM32CubeMX,有了这个利器,开发STM32简单了很多,前提是要学会使用STM32CubeMX工具,英文基础差的情况下,寸步难行,官网也比较友好给我中国开发者攻城狮们翻译了一份中文版本的。1、使用浏览器输入“https://www.st.com/content/st_com/zh.html”,官网地址。(右上角选择中文显示)2、在输入栏中输入“STM32CubeMX”,会搜索出如下界面。3、找到“用户手册”。4、找到了“用户手册中文版本”。5、点击.....原创 2021-04-19 14:38:46 · 14771 阅读 · 3 评论 -
STM32HAL 移植 FlashDB 超轻量级的嵌入式数据库框架(裸机版本)
概述 FlashDB是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。FlashDB提供两种数据库模式:键值数据库:是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB 操作简洁,可扩展性强。 时序数据库:时间序列数据库 (Time Serie...原创 2021-04-17 14:56:43 · 9804 阅读 · 2 评论 -
STM32HAL 移植 cJSON开源库 (裸机开发神器)
概述本篇文章介绍如何使用STM32内部Flash,将日志信息保存在Flash中,使用时再去读取。这样做得好处,就是非常适合物联网终端设备使用,使得日志可以更加容易的存储在非文件系统中,并具有历史日志检索的功能。GitHub:https://github.com/armink/EasyFlash硬件:STM32F103CBT6最小系统板软件:Keil 5.29+ STM32CubeMX6.01一、使用方法...原创 2021-04-16 12:23:40 · 6165 阅读 · 0 评论 -
STM32HAL 移植 EasyFlash 开源框架(裸机开发神器)
概述 本篇文章介绍如何使用STM32内部Flash,将日志信息保存在Flash中,使用时再去读取。这样做得好处,就是非常适合物联网终端设备使用,使得日志可以更加容易的存储在非文件系统中,并具有历史日志检索的功能。GitHub:https://github.com/armink/EasyLogger/blob/master/docs/zh/port/flash.md硬件:STM32F103CBT6最小系统板软件:Keil 5.29 + STM32CubeMX6.01一、使...原创 2021-04-14 12:00:10 · 9830 阅读 · 1 评论 -
STM32HAL 移植 EasyLogger 极简美开源打印文件日志输出(裸机开发神器)
EasyLogger 是一款超轻量级日志库原创 2021-04-14 11:03:10 · 11235 阅读 · 2 评论 -
STM32HAL 移植 MultiTimer 极简美开源软件定时器(裸机开发神器)
概述 MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。GitHub:https://github.com/0x1abin/MultiTimer硬件:STM32F103CBT6最小系统板软件:Keil 5.29 + STM32CubeMX6.01一、使用方法1.先申请一个定时器管理handlestruct Timer timer1;2.初始化定时器对象,注册定时器回调...原创 2021-04-12 21:48:12 · 5322 阅读 · 0 评论