STM32
文章平均质量分 92
luobeihai
这个作者很懒,什么都没留下…
展开
-
基于MDK-Keil环境如何把STM32程序直接下载到SRAM运行
对于 Cortex-M 内核的微控制器,它们都可以支持在 RAM 中执行程序,有些非 ARM 的微控制器是不支持的。下面只介绍前面两种方式。首先在修改程序在SRAM运行之前,要先准备好一份可以正常在Flash运行的程序。原创 2023-10-04 15:42:33 · 3272 阅读 · 0 评论 -
如何在Keil和IAR环境编译生成的bin文件添加CRC校验值
之前写过一篇文章介绍过 CRC 的原理和应用。在程序升级的情况下,我们可以在烧录下载的 bin 文件添加 CRC 校验值,以校验我们获取的bin文件是否正确。下面我打算使用 APM32F407 的工程代码,介绍下如何在 Keil 环境和 IAR 环境对编译生成的 bin 文件添加 CRC 校验值。准备:1、首先你得准备一个可以正常编译运行的 Keil 和 IAR 工程。原创 2023-10-03 19:08:32 · 4583 阅读 · 4 评论 -
CRC原理介绍及STM32 CRC外设的使用
简称CRC),由于 1961 年首次提出的一种纠错码理论。CRC是一种,主要应用于数据通信或者数据存储的场合,用来检测或校验数据传输或者数据存储后可能出现的错误,特别是擅长检测由传输通道中的噪声引起的常见错误。CRC是数据通信领域中最流行的一种错误检测方法,传输过程中的数据信息字段长度,以及校验码的字段长度可以任意自定义的指定,但是通信双方必须使用同一标准的CRC校验。原创 2023-09-10 00:46:54 · 2309 阅读 · 0 评论 -
MDK-Keil AC6 Compiler屏蔽特定警告
最近在使用STM32CubeMX生成MDK工程是,使用了 AC6 版本的编译器进行编译代码,然后发现了一些警告,但是在 AC5 版本下编译又正常。于是研究了下怎么屏蔽特定的警告,这里记录一下。原创 2023-09-09 00:32:43 · 2230 阅读 · 0 评论 -
基于Geehy APM32F4移植使用letter-shell命令行终端
letter-shell支持定义自己的命令,并且把该命令导出到shell终端中,以供我们在命令行下使用自定义的命令。在使用letter-shell自定义命令时,要先检查 shell_cfg.h 文件是否开启了命令导出功能。/*** @brief 是否使用命令导出方式* 使能此宏后,可以使用`SHELL_EXPORT_CMD()`等导出命令* 定义shell命令,关闭此宏的情况下,需要使用命令表的方式1就是这个宏需要定义为 1。原创 2022-12-18 10:40:43 · 947 阅读 · 0 评论 -
使用Eclipse搭建STM32嵌入式开发环境
Eclipse是一个开放源代码的、基于Java的可扩展的开发平台。它只是一个框架和一组服务,通过添加各种插件来搭建开发环境(这点和VS Code有点像),因此只要添加了C/C++等语言的开发插件,就可以作为C/C++等其它语言的开发环境。下面一一介绍安装这些工具。原创 2022-11-20 11:25:36 · 9207 阅读 · 6 评论 -
IAR9.30以上版本安装、注册、新建工程和配置过程详细介绍
IAR 一般是指一款嵌入式软件的集成开发环境,类似于 MDK-Keil 这款软件。IAR 对于不同的内核处理器,是对应不同的 IAR 软件的,IAR 到目前为止支持大部分的MCU,比如8051系列、ARM架构系列、MSP430系列、AVR系列等等这些常用的芯片架构。对于 ARM 架构的芯片,有对应的 IAR Embedded Workbench for ARM 软件平台,因为我主要是使用 ARM 架构芯片,下面安装、注册和使用都是基于这个版本进行介绍的。原创 2022-09-25 22:48:55 · 39747 阅读 · 16 评论 -
nr_micro_shell在STM32+FreeRTOS平台的移植和使用
nr_micro_shell在STM32+FreeRTOS平台中移植和使用起来。原创 2022-08-31 16:51:13 · 2741 阅读 · 8 评论 -
动手捣鼓一个log打印调试模块
实现了一个 log 打印调试模块。原创 2022-08-30 21:51:24 · 1188 阅读 · 0 评论 -
MultiButton按键驱动模块的使用
介绍一个开源的事件驱动型按键驱动模块 MultiButton 在 STM32F407 上的使用。原创 2022-08-29 17:37:53 · 1843 阅读 · 4 评论 -
OLED12864(SSD1306)驱动代码
基于STM32F407,实现了OLED的驱动相关代码,以及实现了字符显示、绘制任意点、任意线、四边形、三角形圆形等图案功能函数。原创 2022-08-27 21:27:08 · 6651 阅读 · 3 评论 -
使用环形缓冲区ringbuffer实现串口数据接收
文章介绍了环形缓冲区(ringbuffer),以及使用C语言实现了 ringbuffer 的代码。并且在串口接收数据中,使用了 ringbuffer 来保存串口接收的数据。最后,测试了使用 ringbuffer 接收串口数据是否出现丢包现象,以及什么情况下会出现丢包。...原创 2022-08-26 18:13:50 · 9274 阅读 · 3 评论 -
编写MQTTClient测试程序,和PC端运行的MQTT服务程序进行数据收发
使用STM32、ESP8266实现的MQTTClient程序,可以连接远程服务器订阅和发布消息。原创 2022-08-20 23:25:46 · 1158 阅读 · 0 评论 -
实现ESP8266模块的socket接口,以提供MQTTClient库底层数据收发接口
实现ESP8266模块的网络连接、数据收发等接口,从而给提供MQTTClient库与底层平台相关的数据接口。原创 2022-08-19 20:14:06 · 1235 阅读 · 0 评论 -
基于FreeRTOS编写ESP8266的AT命令收发解析器
基于FreeRTOS实现了ESP8266的AT命令收发解析。原创 2022-08-18 16:01:38 · 2926 阅读 · 1 评论 -
AT命令使用和简单介绍
介绍了AT命令,以及AT命令数据格式和组成,AT命令的通讯过程。介绍了ESP8266模块常用的AT命令,以及使用串口助手和模块进行AT命令的数据收发。原创 2022-08-18 14:07:30 · 17637 阅读 · 0 评论 -
移植MQTT源码到STM32F407开发板上
基于FreeRTOS实时系统,移植mqttclient到STM32F407芯片上运行。原创 2022-07-31 11:46:44 · 3222 阅读 · 2 评论 -
STM32CubeMX配置生成FreeRTOS项目
基于STM32F407ZGT6芯片,使用STM32CubeMX快速生成FreeRTOS项目的详细配置过程。原创 2022-07-29 18:18:59 · 4868 阅读 · 5 评论 -
VSCode搭建STM32单片机开发环境
前言由于之前的学习过程中使用过了VSCode、Source Insight这类强大的代码编辑器,感觉实在是太好用了。但是最近自己要用到Keil进行STM32单片机的开发,因为使用过了VSCode这类强大的编辑器之后,就再也回不去了。再次面对Keil时,感觉keil的代码编辑或者阅读代码的功能实在是太不友好了,所以已经习惯不了Keil了。于是,想着能不能在VSCode上搭建类似Keil的开发环境,其实主要就是把keil的编译、在线下载程序、调试环境搬到VSCode上。VSCode上有非常多好用的插件,所以原创 2021-07-03 17:01:22 · 7521 阅读 · 3 评论 -
STM32串行驱动LCD12864显示屏程序代码
1. LCD12864显示原理简单介绍1.1 液晶原理简单介绍LCD屏幕上其实都是一个个的像素点组成的,每行每列都有若干个像素点。每个像素点所占据的数据位宽(或者说像素深度)对于不同类型的屏幕,是不一样的。比如真彩色屏幕,每个像素点占据24bit或者32bit的数据,也就是RGB888或ARGB8888(其中A表示透明度);而对于灰度屏(没错就是那种黑白电视)来说,1个像素点一般只占据8bit;而只有黑白两种颜色的黑白屏,只要1bit数据位即可表示。一般来说,占据的数据位越多,那么它能表示的颜色就越丰富原创 2021-06-26 18:22:19 · 19803 阅读 · 17 评论 -
STM32异常与中断过程详解
1. 异常与中断概念引入异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来原创 2021-06-14 15:28:56 · 17005 阅读 · 15 评论 -
STM32启动过程分析
1. 程序和数据在Flash和SRAM上的存储结构在讲解 STM32 启动过程之前,我们先来了解一下 STM32 的程序和数据在 Flash 和 SRAM 上到底是如何存储的,因为有了这方面的知识之后,非常有助于我们理解 STM32 启动过程中还做了哪些隐藏的工作。关于详细的程序和数据存储分布信息,我们可以从Keil生成的 .map 文件中得到,要生成 .map 文件操作如下:1.1 STM32的程序在flash上的存储结构STM32 的程序在 Flash 上的存储结构如下图所示:栈顶指针 M原创 2021-06-05 15:18:58 · 6969 阅读 · 4 评论