自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Car12

主要从事Visual C++开发,Linux开发,STM32

  • 博客(524)
  • 资源 (46)
  • 收藏
  • 关注

原创 stm32f103RCT 使用ssd1306 IIC 接口 移植lkdGUI

ldkGUI关于lkdGUI的信息参考:https://blog.youkuaiyun.com/qq_23274715/article/details/80959804已经移植好的程序源码和测试代码:https://gitee.com/chejia12/lkd-gui移植ldkGUI参考官方给的参考文档手把手教你移植创建stm32f103rct6 mdk工程添加OLED驱动添加OLED sd1306库函数,添加OLED分组添加驱动源文件,添加驱动头文件,字体文件参考:https://blo

2021-11-26 19:00:05 1546

原创 ldkGUI如何添加自定义的字库

需求:我要添加一个自己的16x16的字库文件。

2025-06-11 11:47:46 2

原创 如何在RTT中添加ldkGUI组件

摘要:本文介绍了将ldkgui图形库集成到RT-Thread系统的步骤:1)将源码复制到utilities目录;2)修改Kconfig添加GUI配置选项和字体选择;3)创建SConscript文件管理编译过程,根据配置动态加载不同字体驱动;4)通过menuconfig配置工程并生成rtconfig.h;5)在MDK中查看文件分组验证集成成功。整个流程包含源码部署、构建系统配置和工程验证三个主要环节。(150字)

2025-06-11 11:38:40 2

原创 RT Thread平台下 基于N32G45x和N32L40x的drv_pwm驱动实现

pwm驱动框架分析。

2025-06-04 20:15:00 48

原创 RT Thread 基于N32G457实现UART V2驱动实现

libraries\N32G45x_Firmware_Library\SConscript修改文件根据串口驱动的版本选择驱动文件使能V2版本的串口驱动修改添加串口的配置,目前只添加了串口1,2,3

2025-05-27 17:27:11 48

原创 RT Thread串口V2版本的驱动框架分析和N32L40x的实现

串口外设的遵循如下规则配置结构体头文件rt-thread\components\drivers\include\drivers\serial_v2.h串口的操作接口串口设备驱动注册二、驱动框架分析串口V2注册 分析这里解释了如何从找到rt_serial_open打开分析fifo用于串口数据发送和接收rt_serial_open主要工作2.接收 接口函数赋值有fifo则申请fifo设置串口工作模式非阻塞模式阻塞模式1.RECV 没有buff的读接口函数 _serial_p

2025-05-27 10:00:06 148

原创 RT Thread Nano V4.1.1 rtconfig.h 注释 Configuration Wizard 格式

Configuration Wizard 格式🔧 Configuration Wizard 格式详解1. 基本结构该格式通过特定的注释标签来描述配置项类型和属性,IDE(如 Keil μVision、IAR Embedded Workbench、VSCode + 插件等)可以识别这些标签并生成图形化配置界面。所有配置都写在 C/C++ 头文件中,并以特殊注释标记包裹。

2025-05-24 17:02:22 331

原创 如何解决全局或静态变量被修改的bug

程序原来设置Firware name 时N32G475,在程序运行时,程序崩溃,发现输出的固件名称没有了,这里说明固件名称被程序修改了。memset置零长度错误导致清理了固件的名称。这里的pBuff就是dataBuff。程序在开机时都是对的。分析程序的map文件。

2025-05-20 16:36:55 198

原创 论在中断中的标志变量使用volatile的重要性分析

在使用STM32进行串口中断发送数据时,由于send_busy标志未及时写入内存,导致数据发送异常。通过分析,发现问题的根源在于编译器对变量的优化行为。volatile关键字用于告知编译器,该变量的值可能被外部因素(如硬件、中断等)改变,因此每次访问时都必须从内存中读取或写入,避免编译器优化导致的错误。与非volatile变量不同,volatile变量在汇编层面表现为每次访问都直接操作内存,确保数据的实时性和正确性。通过使用volatile关键字,可以有效解决类似问题,确保程序在多线程或中断环境下的正确执行

2025-05-15 18:05:13 73

原创 RT Thread 发生异常时打印输出cpu寄存器信息和栈数据

