C语言循环队列 循环队列(Circular Queue / Ring Buffer) 1. 定义 循环队列是基于定长数组实现的队列。其核心思想是将数组视为首尾相接的环形空间,通过让 front / rear 用 % N 循环移动复用存储单元。 在嵌入式系统中,循环队列常称为 Ring Buffer(环形缓冲区),常用于:UART 接收缓冲、按键事件、日志缓存。。 2. 为什么需要循环队列 顺序队列若采用数组实现, C语言进阶 林峰 2026-04-05 334 热度 0评论
C语言位运算笔记 C 语言位运算是嵌入式开发的基础能力。对于 STM32 来说,GPIO、UART、SPI、定时器等外设最终都是通过寄存器中的 bit 位来控制的。掌握位运算,才能真正理解 HAL 库背后的底层逻辑,并具备直接操作寄存器的能力。 💡 核心结论 嵌入式里最常见的 4 个动作就是:置位、清位、翻转、读位。 六大位运算符速览 运算符 名称 示例 说明 & 按位与 a & b 同 1 为 1 C语言进阶 林峰 2026-04-04 430 热度 0评论
C语言结构体:定义、访问、指针、嵌套 C语言结构体是 C 语言中最常用的复合数据类型之一。它不仅能把多个不同类型的数据组织成一个整体,还经常出现在函数传参、链表设计、设备寄存器映射、通信协议解析等场景中。理解结构体,基本就掌握了 C 语言中“描述复杂对象”的核心手段。 一、C语言结构体是什么? C语言结构体是一种用户自定义的数据类型,可以将多个不同类型的数据组合在一起,形成一个逻辑整体。它特别适合描述一个对象的多种属性,比如学生的姓名 C语言进阶 林峰 2026-03-26 423 热度 0评论
STM32 中断系统详解:NVIC、EXTI、优先级分组与 HAL 库实战 STM32 中断系统详解 1. 什么是中断? CPU 正在执行主程序,突然外部或内部事件发生(按键按下、定时器溢出、串口收到数据……),CPU 暂停当前工作,跳去处理紧急事件,处理完再回来继续。 中断响应与返回流程 💡 核心思想:中断让 CPU 不用\"傻等\",而是事件驱动——有事才处理,没事干正事。 2. NVIC — 嵌套向量中断控制器 NVIC = Nested Vectored Interr 嵌入式开发 林峰 2026-03-17 1406 热度 0评论
C语言指针详解(下):空指针、野指针、悬空指针与嵌入式实战 C语言指针详解(下)— 安全与嵌入式实战 ℹ️ 导读:本篇讲解指针的安全使用和嵌入式实战。指针基础概念与语法请看《C语言指针详解(上)》。 一、空指针(NULL Pointer) 1.1 定义 空指针是一个不指向任何有效内存地址的指针,其值为 NULL(即 0)。它是 C 语言中表示"指针当前没有指向任何东西"的标准方式。 #include <stdio.h> #i C语言进阶 林峰 2026-03-17 552 热度 0评论
C 语言内存管理(一):内存段与布局(.text/.data/.bss/堆/栈) 内存管理 — 内存段与布局 内存管理是嵌入式 C 语言开发的核心难点。本文聚焦于程序内存布局、内存段的逻辑与物理映射、以及嵌入式内存优化实践。 1 程序内存布局 1.1 内存段的基本概念 C 程序运行时,内存被划分为不同的区域,每个区域存储特定类型的数据: 代码段(.text):存放程序的机器指令,只读 只读数据段(.rodata):存放常量和字符串字面量,只读 已初始化数据段(.data):存放 C语言进阶 林峰 2026-03-14 892 热度 0评论
嵌入式开发中 void 的用法总结 在 C 语言嵌入式开发中,*void 万能指针*是一个必须掌握的核心概念。void* 被称为"万能指针",因为它可以指向任意数据类型,是实现 C 语言"泛型"和"多态"的唯一手段。无论是 RTOS 内核、驱动抽象层,还是硬件寄存器操作,void 万能指针无处不在。本文将从基础概念到实战应用,全面讲解 void* 万能指针的使用方法。 一、 嵌入式开发 林峰 2026-03-08 325 热度 0评论