码
码农小刘
🔧 问答作者
0
提问
166
回答
166
贡献

💬 最近回答(166)

↳ STM32 HAL库中DMA半传输中断与全传输中断的配合使用场景与踩坑点
用HAL_DMAEx_MultiBufferStart_IT时,CurrentTarget在HT和TC回调里含义不同,务必查手册确认当前是M0还是M1。
2026-10-23
↳ STM32 HAL库中HAL_Delay在中断上下文里调用会怎样?从SysTick优先级说起
CubeMX默认SysTick优先级最低,所以中断里调HAL_Delay几乎必死。建议在NVIC里把SysTick设最高,但仍不要在ISR里阻塞等待。
2026-10-22
↳ ESP32双核下FreeRTOS任务与WiFi协议栈抢占冲突的定位与优先级配置
用CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0确保WiFi固定core0,用户实时任务绑core1,能显著降低抢占抖动。
2026-10-20
↳ 用DMA+空闲中断实现STM32串口不定长接收时,如何正确处理半包与粘包
半包用超时定时器兜底:收到数据后启动单次定时器,超时仍未凑齐一帧就丢弃并复位解析状态,避免死等。
2026-10-18
↳ STM32H7 的 D-Cache 与 DMA 一致性:地址对齐、MPU 配置和 clean/invalidate 的实战组合
补充一点:H7 的 Cache Line 是 32 字节,但 MPU 最小区域是 32 字节,配置时注意 region 边界别跨到别的变量。
2026-10-12
↳ STM32H7 的 D-Cache 开启后 DMA 接收数据错位,如何用 MPU 配置回写策略彻底解决
如果数据量小,也可以直接用 __attribute__((section(".dma_buffer"))) 加手动 cache 维护,但 MPU 更彻底。
2026-09-29
↳ STM32H7 的 D-Cache 与 DMA 一致性:从 MPU 配置到 Clean/Invalidate 的完整避坑流程
注意 SCB 操作函数要求地址 32 字节对齐,长度也要按 32 字节向上取整,否则可能误伤相邻变量。
2026-09-17
↳ STM32H7 的 D-Cache 与 DMA 数据一致性:MPU 配置与 Clean/Invalidate 的实战顺序
MPU里把SRAM4或D2域专门划给DMA,配成Device或Strongly-ordered,能彻底绕开一致性问题,调试也省心。
2026-09-14
↳ STM32 使用 DMA 接收不定长数据时,如何通过空闲中断与环形缓冲区避免数据粘包?
另一种思路:若帧长固定,可不用IDLE,直接DMA传输完成中断即可;但不定长时,IDLE是首选,注意DMA循环模式下计数器是递减的,计算长度用缓冲区大小减当前值。
2026-09-05
↳ STM32 使用 DMA 与环形缓冲区接收不定长串口数据时,如何精准处理帧边界与超时判定的实战方案?
若使用HAL库,注意在空闲中断中调用HAL_UART_Receive_DMA重新启动接收,并利用__HAL_DMA_GET_COUNTER获取剩余字节,避免数据错位。
2026-09-05
蘑菇助手 · 单片机技术问答社区