HC-SR04超声波测距模块:卡尔曼滤波练习

HC-SR04 是一款经典的超声波测距模块,测距范围 2cm ~ 400cm,精度约 3mm。这篇主要不是单纯讲模块怎么用,而是拿它来练一遍卡尔曼滤波,顺便把工作原理、接线方法、MicroPython 实现和中值滤波配合思路一起记下来。 ℹ️ 先记个结论:HC-SR04 的本质就是发射超声波,测回波时间,再换算距离。 一、工作原理 HC-SR04 模块通过发射超声波并接收回波来测量目标距离,工作频
HC-SR04超声波测距模块:卡尔曼滤波练习

Arduino 与 MicroPython 基础入门:PWM、GPIO、ADC、串口、Socket 与计时基础

这篇笔记整理了 Arduino UNO 与 ESP32-C3 MicroPython 开发里最常用的基础知识,包括 PWM、时间函数、GPIO、ADC、多线程、串口、Socket 以及 Arduino 常见数值类型。内容尽量保持“短、准、方便查阅”,适合作为入门和速查参考。 一、PWM 输出基础: Arduino analogWrite() 与 MicroPython PWM PWM(脉宽调制)通
Arduino 与 MicroPython 基础入门:PWM、GPIO、ADC、串口、Socket 与计时基础

通信协议篇三:SPI 通信原理详解之时钟模式、时序与W25Q32示例

SPI 是嵌入式开发里最常见的高速串行总线之一。相比 I2C 和 UART,SPI 结构更直接、速度更高,也更适合和 Flash、ADC、DAC、显示屏等板级外设通信。本文从底层原理、时钟模式、通信时序到 W25Q32 读 ID 实验,系统讲清 SPI 到底是怎么工作的。 ℹ️ 一句话先讲清楚:SPI(Serial Peripheral Interface,串行外设接口)是最早由摩托罗拉(Moto
通信协议篇三:SPI 通信原理详解之时钟模式、时序与W25Q32示例

通信协议篇二:I2C 通信协议详解

I2C 通信协议(Inter-Integrated Circuit)是飞利浦设计的两线同步串行总线,仅用 SCL(时钟)和 SDA(数据)两根线即可实现一主多从通信。本文结合 ESP32-C3 + SHT40 实战,从 I2C 通信协议时序原理到 MicroPython 代码逐层拆解。 一、I2C 通信时序详解 ℹ️ 四个核心信号 信号 解决的问题 触发条件 START 通信开始边界 SCL 高电
通信协议篇二:I2C 通信协议详解

通信协议篇一:温湿度传感器 DHT11单总线时序详解

通信协议篇二温湿度传感器 DHT11 的时序是理解这个模块的关键。只要搞懂单总线空闲高电平、主机起始信号、传感器响应信号,以及 40 位数据格式,就能更轻松地看懂逻辑分析仪波形,也能理解 ESP32 / MicroPython 代码为什么这样写。 dht11 sensor module overview ℹ️ 核心结论:DHT11 的 DATA 单总线在空闲状态下保持高电平。主机先拉低总线发起通信
通信协议篇一:温湿度传感器 DHT11单总线时序详解

STM32 总线架构详解:ICode/DCode/System/DMA 工作原理

STM32 总线架构采用改进型哈佛架构,CPU 通过 ICode、DCode、System 三条通路工作,DMA 也能作为主设备参与访问;AHB/APB 是片上总线分层,连接不同速率的外设。本文将从访问通路和片上互连两个层次,帮你建立清晰的认知。 改进型哈佛架构:为什么要多条总线 架构 特点 冯·诺依曼 指令和数据共享一条路,易瓶颈 经典哈佛 指令和数据分路,但结构死板 STM32 改进型哈佛 统
STM32 总线架构详解:ICode/DCode/System/DMA 工作原理

C语言弱链接函数完全指南:__weak原理与STM32实战

1. 什么是弱链接函数 __weak 修饰的函数属于弱符号,用于提供可被覆盖的默认实现。当链接时发现同名的强符号函数,链接器会优先使用强符号,弱符号被忽略。 ℹ️ 典型应用:HAL 库提供空的弱回调函数,用户在自己的代码中实现同名函数即可覆盖,无需修改库代码。 2. 语法格式 GCC 原生语法是 __attribute__((weak)),通常会自定义宏 __weak 来简化使用: #define
C语言弱链接函数完全指南:__weak原理与STM32实战

STM32 中断系统详解:NVIC、EXTI、优先级分组与 HAL 库实战

STM32 中断系统详解 1. 什么是中断? CPU 正在执行主程序,突然外部或内部事件发生(按键按下、定时器溢出、串口收到数据……),CPU 暂停当前工作,跳去处理紧急事件,处理完再回来继续。 中断响应与返回流程 💡 核心思想:中断让 CPU 不用\"傻等\",而是事件驱动——有事才处理,没事干正事。 2. NVIC — 嵌套向量中断控制器 NVIC = Nested Vectored Interr
STM32 中断系统详解:NVIC、EXTI、优先级分组与 HAL 库实战

C语言指针详解(上):指针变量、函数指针

C语言指针详解(上):指针变量、函数指针 本篇讲解指针的核心概念与使用方法。关于指针安全(空指针、野指针)和嵌入式实战用法,请看《C语言指针详解(下)》。 一、指针基础 1.1 定义 指针变量是一个特殊的变量,它存储的值是另一个变量的内存地址(即地址编号),而不是数据本身。我们平时说的"指针",通常指的就是这个地址值本身。 ℹ️ 指针 vs 指针变量 指针:一个内存地址(一个数
C语言指针详解(上):指针变量、函数指针

C语言关键字—typedef/sizeof/struct/union/enum/inline笔记(下)

C语言进阶 — 关键字详解(下) 上篇:C语言关键字(上)—— static、extern、volatile、const。 本篇聚焦嵌入式开发中与类型定义、编译优化、数据组织相关的关键字:typedef、sizeof、register、inline、enum、struct、union。 5 typedef 关键字 💡 核心思想 typedef 为已有类型创建一个别名,提高代码可读性和可移植性。 5
C语言关键字—typedef/sizeof/struct/union/enum/inline笔记(下)