在发生 HardFault 时,打印当前栈的十六进制数据和 CPU 寄存器信息是非常重要的调试手段。以下是如何实现这一功能的具体步骤和示例代码。我们需要在 HardFault 中捕获异常上下文,并从中提取寄存器值和栈数据。当 HardFault 发生时,处理器会自动将寄存器压入栈中(通常是 PSP 或 MSP)。我们可以通过汇编代码获取当前栈指针,并将其传递给 C 函数。在 C 函数中,我们解析栈中的寄存器值,并打印栈数据和寄存器信息。

2025-04-25 21:31:17 137

原创 沁恒CHV203中断嵌套导致修改线程栈-韦东山

沁恒CH32V203中断嵌套bug

2025-04-24 20:46:21 198

原创 RTS 如何使用流控方式自动实现收发

通过 UART 控制器的硬件流控功能,可以实现 RTS 引脚的自动化控制,从而简化 RS-485 的半双工通信实现。如果硬件支持流控,推荐使用这种方式,因为它减少了手动干预的需求,提高了系统的可靠性和效率。如果不支持硬件流控,则需要通过软件手动控制 RTS 引脚的状态切换。

2025-04-24 20:23:30 718

原创 RTT添加一个RTC时钟驱动,以DS1307为例

这里多了一个选项复制drv_rtc.c,重命名为drv_rtc_ds1307.c添加到工程中。

2025-04-14 15:13:22 151

原创 LittleFS v2.9.3 完整API说明及示例代码

挂载LittleFS文件系统,必须在其他操作前调用。

2025-04-01 11:38:17 759

原创 at32f103a+rtt+AT组件+esp01s 模块使用

at32f103a+rtt+AT组件+esp01s 模块使用

2025-02-23 20:58:22 146

原创 at32f103a+rtt+组件cm_backtrace组件使用

mdk编译生成汇编文件汇编:fromelf --text!bin文件:fromelf --bin!处理编译问题修改线程名变量组件初始化rt_cm_backtrace_initRTT组件内部已经初始化完成,用户无需干预参数配置。

2025-02-23 09:37:58 82

原创 AT32F403A+RT THREAD+DFS文件系统

问题未解决,可能时at32f403的驱动问题,尝试了lsi和lse都不行,设置时间可行,就是不走秒。设置扇区大小,因为W25q128是4096个字节为一个扇区,SD卡一般是512(默认)获得可以用于挂载的块类型设备,那么移植的工作就算完成了。首次开启使能rtc驱动,发现可以设置时间,但是时钟不走。因为sfud需要spi驱动的支持需要使能spi驱动。格式化文件系统发现,缺少rtc驱动支持。使用软件rtc时间动起来了,哈哈哈。dfs文件系统跑起来需要的最低资源。依赖:rtc时间,块设备,dfs。

2025-02-23 09:29:02 195

原创 at32f403a rt thread led基础bsp工程测试

切换到V5.1.0分支(使用一个发布版本可以避免不必要的bug)导出一个独立的AT32F403A的BSP工程。3个led的引脚是PB1 ,PB2,PB10。编译发现了一堆问题,can fifo重复定义。导出一个独立的AT32BSP。根据自制的开发板点亮led。github版本更新最新。官方BSP编译失败处理。

2025-02-22 19:19:39 72

原创 AT32F403A+RT Thread标准版+fal组件+sfud使用教程

AT32F403A+RT Thread标准版+fal组件+sfud使用教程

2025-02-22 19:12:21 236

原创 RT Thread驱动框架分析--硬件定时器(hwtimer)分析

基于N32+RTthread硬件定时器驱动框架分析

2025-01-25 15:07:21 139

原创 N32的位带操作

gpio位带操作

2025-01-17 20:14:23 63

原创 注释插件使用 Doxygen Documentation Generator

在setting中添加内容。

2025-01-08 10:10:16 376

原创 【瑞萨RA8D1 CPK开发板】串口的使用和STDOUT输出重定向

本次串口的使用关于时钟导致串口的波特率不对,坑了我很久的时间使能时钟串口发现一个问题就是,只能使用下边的时钟配置,修改时钟源和分频系数都会导致串口波特率不正常,这种问题出现在mdk+rasc的使用场景之下;本人使用E2Studio的开发方式使用随便哪个时钟源串口的输出时钟都不存在问题,建议使用E2Studio开发方式。

2024-10-11 22:00:00 592

原创 【瑞萨RA8D1 CPK开发板】lcd显示

