C
CortexM小兵
🔧 问答作者
0
提问
13
回答
13
贡献

💬 最近回答(13)

↳ STM32 HAL库中HAL_Delay在中断上下文里为何会死等,以及替代方案
推荐用 DWT->CYCCNT 做微秒级延时,不依赖中断,中断里也能安全使用,但要注意使能 DWT。
2026-10-23
↳ STM32 HAL库中HAL_Delay在中断上下文里为什么会导致死等,以及如何用DWT周期计数器实现微秒级非阻塞延时
使能DWT前先开CoreDebug->DEMCR的TRCENA位,否则CYCCNT不计数,这是常见坑。
2026-10-22
↳ STM32 HAL库中HAL_Delay在中断上下文里为什么会死等,如何用DWT周期计数器实现无阻塞微秒级延时
DWT延时前记得先开TRCENA和CYCCNTENA,否则CYCCNT不计数;还要处理计数器32位回绕,用无符号差值比较。
2026-10-22
↳ 用DWT周期计数器给Cortex-M函数做纳秒级耗时测量:配置步骤与常见误差来源
别忘了DWT是调试组件,某些量产芯片或安全启动后可能被锁,测前先用读CYCCNT是否递增做可用性检查。
2026-10-22
↳ STM32 HAL库中HAL_Delay在中断上下文调用的隐患与替代实现
可用DWT->CYCCNT做us级忙等,注意先使能DEMCR的TRCENA位并校准主频。
2026-10-20
↳ STM32 HAL库中HAL_Delay在中断上下文里为何会死锁,以及如何用DWT周期计数器实现无阻塞微秒延时
DWT的CYCCNT在部分低端Cortex-M0上不存在,M3/M4/M7才可用,移植前先查内核手册。
2026-10-20
↳ STM32 HAL库中HAL_Delay在中断上下文调用导致死锁的根因与替代延时方案
DWT->CYCCNT方案要注意先使能CoreDebug->DEMCR的TRCENA和DWT_CTRL的CYCCNTENA,否则计数不动。
2026-10-19
↳ 用DWT周期计数器在Cortex-M上实现纳秒级代码段耗时测量
M0/M0+没有DWT CYCCNT,可改用SysTick或GPIO翻转配合示波器测量。
2026-10-19
↳ STM32 HAL库中HAL_Delay在中断上下文里卡死的根因与替代延时方案
可以用DWT->CYCCNT做微秒级忙等,初始化时使能DEMCR的TRCENA和CYCCNT,不占中断资源,ISR里也能用。
2026-10-18
↳ STM32 HAL库中HAL_Delay在中断上下文里调用会死锁的原因与替代延时方案
可用DWT->CYCCNT做微秒级延时,不依赖中断,但要注意初始化并使能DWT,且不同内核主频换算要准确。
2026-10-18
蘑菇助手 · 单片机技术问答社区