logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

任务栈溢出没人管?别只怪 malloc,看看 FreeRTOS 的栈 watermark

系统运行久了随机重启,或者 HardFault 指向了奇怪的地址?不是内存碎片,而是 任务栈溢出(Stack Overflow)。本文教你如何利用 FreeRTOS 的 Stack Watermark(栈水印)​ 精准定位到底是哪个任务吃掉了栈空间。

文章图片
UART 接收丢数据?别只查中断,看看 ORE 与 IDLE

UART 接收数据时,莫名其妙整帧丢包或后半段乱码?不是波特率错了,而是 ORE(Overrun Error)或 DMA 覆盖导致的。本文解析两个最容易被忽略的标志位。

文章图片
#单片机#嵌入式硬件
OTA 升级断点续传与回滚:升级到一半断电设备变砖怎么办?

无线升级(OTA)固件包 200KB,传输到一半突然断电,重启后进不了程序?不是网络不稳,而是 缺少断点记录(Checkpoint)和双分区回滚(Rollback)机制。本文解析工业级 OTA 的完整实现思路。

文章图片
#linux#服务器
SPI 读回来全是 0xFF?别只换线,看看 CPOL 与 CPHA

SPI 通讯成功,但 MISO 一直返回 0xFF 或 0x00?不是从机坏了,而是主从机的时钟极性(CPOL)和相位(CPHA)不匹配。本文用示波器教你 30 秒定乾坤。

文章图片
#单片机#嵌入式硬件
链接文件(.ld)详解:别只怪语法,一文搞懂 MEMORY 和 SECTIONS 如何划分内存

为什么全局变量被放在了 RAM 末尾?为什么 DMA 非要访问 0x24000000?不是编译器任性,而是 链接文件(Linker Script)​ 决定了这一切。本文手把手拆解 .ld文件,教你如何像上帝一样掌控内存布局。

文章图片
DMA 数据乱了?别只怪时序,看看 Cache 一致性与内存屏障

在 STM32H7 上,DMA 采集的数据 CPU 读出来是乱码,或者 CPU 写的数据 DMA 发不出去?不是 DMA 配置错了,而是 Cache 一致性(Cache Coherency)​ 问题。本文解析 Cache 的工作原理及 Clean/Invalidate 操作。

文章图片
#嵌入式
如何把业务逻辑和硬件驱动剥离?别让 main 函数里全是 HAL 库调用

很多项目的 main.c里充斥着 HAL_GPIO_WritePin()和 HAL_UART_Transmit()。这种写法导致换一颗 MCU,业务逻辑必须重写。本文将演示如何通过 BSP 适配层(Board Support Package),实现“换芯片不改业务”。

文章图片
#嵌入式硬件#单片机
编码器模式转得乱七八糟?别只怪电机,看看 TI1/TI2 极性

TIM 配置成 Encoder Mode,正转加计数,反转减计数,低速正常,高速就乱?不是编码器精度问题,而是 TI1/TI2 的极性(Polarity)与输入滤波配置错误。本文解析正交编码器的硬件解码逻辑。

文章图片
#单片机
定时中断进不来?别只怪 Prescaler,看看 Counter Mode

TIM 配置 1ms 中断,示波器测出来却是 1.024ms?或者中断偶尔丢失?不是 SystemCoreClock 算错,而是 Counter Mode(计数模式)​ 与 Center-Aligned(中心对齐)​ 配置导致的隐性误差。本文还原 TIM 中断的真实时序。

文章图片
#单片机#嵌入式硬件
DMA + TIM 触发异常?别只怪时钟,看看 Update 与 TRGO

TIM 触发 DMA 搬运 ADC 数据,示波器看 ADC 在采样,但 DMA 缓冲区数据错位?不是 DMA 配置错了,而是 TIM 的 Update Event​ 与 TRGO​ 信号没对齐。本文解析 TIM 触发 DMA 的“隐形条件”。

文章图片
#单片机#嵌入式硬件
    共 22 条
  • 1
  • 2
  • 3
  • 请选择