请选择 进入手机版 | 继续访问电脑版
搜索
查看: 40|回复: 0

[分享] 基于HAL库的微秒级精准延时函数

[复制链接]

该用户从未签到

2

主题

6

帖子

5

蝴蝶豆

初级会员

最后登录
2019-8-17
发表于 6 天前 | 显示全部楼层 |阅读模式
先贴出延时函数
  1. /*****************************************************************
  2. * 基于STM32F0 HAL的微秒延时函数
  3. * @功能:实现US级延时
  4. * @注意:精准延时范围:2~999US
  5. *        2019-07-03        Designed By XiaoYang  http://www.pypyn.com
  6. ******************************************************************/
  7. uint32_t CFG_VAL = 0;
  8. void HAL_Delay_US(__IO uint32_t Delay)
  9. {
  10.   if(Delay < MAX_Delay_CNT && Delay > 1)
  11.   {
  12.     uint32_t wait = SysTick->LOAD - ((Delay - 1) * CFG_VAL);
  13.              //CFG_VAL = HAL_RCC_GetHCLKFreq()/1000U/1000U))
  14.              //计算出等待1US需要的计数器值
  15.     SysTick->VAL=0UL;                        //重置SysTick计数器,计数器为向下计数
  16.     while(wait < (SysTick->VAL));        //等待时间到达
  17.   }
  18. }
复制代码
展示一下效果
  1.   HAL_Delay_US(50);
  2.                 LED_GPIO_Port->ODR ^= LED_Pin;
复制代码
IMG_20190814_225917.jpg IMG_20190814_225812.jpg IMG_20190814_225853.jpg

IMG_20190814_225923.jpg
板子使用的是STM32F030F4。
User_Drivers.zip (946 Bytes, 下载次数: 2)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2019-8-20 16:45 , Processed in 0.098017 second(s), 14 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表