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

做网站的人 优帮云/营销方案范文

做网站的人 优帮云,营销方案范文,政协网站 两学一做专题研讨,隆尧做网站STM32-实现us延时 1.当在cubemx配置时基源SysTick时可以使用以下函数直接进行us延时,当用TIM时以下函数会失效,如果使用freertos使用tim也可以用以下函数 void HAL_Delay_us(uint32_t us)//延时us函数 {//需要cubemx配置时SYS时基源选择SysTick__IO uin…

STM32-实现us延时


1.当在cubemx配置时基源SysTick时可以使用以下函数直接进行us延时,当用TIM时以下函数会失效,如果使用freertos使用tim也可以用以下函数

void HAL_Delay_us(uint32_t us)//延时us函数
{//需要cubemx配置时SYS时基源选择SysTick__IO uint32_t currentTicks = SysTick->VAL;/* Number of ticks per millisecond */const uint32_t tickPerMs = SysTick->LOAD + 1;/* Number of ticks to count */const uint32_t nbTicks = ((us - ((us > 0) ? 1 : 0)) * tickPerMs) / 1000;/* Number of elapsed ticks */uint32_t elapsedTicks = 0;__IO uint32_t oldTicks = currentTicks;do {currentTicks = SysTick->VAL;elapsedTicks += (oldTicks < currentTicks) ? tickPerMs + oldTicks - currentTicks :oldTicks - currentTicks;oldTicks = currentTicks;} while (nbTicks > elapsedTicks);
}

2.使用额外的定时器单独进行us延时

缺点:需要额外的外设资源
cubemx配置
目标将TIM分频到1Mhz,即1us加一次
stm32f4:
TIM1–168M,我们就168分频,填168-1;
普通定时器,84M,填84-1

在这里插入图片描述
在这里插入图片描述

代码实现


us函数实现

#define US_TIM htim7 //定义需要的定时器 只需要修改这个就可以了,记得包含tim.h就可以了
void HAL_TimDelay_us(uint32_t us)//注意不要超过65535,一般大于10ms用HAL_Delay()函数
{__HAL_TIM_SetCounter(&US_TIM,0);//清零HAL_TIM_Base_Start(&US_TIM);//开启定时器while(__HAL_TIM_GetCounter(&US_TIM)<us){};HAL_TIM_Base_Stop(&US_TIM);//关闭定时器
}

同时我们还可以封装一个延时ms的函数,下次可以不用HAL_Delay()了

void HAL_TimDelay_ms(uint32_t ms)
{for(uint32_t Delay_Cnt=0;Delay_Cnt<ms;Delay_Cnt++)HAL_TimDelay_us(997);//考虑实际代码运行损耗,不写1000,差一点点补上
}

实测延时1ms和延时300ms时误差可以在0.2%内,就算写1000其实误差也很小,无所谓的


最后总的代码汇总如下

void HAL_TimDelay_us(uint32_t us);//延时us函数
void HAL_TimDelay_ms(uint32_t ms);//延时ms函数#define US_TIM htim7//修改定时器,注意两点,第一需要定时器分频到1M,第二记得包含tim.h,否则找不到htimxvoid HAL_TimDelay_us(uint32_t us)//延时us函数
{__HAL_TIM_SetCounter(&US_TIM,0);//清零HAL_TIM_Base_Start(&US_TIM);//开启定时器while(__HAL_TIM_GetCounter(&US_TIM)<us){};HAL_TIM_Base_Stop(&US_TIM);//关闭定时器
}
void HAL_TimDelay_ms(uint32_t ms)//延时ms函数
{for(uint32_t Delay_Cnt=0;Delay_Cnt<ms;Delay_Cnt++)HAL_TimDelay_us(997);//考虑实际代码运行损耗,不写1000,差一点点补上
}
http://www.lbrq.cn/news/752779.html

相关文章:

  • pb 做网站/怎么注册自己的网址
  • 最新流行网站开发技术/网站建设苏州
  • 小网站建设/今日头条官网
  • 做网站要几天/企业网站营销的优缺点
  • 烟台网站建设-中国互联/国外免费源码共享网站
  • 网站如何提高流量/台州关键词优化推荐
  • 网站建设属于营业范围里的哪一项/学校网站建设
  • 深圳广东网站建设套餐/营销企业
  • 吉林系统建站怎么用/杭州seo网站哪家好
  • google 空间 网站/网站seo具体怎么做
  • 代做毕业设计网站/营销渠道管理
  • 廊坊seo整站优化软件/标题优化怎样选关键词
  • 阿里主机 wordpress/seo广告投放
  • Java做新闻网站/快速seo关键词优化方案
  • dede 网站图标/地推接单正规平台
  • 电子政务公开 网站建设/什么是友情链接?
  • 资料网站怎么做/站长工具seo综合查询分析
  • 本地主机做网站/最近一周的时政热点新闻
  • 网站的注册和登录界面怎么做/北京企业网站推广哪家公司好
  • 做网站最大可以做多少g/好的产品怎么推广语言
  • 网站你们都知道/手机软文广告300字
  • 免费的导航页/学seo的培训学校
  • 昆明企业建站程序/沈阳今日新闻头条
  • 网站可以做固定资产吗/公司建网站多少钱
  • 不用购买域名做网站/百度手机app
  • 网站推广员/网站广告制作
  • 宜宾微信网站建设/免费的关键词优化工具
  • 成都住建局官网租房/优化课程
  • 上海优化排名网站/永州网络推广
  • 一级a做爰片免网站/老铁外链工具
  • 基于51单片机汽车自动照明灯超声波光敏远近光灯设计
  • 逆向Shell实战——红队技巧 vs 蓝队防御全攻略
  • 【CV 目标检测】Fast RCNN模型②——算法流程
  • Java 大视界 -- Java 大数据分布式计算在基因测序数据分析与精准医疗中的应用(400)
  • topographic terrain
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)