你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32cubeMX配置us级延时函数

[复制链接]
STMCU小助手 发布时间:2022-5-22 21:36
前言) u3 |( Q9 r" x1 f- o3 y
本文带大家配置定时器写一个us级延时函数。$ V+ P2 f. h2 ]  s0 Q

& o. H# W( ?! z一、cubeMX配置  _) G3 \: S2 H8 |! I
定时器配置
$ L0 b; j& `5 i1 D- z1 C2 O! d
4 [, ]5 p& G- s* y. M; E ]C``)XJYJ}9OHF0XBCC}1]3.png
1 X9 t/ c. k) p, Z6 U9 T3 _4 m& T+ s9 r% k- W# {7 Q7 e" w
二、代码解析
9 l5 s" c* p' g
  1. //微秒延时$ \2 g! a% q3 n# Y: }8 o! i
  2. void Delay_us(uint16_t us)8 Z2 g- g7 ?+ i. s  M! k
  3. {     + }* @' L8 T" ]3 v% C9 I; a% d  ]; y
  4.         uint16_t differ = 0xffff-us-5;                                4 t0 L$ ^3 z( U; u. B! O
  5.         __HAL_TIM_SET_COUNTER(&htim1,differ);        //设定TIM1计数器起始值
    ( G* j7 A* H: N! t! e2 N7 q
  6.         HAL_TIM_Base_Start(&htim1);                //启动定时器        7 ^$ d5 D; R7 T; x% \
  7.         
    $ P& Q; W: Q4 h1 R" A
  8.         while(differ < 0xffff-5)//判断
    " E* _/ G# Y' ?2 M2 x' p0 l
  9.         {        1 H' `( v; V) l4 O
  10.                 differ = __HAL_TIM_GET_COUNTER(&htim1);                //查询计数器的计数值
    9 \3 y9 z/ {1 t. J
  11.         }7 J" h' A) a4 y
  12.         HAL_TIM_Base_Stop(&htim1);//关闭定时器
    / x9 x9 l& j, ?) J  `0 W5 p
  13. }
复制代码
, r. ~3 F' O/ B+ B5 z5 P9 C, D
总结
% S" x  ^% t# ^' t# ]使用上述代码即可实现us级延时。
9 b& ~7 t5 ]% m. \" J, ^% f% K
$ e3 l/ ^$ i5 s8 ]2 J; k1 u2 j1 |9 o) }8 }& i, @$ u
赞 收藏 评论0 发布时间:2022-5-22 21:36

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版