C语言循环队列 循环队列(Circular Queue / Ring Buffer) 1. 定义 循环队列是基于定长数组实现的队列。其核心思想是将数组视为首尾相接的环形空间,通过让 front / rear 用 % N 循环移动复用存储单元。 在嵌入式系统中,循环队列常称为 Ring Buffer(环形缓冲区),常用于:UART 接收缓冲、按键事件、日志缓存。。 2. 为什么需要循环队列 顺序队列若采用数组实现, C语言进阶 林峰 2小时前 10 热度 0评论
C语言位运算笔记 C 语言位运算是嵌入式开发的基础能力。对于 STM32 来说,GPIO、UART、SPI、定时器等外设最终都是通过寄存器中的 bit 位来控制的。掌握位运算,才能真正理解 HAL 库背后的底层逻辑,并具备直接操作寄存器的能力。 💡 核心结论 嵌入式里最常见的 4 个动作就是:置位、清位、翻转、读位。 六大位运算符速览 运算符 名称 示例 说明 & 按位与 a & b 同 1 为 1 C语言进阶 林峰 8小时前 25 热度 0评论
示波器关键指标之采样率与存储深度 1. 采样率(Sampling Rate,单位:GSa/s / Sa/s) 采样率示波器可以动态调整。 示波器每秒采集多少个电压采样点,相当于相机的「连拍速度」。 这里的 1.00 GSa/s = 每秒采集 10 亿个电压点。 作用:决定你能抓多「快」、多「细节」的信号。 采样率越高,越能还原高频信号的真实波形,不会失真(遵循奈奎斯特采样定理:采样率至少是信号最高频率的 2 倍,工程上用 5-10 电子技术 林峰 2天前 76 热度 0评论
通信协议篇三:USART 串口通信原理详解从帧结构示波器逻辑分析仪波形分析到代码原理 异步串口是嵌入式里最常见的通信方式之一。它硬件简单、成本低、调试方便,既能做日志输出,也能连接上位机、蓝牙、WiFi、GPS、4G 等外设。本文把 USART / UART 的核心概念、帧结构、采样机制、调试方法和实战代码压缩到一篇里,尽量做到好查、好记、好用。 ℹ️ 先记住一句话:日常开发里说的“串口通信”,大多数场景其实就是 USART 的异步模式,常见连线只有 TX、RX 和 GND。 1. 电子技术 林峰 2天前 206 热度 0评论
MOS 管入门:NMOS 与 PMOS 原理、对比与选型详解 1. MOS 管基础 NMOS 与 PMOS 是两种最常见的 MOSFET(场效应管)。理解 NMOS PMOS 区别的起点,是记住 MOS 管用电压控制电流,三极管用电流控制电流。 1.1 管脚说明 MOS 管有三个管脚,PMOS 和 NMOS 管脚名称完全相同: NMOS-PMOS 管脚对比图 管脚 英文 中文 作用 G Gate 栅极 控制极,控制 S 与 D 之间的通断 S Source 电子技术 林峰 4天前 558 热度 0评论
通信协议篇二:I2C 通信协议详解 I2C 通信协议(Inter-Integrated Circuit)是飞利浦设计的两线同步串行总线,仅用 SCL(时钟)和 SDA(数据)两根线即可实现一主多从通信。本文结合 ESP32-C3 + SHT40 实战,从 I2C 通信协议时序原理到 MicroPython 代码逐层拆解。 一、I2C 通信时序详解 ℹ️ 四个核心信号 信号 解决的问题 触发条件 START 通信开始边界 SCL 高电 嵌入式开发 林峰 6天前 298 热度 0评论
C语言进阶:双向循环链表与哨兵头节点 C语言进阶:双向循环链表与哨兵头节点 双向循环链表与哨兵节点是嵌入式 C 语言开发中最实用的链表组合。链表通过指针串联离散内存节点,弥补了数组在插入/删除上的不足。本文重点讲解双向循环链表与哨兵头节点设计——这是嵌入式系统中最常用的链表形态。 一、数组 vs 链表 特性 数组 链表 内存布局 连续,随机访问 O(1) 离散,需遍历 O(n) 插入/删除 需移动数据 O(n) 只改指针 O(1) 大 C语言进阶 林峰 6天前 88 热度 0评论
MQTT 协议详解:Topic、QoS、遗嘱消息与保留消息 MQTT 协议是物联网场景中应用极广的轻量级消息协议,基于发布/订阅模型,专为低带宽、不稳定网络和资源受限设备设计。本文按「协议定位 → 连接存活 → 消息可靠性 → 异常断线 → 状态同步」的顺序,系统梳理 MQTT 协议的五个关键工程机制:Topic 设计、Keep Alive、QoS、遗嘱消息和保留消息。 ℹ️ 先抓住五点 MQTT 是应用层协议,工作在 TCP/IP 之上 它以 Broke Linux系统 林峰 6天前 312 热度 0评论
通信协议篇一:温湿度传感器 DHT11单总线时序详解 通信协议篇二温湿度传感器 DHT11 的时序是理解这个模块的关键。只要搞懂单总线空闲高电平、主机起始信号、传感器响应信号,以及 40 位数据格式,就能更轻松地看懂逻辑分析仪波形,也能理解 ESP32 / MicroPython 代码为什么这样写。 dht11 sensor module overview ℹ️ 核心结论:DHT11 的 DATA 单总线在空闲状态下保持高电平。主机先拉低总线发起通信 嵌入式开发 林峰 7天前 211 热度 0评论
C语言结构体:定义、访问、指针、嵌套 C语言结构体是 C 语言中最常用的复合数据类型之一。它不仅能把多个不同类型的数据组织成一个整体,还经常出现在函数传参、链表设计、设备寄存器映射、通信协议解析等场景中。理解结构体,基本就掌握了 C 语言中“描述复杂对象”的核心手段。 一、C语言结构体是什么? C语言结构体是一种用户自定义的数据类型,可以将多个不同类型的数据组合在一起,形成一个逻辑整体。它特别适合描述一个对象的多种属性,比如学生的姓名 C语言进阶 林峰 9天前 256 热度 0评论