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

经验丰富的网站制作公司承德网媒

经验丰富的网站制作公司,承德网媒,wordpress个人简历主题,佛山主题网站设计多少钱在做嵌入式开发的时候,经常需要用到延时函数,STM32为我们提供了一个标准的毫秒级延时函数:HAL_Delay()。这个函数用起来很方便,括号内的数就是延时的毫秒数。 但是程序中如果需要用到看门狗的话呢,这玩意需要经常喂的…

在做嵌入式开发的时候,经常需要用到延时函数,STM32为我们提供了一个标准的毫秒级延时函数:HAL_Delay()。这个函数用起来很方便,括号内的数就是延时的毫秒数。

但是程序中如果需要用到看门狗的话呢,这玩意需要经常喂的,否则一旦超时就会复位。

所以很容易想到,在延时函数中增加喂狗的代码,如下:

void delay_ms(u32 time)
{u32 i;for(i=0; i<time; i++){HAL_Delay(1);HAL_IWDG_Refresh(&hiwdg);}
}

这样当然可以运行,但是不完美,比如在程序调试的时候,我们经常需要关闭看门狗,还有就是这样一来延时会很不准确,特别是系统频繁要进中断的话,实际延时会比预期长不少。

我相信很多人都没有看过这个HAL_Delay()函数实现的代码。具体如下:

__weak void HAL_Delay(uint32_t Delay)
{uint32_t tickstart = HAL_GetTick();uint32_t wait = Delay;/* Add a freq to guarantee minimum wait */if (wait < HAL_MAX_DELAY){wait += (uint32_t)(uwTickFreq);}while ((HAL_GetTick() - tickstart) < wait){}
}

最前面的__weak表明它是一个弱函数,也就是说我们可以自己编程来实现它,把喂狗的功能集成到这个函数内,从外部看,仍然用的是HAL_Delay()这个函数名,代码风格可以和HAL库保持一致。

实现也很简单,自己建一个延时函数LL_delay.c,如下:

void HAL_Delay(uint32_t Delay)
{uint32_t tickstart = HAL_GetTick();uint32_t wait = Delay;/* Add a freq to guarantee minimum wait */if (wait < HAL_MAX_DELAY){wait += (uint32_t)(uwTickFreq);}while ((HAL_GetTick() - tickstart) < wait){HAL_IWDG_Refresh(&hiwdg);   //自己添加的喂狗函数}
}

就是在最后的while循环中增加一行喂狗的代码,再相应添加LL_delay.h,如下:

#ifndef _LL_DELAY_H_
#define _LL_DELAY_H_void HAL_Delay(uint32_t Delay);

这样就几乎不用再操心喂狗的事了

http://www.yayakq.cn/news/114751/

相关文章:

  • 有哪些做副业的网站钓鱼转转网站在线生成
  • wordpress制作官方网站网站建设需要注册什么类型的公司
  • 电子商务网站建设侧重点深圳网站建设外包公司哪家好
  • 专注合肥网站推广手机网站制作行业排行
  • 合肥网站建设方案咨询网站建设比较合理的流程
  • 官方网站怎么备案网站改版 合同
  • 苏州企业网站制作报价做电子手环网站需求分析
  • 聊天网站怎么建设免费网络营销
  • 微网站在哪制作的定制网站制作
  • 网站做收录要多少长时间视频网站建设流程图
  • wordpress做管理网站吗可以控制网络的软件
  • c2c电子商务的网站公司装修开工仪式吉利话
  • 网站建设入门书乡村建设的网站
  • 郑州餐饮网站建设公司排名南京企业微信网站建设
  • 网站后端开发流程云平台开发网站
  • 手机网站开发工具 2018信阳市住房和城乡建设局网站
  • 怎么做个网站手机商城系统开发
  • 什么是网站珠海高端网站制作
  • php网站怎么做301跳转软件班级网站建设
  • 网站推广目标网站建设首保服务
  • 公司网站建设费用怎么入账公众平台安全助手官网
  • 企业网站建设分工WordPress修改登录短代码
  • 大理建网站北京网站制作长沙
  • php可以做手机网站吗wordpress可视化编辑教程
  • 备案网站的黑名单asp.net 网站提速
  • 高端摄影网站模板安徽网新科技
  • 高端商务经纪网站建设惠安网站建设报价
  • 腾讯企业邮箱忘记密码怎么样做seo
  • 上海网站建设安全陇南市建设局网站
  • 怎么提升网站打开速度做的网站为什么图片看不了怎么办