[应用相关] STM32 HAL库方式的微秒延时函数

[复制链接]
4444|85
lizye 发表于 2023-5-30 21:07 | 显示全部楼层
嗯,如果是F1系列,此方式经过测试还是比较准的
wangpe 发表于 2023-5-30 21:08 | 显示全部楼层
如果不考虑通用性,F1系列建议使用此种方式。
songqian17 发表于 2023-5-30 21:12 | 显示全部楼层
占用一个定时器就算了
happy_10 发表于 2023-5-30 21:14 | 显示全部楼层
这个只能使用定时器了。              
yufe 发表于 2023-5-30 21:15 | 显示全部楼层

systick被占用了,不能微秒延时。
guoyt 发表于 2023-5-30 21:17 | 显示全部楼层
for循环实现us的延时的。              
chuxh 发表于 2023-5-30 21:18 | 显示全部楼层
占用一个定时器这个精度很高吗              
happy_10 发表于 2023-5-30 21:19 | 显示全部楼层
如果使用while或者for,这个精度大不大呢?
llia 发表于 2023-5-30 21:21 | 显示全部楼层
__weak uint16_t HAL_GetTick_us(void)
{
  return __HAL_TIM_GetCounter (&htim6 );//获取定时器6计数器的值
}
__weak void HAL_Delay_us(uint16_t Delay)
{
  uint16_t tickstart = HAL_GetTick_us();//计数器初始值
  uint16_t wait = Delay;//需要延时的值
        HAL_TIM_Base_Start (&htim6); //打开定时器
  while ((HAL_GetTick_us() - tickstart) < wait)//等待
  {
  }
        HAL_TIM_Base_Stop(&htim6); //关闭定时器
         __HAL_TIM_SetCounter (&htim6,0 );//定时器计数器清零,往往可以省略,会自动清零
}
blog.csdn.net/m0_65565606/article/details/122883740
lizye 发表于 2023-5-30 21:22 | 显示全部楼层
while((HAL_GetTick() - tickstart) < wait) { } }   
wuhany 发表于 2023-5-30 21:25 | 显示全部楼层
hal库为什么编译变慢                 
llia 发表于 2023-5-30 21:26 | 显示全部楼层
封装了太多层了吧
wuhany 发表于 2023-5-30 21:28 | 显示全部楼层
stm32库函数算hal层吗               
happy_10 发表于 2023-5-30 21:29 | 显示全部楼层
在HAL库中的微妙级别的延迟怎么弄   
chenho 发表于 2023-5-30 21:31 | 显示全部楼层
hal库为什么编译变慢                 
yufe 发表于 2023-5-30 21:33 | 显示全部楼层
有学习stm32 HAL库开发相关的书籍或者例程吗
wuhany 发表于 2023-5-30 21:34 | 显示全部楼层
封装了太多层了吧
yufe 发表于 2023-5-30 21:36 | 显示全部楼层
如何将宏定义CPU_FREQUENCY_MHZ根据时钟主频修改
wangzsa 发表于 2023-5-30 21:40 | 显示全部楼层
简单延时不错
llljh 发表于 2023-5-30 21:41 | 显示全部楼层
嗯,如果是F1系列,此方式经过测试还是比较准的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部