Linux ndelay()很不准怎么回事,ndelay(1),结果延时了1us?三季人的故事•2023-4-24•系统运维•阅读1所有的 sleep/delay 类型的接口,都只能保证休眠时间 "不短于" 传入的参数,但是无法保证绝对精确。精确度和底层实现机制有关(理论上讲任何实现都会有一个最小精度的,比如1us 或者1ms,如果试图delay一个小于最小精度的时长,最终效果就是大于等于最小精度的),也和其他因素有关,比如cpu核数,进程/线程数,优先级,任务调度等。 所以一般只能保证 "不短于" ,无法保证绝对精确。两种方案,简单粗暴的直接用for循环:for(int i=0i<1000000000i++)循环次数自行调试,试出大概的值就行第二种,精准延时,通过SysTick系统计时器来实现欢迎分享,转载请注明来源:内存溢出原文地址:https://54852.com/yw/9018753.html保证精度最小延时循环赞 (0)打赏 微信扫一扫 支付宝扫一扫 三季人的故事一级用户组00 生成海报 LINUX内核版本号每位都代表什么?上一篇 2023-04-24linux如何修改终端的字体 下一篇2023-04-24 发表评论 请登录后评论... 登录后才能评论 提交评论列表(0条)
评论列表(0条)