我有一个关于 DWT 计数器的直截了当的问题。我正在使用 DWT->CYCCNT 计数器来计算
STM32L431CC 中的时钟周期差异,我注意到 CYCCNT 是 32 位宽。如果我使用 HSI16 作为我的内部时钟源,CYCCNT 仍然会达到 uint32_t 的最大值,即 4294967295,而不是基于我的 HSI16 时钟源的 16000000,对吗?
谢谢!
- timestamp_1 = DWT->CYCCNT;
- DoSomeTask();
- timestamp_2 = DWT->CYCCNT;
- if(timestamp_2 < timestamp_1)
- {
- /* I originally filled 16000000 instead of MAX_INT here */
- timedifference = timestamp_2 + MAX_INT - timestamp_1;
- }
- else
- {
- timedifference = timestamp_2 - timestamp_1;
- }