自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 告别裸机编程!uC/OS 移植 STM32 全攻略,多任务调度原来这么简单

​ 本文详细介绍了将 uC/OS 实时操作系统移植到 STM32F103c8t6 的全过程,以及基于该系统实现多任务协同运行的方法。首先阐述了 RTOS 与 uC/OS 的基础概念,包括 RTOS 的实时性、确定性特点,以及 uC/OS 小巧精干、可裁剪、实时性强等优势,为后续移植工作奠定理论基础。​ 移植过程中,通过 STM32CubeMX 配置工程,导入 uC/OS 相关文件并合理分组,修改启动文件、配置文件及串口驱动等关键代码,解决了硬件适配与资源限制问题。

2025-11-02 22:39:49 1112

原创 从 0 到 1 玩转 OLED:STM32 移植 U8g2 库实现图形、中文与动画显示全攻略

本文将从原理到实战,详细记录整个过程,包括 I2C 协议理解、OLED 工作原理、U8g2 库移植步骤,以及最终实现的显示效果,适合嵌入式初学者参考。U8g2是GitHub上一款十分优秀的开源图形库GUI库),其本质是嵌入式设备的单色图形库。在 Github 上超过3.2K Star,2.6K Commit。其开发语言90%为C语言,且代码简洁干练便于移植与后期修改。支持多种显示器(包括 OLED),内置字体、图形绘制函数,简化了显示逻辑。支持中文字体(需加载对应字库);提供分页显示、滑动等高级功能;

2025-10-30 19:19:45 1063

原创 嵌入式干货:软件 I2C vs 硬件 I2C 怎么选?附 AHT20 温湿度采集实战教程,看完就能上手!

AHT20 是一款高精度温湿度传感器,采用 I2C 通信协议,默认地址为0x38湿度:0~100% RH(精度 ±2% RH)温度:-40℃~85℃(精度 ±0.3℃)初始化:上电后需发送初始化命令(0xBE),等待传感器响应(约 40ms)。数据读取:发送测量命令(0xAC)后,传感器需约 80ms 完成测量,随后通过 I2C 读取 6 字节数据(含湿度、温度原始值及校验位)。数据格式。

2025-10-26 20:51:09 1206

原创 玩转 STM32 定时器:从多任务并发到呼吸灯的实战指南

该内容围绕 STM32F103C8T6 的定时器中断与 PWM 应用展开,介绍了两部分核心内容:一是利用 TIM2 和 TIM3 定时器中断实现多任务并发,通过配置合适的预分频器和自动重装载值,分别实现 2 秒 LED 闪烁与 5 秒串口发送消息的功能,并对比了轮询法的不足;二是借助 TIM3 和 TIM4 的 PWM 功能实现呼吸灯效果,通过动态调整占空比让外接 LED 和板载 LED 呈现亮度平滑变化的效果,同时说明了相关配置与实现原理。

2025-10-20 19:39:01 904

原创 从原理到实战:串口通信全解析 —— 从电脑互传文件到 STM32 高效通信秘籍

本文围绕串口通信展开了全面的知识讲解与实践操作,系统覆盖了从基础原理到实际应用的关键内容。首先,科普了串口通信的核心基础,包括基于 UART 协议的异步通信特点,以及 RS-232 标准的物理层约定(差分电平传输特性)。通过对比表格清晰呈现了 RS-232 与 TTL 电平在逻辑定义、应用场景上的核心区别,并详解了 CH340 模块作为 USB 转 UART 芯片的工作原理,及其在电脑与串口设备、单片机间通信的桥梁作用。

2025-10-20 14:44:07 1264

原创 库文件构建到内存探秘:Linux 与 STM32 的 C 语言底层实践全解析

/ 实现hello函数,功能是在屏幕输出"Hello XXX!\n", name);动态库本身比静态库大很多动态链接的可执行文件比静态链接的小使用 - fPIC 编译的目标文件比普通目标文件稍大静态链接会将库代码嵌入可执行文件,而动态链接在运行时才加载库本文围绕嵌入式开发中的库文件使用与程序编译运行机制展开深入实践。

2025-10-11 22:01:25 1062

原创 从 0 到 1!STM32F103C8T6 流水灯实战:CubeMx 配置 + Keil 编程 + Proteus 仿真全流程

因为我们之前在stm32cubemx的操作,GPIO等的初始化已经自动配置好了,我们只用在main.c中进行书写代码即可。完成所有配置后,点击 “Generate Code” 按钮生成初始化代码,生成完成后可直接打开 Keil 工程。启动 STM32CubeMx 软件,创建一个全新的工程文件,作为项目开发的基础。注意设置频率,如果未进行设置可能导致仿真无法进行,频率与时钟树中的频率保持一致。完成代码编写后,在 Keil 中执行编译,生成可执行文件(.hex)。型号芯片,完成工程的初始创建。

2025-10-09 16:07:37 1376

原创 stm32c8t6寄存器方式与标准库实现流水灯

芯片手册中无法直接寻找到所有寄存器的地址,有的需要通过计算得到(计算公式:基地址=总线基地址+偏移基地址)。在《STM32F10xxx参考手册_V10》中可以找到寄存器组起始地址,可以找到GPIOC相关寄存器范围为0x4001 1000 - 0x4001 13FF。图中显示低电平持续时间为0.673002s,高电平持续时间为2.01602s。我设置的是四盏灯轮流灭灯1000ms即1s,与实际持续时间差距较大。寻找到存储数据的寄存器,其基地址为0x4001 1000+0x08=0x4001 1008。

2025-09-20 18:06:40 678

原创 Ubuntu用gcc和Makefile编译C程序以及Windows编译C程序

在本次 Ubuntu 系统下的 C 语言编程实践中,我分别采用了 gcc 直接编译和 Makefile 编译两种方式来生成可执行文件。通过使用 gcc 这种更基础的编译工具,我得以深入了解 C 语言源程序转化为可执行文件的完整流程,这与 Windows 环境下 IDE 提供的 “一键编译” 形成了鲜明对比。尽管 IDE 的自动化编译功能带来了便捷,却在一定程度上掩盖了编译过程的细节。

2025-09-17 21:25:44 884

空空如也

空空如也

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

TA关注的人

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