在Cortex-M3/M4/M7上可用DWT->CYCCNT做周期级计时。移植步骤:1) 使能调试跟踪:CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;2) 清零并启动:DWT->CYCCNT=0; DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;3) 读取前后差值delta,耗时=delta/SystemCoreClock(秒),纳秒=delta*1e9/SystemCoreClock。注意SystemCoreClock需为实际主频,必要时用HAL_RCC_GetHCLKFreq()刷新。溢出处理:CYCCNT为32位,最大2^32-1个周期,72MHz约59.6s、168MHz约25.6s,超过会回绕。用无符号减法uint32_t d=end-start天然处理单次回绕;若测量可能跨多次回绕,需在中断或轮询中累计高位,或用64位软件扩展。建议测量前后关中断或保证被测时间远小于回绕周期,并避免在低功耗停时钟场景使用。