由于板子引出的接口限制,故使用gpio模拟spi驱动中景园的1.8寸lcd。屏蔽stm32先关头文件和gpio初始化。使用RASC 的gpio配置。根据厂家提供的驱动文件移植。

2024-10-11 22:00:00 474

原创 【瑞萨RA8D1 CPK开发板】环境搭建、资料下载,基础工程创建

CPKCOR-RA8D1B核心板 是瑞萨电子为中国市场设计的模块化开发板, 它使用了瑞萨电子(U1),RA8D1能够在480MHz 频率下实现超过3000 CoreMark 分数的突破性性能,可支持高分辨率显示和视觉AI应用的卓越图形功能。板卡支持MIPI-DSI显示输出接口。CPKCOR-RA8D1B板上除了实现RA8D1最小系统外,还搭载了实用的外设功能,包括:- 16位SDRAM(U2),32M字节容量- QSPI Flash(U3),16M字节容量。

2024-10-11 21:45:00 1003

原创 fatfs API使用手册

配置/*---------------------------------------------------------------------------// Configurations of FatFs Module/---------------------------------------------------------------------------*/#define FFCONF_DEF 80286 /* Revision ID *//*--------------

2024-09-30 15:52:46 1397

原创 N32移植sd卡和fatfs 文件系统

FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言(ANSI C C89)编写,所以具有良好的硬件平台独立性,只需做简单的修改就可以移植到 8051、PIC、AVR、ARM、Z80、RX 等系列单片机上。它支持 FATl2、FATl6 和(这个格式电脑端直接可以访问),支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。文件说明。

2024-09-30 15:48:40 401

原创 N32G45x实现sdio接口读取sd卡+sd卡的IAP升级

