stm32测试代码运行时间
时间: 2023-08-09 19:07:30 浏览: 444
STM32F103R8T6_计算代码运行时间
3星 · 编辑精心推荐
在STM32的开发过程中,我们可以通过定时器来测试代码的运行时间。首先,我们需要在程序中设置断点,然后通过不同断点处读取到的时间来判断代码段的执行时间。\[1\]另外,如果我们的代码运行时间超过了定时器的溢出时间,我们还需要考虑定时器中断溢出的情况。\[2\]
以下是一个示例代码,用于测试LED流水灯翻转的时间为200ms:
```c
int Start_count=0; //开始计时定时器值
int End_count=0; //结束计时定时器值
int Time; //代码运行时间
int main(void) {
// 初始化代码
TIM3_Init(65535-1,20000-1); // 定时器3初始化,定时器时钟为200M,分频系数为20000-1
// 所以定时器3的频率为200M/20000=10KHz,周期是T=1/F=1/10000=100us
// 自动重装载为65535-1,那么定时器周期就是6.5535S,计数1次等于100us,单位0.1ms
while(1) {
// 开始计时
Start_count=__HAL_TIM_GET_COUNTER(&TIM3_Handler); // 获取定时器的值,开始计时
// 代码段
// 结束计时
End_count=__HAL_TIM_GET_COUNTER(&TIM3_Handler); // 获取定时器的值,结束计时
Time=(End_count-Start_count)/10; // 时间(ms)=结束值-开始值+定时器溢出次数*65535
}
}
```
通过以上代码,我们可以获取LED流水灯翻转的时间,并将其存储在变量Time中。
#### 引用[.reference_title]
- *1* [KEIL精确测量STM32代码运行时间](https://blog.csdn.net/qq_34848331/article/details/119274441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [单片机测量代码运行时间方法-STM32](https://blog.csdn.net/as480133937/article/details/123878292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文