通信协议篇四:CAN 总线原理与通信机制基础详解

CAN(Controller Area Network,控制器局域网)是 Bosch 在 1980 年代提出的一种高可靠串行总线。它采用差分传输,支持多主通信,通过报文 ID 完成仲裁,并带有较完整的错误检测机制。 ℹ️ 本文范围:本文主要介绍经典 CAN。文中会顺带提到 CAN FD 和 CAN 2.0A / 2.0B,但重点仍然是基础概念、帧格式、仲裁和同步机制。 1. 特点与应用背景 CAN
通信协议篇四:CAN 总线原理与通信机制基础详解

C语言位运算笔记

C 语言位运算是嵌入式开发的基础能力。对于 STM32 来说,GPIO、UART、SPI、定时器等外设最终都是通过寄存器中的 bit 位来控制的。掌握位运算,才能真正理解 HAL 库背后的底层逻辑,并具备直接操作寄存器的能力。 💡 核心结论 嵌入式里最常见的 4 个动作就是:置位、清位、翻转、读位。 六大位运算符速览 运算符 名称 示例 说明 & 按位与 a & b 同 1 为 1
C语言位运算笔记

通信协议篇三:USART 串口通信原理详解从帧结构示波器逻辑分析仪波形分析到代码原理

异步串口是嵌入式里最常见的通信方式之一。它硬件简单、成本低、调试方便,既能做日志输出,也能连接上位机、蓝牙、WiFi、GPS、4G 等外设。本文把 USART / UART 的核心概念、帧结构、采样机制、调试方法和实战代码压缩到一篇里,尽量做到好查、好记、好用。 ℹ️ 先记住一句话:日常开发里说的“串口通信”,大多数场景其实就是 USART 的异步模式,常见连线只有 TX、RX 和 GND。 1.
通信协议篇三:USART 串口通信原理详解从帧结构示波器逻辑分析仪波形分析到代码原理

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语言关键字—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笔记(下)

FreeRTOS阅读源码之编程风格

FreeRTOS 阅读源码之编程风格 一、编程风格 FreeRTOS 严格遵循匈牙利命名法——看到名字就能推断出返回值类型、所属模块和参数类型。 变量看前缀,类型一目了然 → u/c/s/l/x/p 函数三段式,返回+模块+动作 → vTaskDelay / xQueueSend 宏看开头词,就知在哪定义 → config/pd/port/task 💬 匈牙利命名法已不是现代必用规范(IDE 弱化
FreeRTOS阅读源码之编程风格

第四篇FreeRTOS同步机制-信号量、互斥量与优先级反转

第四篇 FreeRTOS 同步机制:信号量、互斥量与优先级反转 掌握信号量与互斥量的原理和使用场景,深入理解优先级反转问题。这是 RTOS 面试中出现频率最高的知识点之一。本文从"为什么需要同步"讲起,带你彻底搞清楚二值信号量、计数信号量、互斥量的区别和实战用法。 一、为什么需要同步机制? 1.1 多任务并发问题 任务A: 读取温度 → → 写入全局变量 temp 任
第四篇FreeRTOS同步机制-信号量、互斥量与优先级反转

第二篇FreeRTOS任务管理-基础架构与生命周期

FreeRTOS 基础架构与任务管理 理解 RTOS 存在的意义,掌握 FreeRTOS 任务的完整生命周期,能独立创建多任务程序。本文从裸机与 RTOS 的对比入手,带你一步步搞懂 FreeRTOS 任务的创建、状态机、调度规则和常用 API。 一、FreeRTOS 是什么?为什么需要它? 1.1 裸机 vs RTOS 对比 对比项 裸机(前后台系统) FreeRTOS 架构 while(1)
第二篇FreeRTOS任务管理-基础架构与生命周期