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

微秒延时us

代码解析

第1行:配置SysTick为1MHz

c

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000);
  • HAL_RCC_GetHCLKFreq():获取CPU主时钟频率(单位:Hz)

  • 除以1,000,000:将SysTick定时器配置为每1微秒中断一次

  • 例:如果HCLK=72MHz,则72,000,000/1,000,000 = 72,即每72个时钟周期产生一次中断

第2行:执行延时

c

HAL_Delay(us-1);
  • 使用HAL库的标准毫秒延时函数,但因为SysTick已被重新配置为微秒级别,所以实际上延时的是(us-1)微秒

  • 减1是为了补偿函数调用和重配置的时间

第3行:恢复SysTick为1kHz

c

HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
  • 将SysTick重新配置回原来的1毫秒中断一次

  • 这是必要的,因为HAL库的其他功能(如超时检测)依赖于1ms的SysTick

注意事项

⚠️ 潜在问题

  1. 中断影响:重配置SysTick会短暂影响依赖SysTick的其他功能

  2. 精度问题:函数调用和重配置本身需要时间,可能影响精度

  3. 不是原子操作:在延时期间如果发生中断,可能影响延时精度

更好的替代方案

对于需要更高精度的微秒延时,通常推荐使用:

  • 专用的硬件定时器

  • DWT(Data Watchpoint and Trace)单元(如果可用)

  • 简单的循环延时

这个函数提供了一个快速实现微秒延时的方法,但在对时序要求严格的场合可能需要更精确的方案。

http://www.dtcms.com/a/566539.html

相关文章:

  • 桐乡城市建设局网站邯郸小学网站建设
  • 沈阳网站公司排名龙华企业网站建设
  • CPU调度---协程
  • 网络安全活动总结
  • 站长之家alexa排名亚马逊一般在哪些网站上做推广
  • 直接用ip地址的网站怎么做宜宾县企业项目建设影响环境登记表网站
  • 计算机图形学·6 OpenGL编程3 谢尔宾斯基垫与三维编程
  • ThreadLocal 在项目中的应用
  • Vue动态路由的页面刷新的问题
  • 企业网站推广模式网站建设肆金手指排名9
  • 上海网站建设找缘魁915x1830建筑模板价格
  • 单页网站程序宠物交易网站模板
  • sparkCore读取数据的方式
  • 山东网站seo开发微信小程序开发api
  • Redis服务器配置
  • 优质ppt网站做网站接私活价格怎么算
  • 【LeetCode 每日一题】2257. 统计网格图中没有被保卫的格子数
  • 郑州西区做网站公司做网站的费用的会计分录
  • wordpress主题演示站点做旅游网站的数据怎么来
  • Linux iptables防火墙基础知识总结
  • 网站开发微信支付功能网站标题优化工具
  • 怎样做心理咨询网站学网络与新媒体后悔死了
  • 住房城乡建设行业从业人员wordpress 博客优化
  • 太原网站 制作个人网站备案没有座机
  • 温州网站外包网站界面一般用什么软件做
  • 上海 网站建设公司2022年今天新闻联播
  • Doris连接故障一键排查脚本
  • 青岛电商网站制作官方网站的网络营销功能分析
  • 教育网站制作实训报告如何搭建一个网站平台
  • 贵州城乡建设部网站首页什么是自媒体