仿牌外贸网站推广seo有什么作用
web/
2025/9/26 1:09:52/
文章来源:
仿牌外贸网站推广,seo有什么作用,兰州做it网站运营的怎么样,淮安官方网站开发区✅作者简介#xff1a;热爱科研的嵌入式开发者#xff0c;修心和技术同步精进#xff0c; 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 #x1f34e;获取更多嵌入式资料可点击链接进群领取#xff0c;谢谢支持#xff01;… ✅作者简介热爱科研的嵌入式开发者修心和技术同步精进 代码获取、问题探讨及文章转载可私信。 ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 获取更多嵌入式资料可点击链接进群领取谢谢支持 点击领取更多详细资料 1. 介绍
在嵌入式系统开发中对时间的精确测量和延时是很常见的需求。STM32微控制器提供了丰富的定时器功能可以用于实现精确的时间测量和延时。本文将介绍如何使用STM32定时器来实现精确的时间测量和延时并提供相关代码示例。
2. 定时器测量时间
2.1 定时器初始化配置
在使用定时器测量时间前首先需要初始化并配置定时器。以下是一个典型的定时器初始化的代码片段
c
TIM_HandleTypeDef htim2;void MX_TIM2_Init(void)
{TIM_ClockConfigTypeDef sClockSourceConfig {0};TIM_MasterConfigTypeDef sMasterConfig {0};htim2.Instance TIM2;htim2.Init.Prescaler 16000 - 1;htim2.Init.CounterMode TIM_COUNTERMODE_UP;htim2.Init.Period 65535;htim2.Init.ClockDivision TIM_CLOCKDIVISION_DIV1;htim2.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_DISABLE;if (HAL_TIM_Base_Init(htim2) ! HAL_OK){Error_Handler();}sClockSourceConfig.ClockSource TIM_CLOCKSOURCE_INTERNAL;if (HAL_TIM_ConfigClockSource(htim2, sClockSourceConfig) ! HAL_OK){Error_Handler();}if (HAL_TIM_MasterConfigSynchronization(htim2, sMasterConfig) ! HAL_OK){Error_Handler();}
}在以上代码中使用了TIM2定时器并配置了定时器的时钟源、分频系数等参数以便后续进行精确的时间测量。
2.2 测量时间
使用定时器测量时间一般包括以下步骤
c
uint32_t start_time, end_time, elapsed_time;// 启动定时器
HAL_TIM_Base_Start(htim2);
start_time __HAL_TIM_GET_COUNTER(htim2);// 进行需要测量的操作// 停止定时器
end_time __HAL_TIM_GET_COUNTER(htim2);
HAL_TIM_Base_Stop(htim2);// 计算耗时
elapsed_time end_time - start_time;通过以上代码可以利用定时器准确地测量某段代码的执行时间从而实现对程序运行时间的精确测量。
3. 延时
3.1 定时器初始化配置
同样地使用定时器进行延时前需要进行初始化配置。以下是一个典型的定时器初始化的代码片段
c
TIM_HandleTypeDef htim3;void MX_TIM3_Init(void)
{TIM_ClockConfigTypeDef sClockSourceConfig {0};htim3.Instance TIM3;htim3.Init.Prescaler 16000 - 1;htim3.Init.CounterMode TIM_COUNTERMODE_UP;htim3.Init.Period 65535;htim3.Init.ClockDivision TIM_CLOCKDIVISION_DIV1;htim3.Init.AutoReloadPreload TIM_AUTORELOAD_PRELOAD_DISABLE;if (HAL_TIM_Base_Init(htim3) ! HAL_OK){Error_Handler();}sClockSourceConfig.ClockSource TIM_CLOCKSOURCE_INTERNAL;if (HAL_TIM_ConfigClockSource(htim3, sClockSourceConfig) ! HAL_OK){Error_Handler();}
}3.2 实现延时
使用定时器进行延时一般包括以下步骤
c
void HAL_Delay(uint32_t milliseconds)
{uint32_t start_time, current_time;HAL_TIM_Base_Start(htim3);start_time __HAL_TIM_GET_COUNTER(htim3);do {current_time __HAL_TIM_GET_COUNTER(htim3);} while(current_time - start_time milliseconds);HAL_TIM_Base_Stop(htim3);
}通过以上代码可以使用定时器实现毫秒级的精确延时满足嵌入式系统中对延时精度要求较高的场景。
4. 总结
通过本文的介绍您应当对如何使用STM32定时器来实现精确的时间测量和延时有了初步的了解。合理配置并使用定时器功能可以实现对程序运行时间的精确测量和对延时进行有效的控制为嵌入式系统的开发提供了更精准的时间支持。
嵌入式物联网的学习之路非常漫长不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心我为大家整理了一份150多G的学习资源基本上涵盖了嵌入式物联网学习的所有内容。点击这里0元领取学习资源让你的学习之路更加顺畅记得点赞、关注、收藏、转发哦。
点击链接扫码进入嵌入式交流群 https://fss.mpay8.cn/article/dmrjinh2C6fjejm
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81912.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!