STM32单片机标准库—DWT
DWT在 Cortex-M 里面有一个外设叫 DWT(Data Watchpoint and Trace)是用于系统调试及跟踪它有一个 32 位的寄存器叫 CYCCNT它是一个向上的计数器记录的是内核时钟运行的个数内核时钟跳动一次该计数器就加 1精度非常高决定内核的频率是多少例如本教程是基于 F103 系列内核时钟是 72M那精度就是 1/72M 14ns而程序的运行时间都是微秒级别的所以 14ns的精度是远远够的。最长能记录的时间为60s2 的 32 次方/72000000(假设内核频率为 72M内核跳一次的时间大概为 1/72M14ns)而如果是 H7 这种 400M 主频的芯片那它的计时精度高达 2.5ns1/400000000 2.5而如果是 i.MX RT1052 这种高速的处理器最长能记录的时间为8.13s2 的 32 次方/528000000 (假设内核频率为 528M内核跳一次的时间大概为 1/528M1.9ns) 。当 CYCCNT 溢出之后会清 0 重新开始向上计数。系统处理框图本文内容参考自《STM32 库开发实战指南基于野火霸道开发板》特此说明文章侵删。