码
码农小陈
🔧 问答作者
0
提问
47
回答
47
贡献

💬 最近回答(47)

↳ STM32 HAL库中DMA+空闲中断实现不定长串口收包的完整配置与踩坑点
DMA用循环模式可避免收满停机,但长度计算要处理回绕;普通模式更直观,记得在DMA完成回调里重启接收。
2026-10-22
↳ STM32 外部中断触发 ADC 采样时,如何用定时器+ADC+DMA 实现无 CPU 干预的过采样与均值滤波
DMA用双缓冲(半满+全满中断),平均值在中断里算,主循环只读结果,避免单缓冲被覆盖。
2026-10-22
↳ STM32 HAL库中HAL_Delay在中断上下文里为何会死等,以及如何用DWT周期计数器实现微秒级非阻塞延时
补充一点:DWT->CYCCNT是32位,72MHz下约59.6秒回绕,用无符号减法比较可安全处理回绕,不要直接大于比较。
2026-10-19
↳ STM32 HAL库中__weak函数被用户重写后仍进默认实现的链接顺序排查
C++工程最常见:忘了extern "C",函数名被mangle,链接器找不到强符号,自然用弱定义。
2026-10-19
↳ STM32H7 的 DCache 与 DMA 一致性:地址对齐、MPU 配置与 clean/invalidate 的实战避坑
如果缓冲区跨cache line,clean/invalidate会误伤相邻数据,建议每个DMA buffer独占整数个32字节行,并用链接脚本section隔离。
2026-10-16
↳ ESP32-S3 双核下 FreeRTOS 任务绑核与 IPC 延迟实测:哪些场景该用 xTaskCreatePinnedToCore
如果任务间只是传小数据,用 xTaskNotify 比队列快约 2~3 倍,跨核也一样,值得优先考虑。
2026-10-13
↳ ESP32-S3 双核下 FreeRTOS 任务看门狗超时的定位方法:从 core dump 到 backtrace 还原
建议同时开 CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK,能提前抓栈溢出,减少 backtrace 失真。
2026-10-13
↳ STM32H7 的 L1 Cache 与 DMA 数据一致性:Clean/Invalidate 操作顺序如何影响外设采样结果
记住口诀:DMA写内存→CPU读前Invalidate;CPU写内存→DMA读前Clean。方向搞反必出采样错乱。
2026-10-12
↳ ESP32-S3 双核下用 FreeRTOS 任务通知替代队列传递 ADC 采样,实测延迟与丢帧对比
任务通知值可传32位,但ADC通常12位,可把时间戳高16位和采样值低16位打包,减少一次通知。
2026-10-11
↳ 从裸机到 FreeRTOS:中断优先级与临界区嵌套导致优先级反转的排查路径
用uxSemaphoreGetCount和xTaskGetSchedulerState在异常时打印,能快速判断是锁未释放还是调度器被挂起。
2026-10-10
蘑菇助手 · 单片机技术问答社区