当前位置: 首页 > news >正文

STM32 使用HAL库获取us时间

一、通用计时方法

在使用STM32时,有时我们需要测试代码运行的时间,或者需要计时,有个最简单的办法是调用HAL库提供HAL_GetTick,这个函数可以获取ms的计数值,每ms计数一次。

使用办法如下:

uint32_t tickstart = HAL_GetTick();
// 需要测试耗时的代码
// ...
// 获取消耗的时间,ms
uint32_t times = HAL_GetTick() - tickstart;

二、us计时方法

但是当我们需要计算us时,发现HAL库并没有提供类似的函数,我们只有自己写:

uint32_t GetMicros(void) {uint32_t m = HAL_GetTick();uint32_t tms = SysTick->LOAD + 1;uint32_t u = tms - SysTick->VAL;if ((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) != 0) {m = HAL_GetTick();u = tms - SysTick->VAL;}return (m * 1000 + (u * 1000) / tms);
}

 使用方法同上:

uint32_t tickstart = GetMicros();
// 需要测试耗时的代码
// ...
// 获取消耗的时间,us
uint32_t times = GetMicros() - tickstart;

http://www.xdnf.cn/news/1091989.html

相关文章:

  • 【使用Flask基于PaddleOCR3.0开发一个接口 调用时报错RuntimeError: std::exception】
  • HCIP(综合实验)
  • 代码随想录总结
  • css 设置 input 插入光标样式
  • 20250709: WSL+Pycharm 搭建 Python 开发环境
  • C++11 future、promise实现原理
  • 基于Matlab多特征融合的可视化指纹识别系统
  • 微算法科技从量子比特到多级系统,Qudits技术革新引领量子计算新时代
  • 三、Docker常用命令
  • React、Vue、Angular的性能优化与源码解析概述
  • upload-labs靶场通关详解:第19关 条件竞争(二)
  • Mysql组合索引的update在多种情况下的间隙锁的范围(简单来说)
  • 嵌入式调试LOG日志输出(以STM32为例)
  • 自建ELK vs 云商日志服务:成本对比分析
  • [Backlog] Git操作 | 任务数据结构 | Markdown 处理
  • Hugging Face Agents Course unit1笔记
  • 【科研绘图系列】R语言绘制解剖图
  • 解锁DevOps潜力:如何选择合适的CI/CD工作流工具
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | 键控LED实验
  • 闲庭信步使用图像验证平台加速FPGA的开发:第六课——测试图案的FPGA实现
  • 01-elasticsearch-搭个简单的window服务-ik分词器-简单使用
  • ECR仓库CloudFormation模板完整指南
  • 网安-SSRF-pikachu
  • 小程序主体变更全攻略:流程、资料与异常处理方案
  • 使用DDR4控制器实现多通道数据读写(十九)
  • 安卓设备信息查看器 - 功能介绍
  • 【软件工程】tob和toc含义理解
  • Claude Code 环境搭建教程
  • Go语言高级面试必考:切片(slice)你真的掌握了吗?
  • 基于Spring Boot+Vue的DIY手工社预约管理系统(Echarts图形化、腾讯地图API)