本方案依赖1. sdio接口读取sd卡3. fatfs文件系统4. N32IAP升级教程1.sdio接口读取sd卡驱动来自官方的demo/***************************************************************************** * Copyright (c) 2019, Nations Technologies Inc. * * All rights reserved. * ************************

2024-09-30 15:34:31 93

原创 N32L40x基于串口的IAP升级升级速度2Mbps+上位机工具

/这里的0x50000就是bootloader使用的空间,APP分布于bootloader之后的空间。0xaa,0xaa 数据id2个字节(高位,低位),数据错误代码(1个字节), 数据*N 0xaa,0xaa。0xaa,0xaa 数据ID 2个字节(高位,低位) 数据*N 0xaa,0xaa ,异或检验。bootloader给他分配了20K=0x50000;这里实际使用了7K多。APP下发数据包结构;累计 2+2+N+2+1 个字节,此文件不需要修改,作为lib使用。在main函数入口添加。

2024-09-30 15:16:31 611

原创 arm mcu STM32跳转到系统厂家的dfu bootloader

【代码】arm mcu STM32跳转到系统厂家的dfu bootloader。

2024-09-28 22:47:20 209

原创 stm32 8080时序驱动lcd屏幕

经过测试探索者开发板使用模式A和模式B都可以驱动lcd驱动,主要是时序参数必须和lcd驱动芯片一致。fsmc相关的gpio配置位推挽复用模式。他这里使用的是FSMC的NOR 模式B。​ 2. 使用SRAM存储器模式。他们使用EXMC驱动外部lcd。​ 3. 16位数据宽。gpio,fsmc时钟使能。​ 2.数据建立时间。​ 2.数据建立时间。​ 3.使用模式A。​ 3.使用模式A。​ 4. 写使能。背光gpio输出配置。​ 1.地址建立时间。fsmc控制相关配置。

2024-09-01 09:00:47 508

原创 基于gd32f103移植fal Flash 抽象层

在头文件中需要实现接口: Flash 设备的名字,这个名字在定义分区表要使用。0x08000000: 对 Flash 操作的起始地址。1024*1024:Flash 的总大小(1MB)。128*1024:Flash 块/扇区大小(因为 STM32F2 各块大小不均匀,所以擦除粒度为最大块的大小:128K)。:Flash 的操作函数。如果没有 init 初始化过程,第一个操作函数位置可以置空。8。

2024-08-13 20:45:00 218

原创 Agile Modbus移植教程--基于GD32F103C8T6+RT-Thread+mdk5

Agile Modbus移植教程--基于GD32F103C8T6+RT-Thread+mdk5

2024-08-13 20:30:00 2778 1

原创 基于N32L406+FlashDB(键值数据库 时序数据库)+mdk5 移植教程

一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。FlashDB 不仅支持传统的基于文件系统的数据库模式,而且结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命FlashDB 提供两种数据库模式:- **键值数据库** :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB 操作简洁,可扩展性强。- **时序数据库** :时间序列数据库 (Time Series Databa

2024-08-01 19:45:00 1449

原创 基于N32L406MB EasyFlash参数(key-value)记录库移植

是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发EasyFlash不仅能够实现对产品的或等信息的掉电保存功能,还封装了简洁的方法, 降低了开发者对产品参数的处理难度,也保证了产品在后期升级时拥有更好的扩展性。。该库封装了IAP(In-Application Programming)功能常用的接口,支持CRC32校验,。

2024-07-31 22:00:00 987

原创 基于N32L406+Freertos+letter_shell终端开源库移植

是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数相对2.x版本,letter shell 3.x增加了用户管理,权限管理,以及对文件系统的初步支持此外3.x版本修改了命令格式和定义,2.x版本的工程需要经过简单的修改才能完成迁移若只需要使用基础功能,可以使用版本使用说明可参考Letter shell 3.0 全新出发如果从3.0版本迁移到3.1以上版本,请注意3.1版本对读写函数原型的修改。

2024-07-31 21:30:00 997

原创 基于N32L406的EasyLogger日志库移植教程

一款超轻量级(ROM

2024-07-31 21:30:00 943

原创 N32L406 移植MultiTimer教程 mdk5

MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。

2024-07-30 19:00:00 761

原创 N32L406x+MultiButton+Mdk5移植教程

MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。

2024-07-30 14:33:05 869

原创 基于N32L40x CmBacktrace mdk5平台下的移植测试

CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库

2024-07-30 09:50:57 1348

如何在RTT中添加ldkGUI组件

ldkgui 在RTT中作为组件

2025-06-11

RT Thread平台下 基于N32G45x和N32L40x的drv-pwm驱动实现

drv_pwm.c在N32平台下

2025-06-04

RT Thread 基于N32G457实现UART V2驱动实现

RT Thread 基于N32G457实现UART V2驱动实现

2025-05-27

RT Thread串口V2版本的驱动框架分析和N32L40x的实现

RT Thread串口V2版本的驱动框架分析和N32L40x的实现

2025-05-27

论在中断中的标志变量使用volatile的重要性分析

论在中断中的标志变量使用volatile的重要性分析

2025-05-15

at32f103a+rtt+AT组件+esp01s 模块使用

at32f103a+rtt+AT组件+esp01s 模块使用

2025-02-23

组件cm-backtrace组件使用

组件cm_backtrace组件使用

2025-02-23

AT32F403A+RT THREAD+DFS文件系统

AT32F403A+RT THREAD+DFS文件系统

2025-02-23

AT32F403A+RT Thread标准版+fal组件+sfud使用教程

测试工程AT32F403A+RT Thread标准版+fal组件+sfud使用教程

2025-02-22

【瑞萨RA8D1 CPK开发板】lcd显示

【瑞萨RA8D1 CPK开发板】lcd显示

2024-10-11

【瑞萨RA8D1 CPK开发板】串口的使用和STDOUT输出重定向

串口程序

2024-10-11

【瑞萨RA8D1 CPK开发板】环境搭建、资料下载,基础工程创建

LED工程

2024-10-11

Arm Cortex-M异常分析

Arm Cortex-M异常分析

2024-10-06

N32移植sd卡和fatfs 文件系统

N32移植sd卡和fatfs 文件系统

2024-09-30

N32G45x实现sdio接口读取sd卡+sd卡的IAP升级

N32G45x实现sdio接口读取sd卡+sd卡的IAP升级

2024-09-30

N32L40x基于串口的IAP升级升级速度2Mbps

包含bootloader代码和升级工具

2024-09-30

arm mcu STM32跳转到系统厂家的dfu bootloader

111111111

2024-09-28

stm32 8080时序驱动lcd屏幕

内部含有多个驱动代码和lvgl移植示例代码

2024-09-01

fal移植测试demo

FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API (框架图如下所示),并具有以下特性: - 支持静态可配置的分区表,并可关联多个 Flash 设备; - 分区表支持 **自动装载** 。避免在多固件项目,分区表被多次定义的问题; - 代码精简,对操作系统 **无依赖** ,可运行于裸机平台,比如对资源有一定要求的 Bootloader; - 统一的操作接口。保证了文件系统、OTA、NVM(例如:[EasyFlash](https://github.com/armink-rtt-pkgs/EasyFlash)) 等对 Flash 有一定依赖的组件,底层 Flash 驱动的可重用性; - 自带基于 Finsh/MSH 的测试命令,可以通过 Shell 按字节寻址的方式操作(读写擦) Flash 或分区,方便开发者进行调试、测试;

2024-08-13

Agile Modbus移植教程-基于GD32F103C8T6+RT-Thread+mdk5

轻量型 modbus 协议栈

2024-08-13

基于N32L406+FlashDB(时序数据库 时序数据库)+mdk5 移植教程

一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。FlashDB 不仅支持传统的基于文件系统的数据库模式,而且结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命 FlashDB 提供两种数据库模式: - **键值数据库** :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB 操作简洁,可扩展性强。 - **时序数据库** :时间序列数据库 (Time Series Database , 简称 TSDB),它将数据按照 **时间顺序存储** 。TSDB 数据具有时间戳,数据存储量大,插入及查询性能高,数据写满后默认状态是**滚动写入**(也可以设置不覆盖方式)

2024-08-01

基于N32L406MB EasyFlash参数(key-value)记录库移植

[EasyFlash]是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源占用极低,支持各种 MCU 片上存储器

2024-07-31

基于N32L406的EasyLogger日志库移植教程

基于N32L406的EasyLogger日志库移植教程

2024-07-31

N32L40x letter-shell终端裸机移植

[letter shell]是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数

2024-07-31

基于N32L406 Freertos letter-shell开源终端移植

letter_shell 是一个C语言编写的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式设备,以C语言函数为运行单位,可以通过命令行调用,运行程序中的函数 相对2.x版本,letter shell 3.x增加了用户管理,权限管理,以及对文件系统的初步支持 此外3.x版本修改了命令格式和定义,2.x版本的工程需要经过简单的修改才能完成迁移 若只需要使用基础功能,可以使用letter shell 2.x

2024-07-31

N32L406x+MultiButton+Mdk5移植教程

N32L406x+MultiButton+Mdk5移植教程

2024-07-30

N32L406 移植MultiTimer教程 mdk5

MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。

2024-07-30

基于N32L40x CmBacktrace mdk5平台下的移植测试

N32L40x CmBacktrace Freertos 测试使用

2024-07-30

基于stm32f103rc+lvgl8.2移植

lvgl

2024-07-28

基于N32L40x+w25q16+sfud nor flash开源库移植

基于N32L40x+w25q16+sfud nor flash开源库移植

2024-07-04

N32G45x基于串口IAP实现(含升级工具)

N32G45x基于串口IAP实现(含升级工具)

2024-06-22

中景园1.08寸128x160屏幕移植lvgl

中景园1.08寸128x160屏幕移植lvgl

2024-04-14

移植中景园的1.8寸128x160 的lvgl代码

移植中景园的1.8寸128x160 的lvgl代码

2024-04-14

N32L40x基于串口IAP实现(含升级工具)

N32L40x基于串口IAP实现(含升级工具)

2024-03-10

沁恒CH32V30X学习笔记12-PWM输出

沁恒CH32V30X学习笔记12-PWM输出

2024-02-19

沁恒CH32V30X学习笔记11-使用外部时钟模式2采集脉冲计数

沁恒CH32V30X学习笔记11-使用外部时钟模式2采集脉冲计数

2024-02-19

沁恒CH32V30X学习笔记08-基本定时器超时功能

沁恒CH32V30X学习笔记08-基本定时器超时功能

2024-02-19

沁恒CH32V30X学习笔记09-使用TIM 外部时钟1模式实现硬件计数

沁恒CH32V30X学习笔记09-使用TIM 外部时钟1模式实现硬件计数

2024-02-19

沁恒CH32V30X学习笔记08-基本定时器超时功能

沁恒CH32V30X学习笔记08-基本定时器超时功能

2024-02-19

stm32f103RCT 使用ssd1306 IIC 接口 移植lkdGUI

stm32f103RCT 使用ssd1306 IIC 接口 移植lkdGUI

2025-06-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除