作者:gqqsherry

专栏简介:拒绝 API 搬运,专注底层配置陷阱可落地的工程代码

覆盖 ADC / UART / SPI / I2C / CAN / USB 六大核心外设。


📚 系列目录(点击直达)

目录

📚 系列目录(点击直达)

一、 UART / 串口 底层避坑指南

二、 SPI 底层避坑指南

三、 I2C 底层避坑指南

四、 CAN 总线底层避坑指南

五、 USB 底层避坑指南

六、 ADC 底层避坑指南

七、 定时器TIM 底层避坑指南

八、电源管理 PM 底层避坑指南

九、复位与启动(Boot)底层避坑指南

十、RTOS底层避坑指南

💡 关注我,少走弯路


一、 UART / 串口 底层避坑指南

  1. UART 接收丢数据?别只查中断,看看 ORE 与 IDLE

  2. DMA 接收不定长数据?别只靠超时,看看 IDLE 中断

  3. RS485 通讯总崩?别只怪线,看看收发切换的“死区时间”

  4. 串口打印让电机抖动?别只加电容,看看波特率误差与晶振

二、 SPI 底层避坑指南

  1. SPI 读回来全是 0xFF?别只换线,看看 CPOL 与 CPHA

  2. SPI 速度上不去?别怪芯片,看看 MISO 上拉与 IO 速度

  3. DMA 传输 SPI 出错?别只查 Buffer,看看数据宽度与 FIFO

  4. SPI 全双工变半双工?别只怪从机,看看 NSS 管理

三、 I2C 底层避坑指南

  1. I2C 死锁了?SDA 一直被拉低?别复位 MCU,试试这 3 种救活方法

  2. I2C 上拉电阻选 10k 还是 4.7k?实测波形告诉你答案(附速查表)

四、 CAN 总线底层避坑指南

  1. CAN 总线挂死?别只怪节点,看看终端电阻与阻抗匹配

  2. CAN 波特率 500k 配不出来?别只怪晶振,看看 SJW 与 BS1/BS2

  3. CAN 数据丢帧?别只加 FIFO,看看接收过载与错误处理

  4. CAN FD 跑不起来?别只怪线缆,看看采样点与位时序

  5. CAN 总线有波形但收不到数据?别只怪 ID,看看过滤器(Filter)

  6. 📌嵌入式工程师必备:CAN 总线核心参数速查表

五、 USB 底层避坑指南

  1. USB 枚举失败?别只怪线缆,看看这 3 个电阻与上拉

  2. USB 描述符怎么写都不对?别只抄例程,看看 bLength 与 wTotalLength

  3. USB CDC 虚拟串口识别不了?别只怪驱动,看看 VID/PID 与 INF

  4. USB 速度跑不满?别只怪 DMA,看看端点(Endpoint)配置与 FIFO

  5. USB 偶尔掉线?别只怪电脑,看看 SOF 与远程唤醒(Remote Wakeup)

  6. USB 眼图怎么看?别只盯着 Pass/Fail,看懂这 3 个指标

六、 ADC 底层避坑指南

  1. STM32 ADC 多通道采样互相干扰?不是代码 Bug,是电荷残留(Charge Injection)

  2. ADC采样时间到底设多少?别再瞎猜了,看看输入阻抗

  3. 内部温度传感器测不准?别只算公式,看看VREFINT校准

  4. ADC 采样有毛刺?别只怪电源,看看触发源与采样窗口

  5. ADC+DMA 数据错位?别只查代码,看看扫描顺序与内存对齐

  6. ADC 采样值随电机转动乱跳?别光加滤波,看看 PSRR(电源抑制比)

  7. 开了 16 倍过采样,数据还是跳?别怪 ADC,看看你的信号有没有“呼吸”

  8. 嵌入式工程师必备:ADC 核心参数速查表

七、 定时器TIM 底层避坑指南

  1. PWM 输出有抖动?别只怪中断,看看 ARPE 与影子寄存器
  2. 输入捕获测频率不准?别只算差值,看看溢出与噪声

  3. DMA + TIM 触发异常?别只怪时钟,看看 Update 与 TRGO

  4. 编码器模式转得乱七八糟?别只怪电机,看看 TI1/TI2 极性

  5. 定时中断进不来?别只怪 Prescaler,看看 Counter Mode

八、电源管理 PM 底层避坑指南

  1. MCU 随机重启?别只怪电源纹波,看看掉电复位(BOR)阈值
  2. 低功耗模式唤醒后程序跑飞?别只怪时钟,看看 Vcore 与 Flash 等待

  3. BUCK 纹波 100mV 正常吗?别只怪电感,看看续流二极管与布局

  4. 电池电压检测不准?别只怪分压电阻,看看 ADC 的采样窗口

  5. LDO 啸叫怎么来的?别只换电容,看看环路稳定性与 ESR

九、复位与启动(Boot)底层避坑指南

  1. Bootloader 跳转 App 必死?别只怪中断向量表,看看 SCB->VTOR 与栈指针
  2. 上电后程序不跑?别只怪晶振,看看 BOOT0 引脚与 Option Bytes

  3. 看门狗复位和软件复位有什么区别?别只怪喂狗,看看复位标志位

  4. HardFault 怎么定位?别只怪指针,看看 LR 与 CFSA

  5. 掉电瞬间数据会丢?别只怪 Flash,看看写操作与时序

十、RTOS底层避坑指南

  1. 任务栈溢出没人管?别只怪 malloc,看看 FreeRTOS 的栈 watermark
  2. 中断里发消息队列,系统直接崩?别只怪 ISR,看看中断优先级分组

  3. vTaskDelay(1) 延时不准?别只怪 Tick,看看 SysTick 的时钟源

  4. 为什么一定要用互斥量(Mutex)?别只怪共享资源,看看优先级继承

  5. 临界区(Critical Section)卡死?别只怪关中断,看看中断嵌套


💡 关注我,少走弯路

我是gqqsherry,一个拒绝调包、专注底层逻辑的嵌入式工程师。

本专栏特点:

  • 不讲虚的 API 列表

  • 只讲工程实践中真实存在的配置陷阱

  • 每一篇都是可直接抄作业的解决方案

👉 进阶读者请移步:《嵌入式系统架构实战》


原创文章,转载请注明出处。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