问题:

使用systick_config()函数来实现计数,这个函数在下面代码中的 SysTick_CTRL_TICKINT_Msk 开启了中断。不论系统时钟为72Mhz或36Mhz若设置STM32每10us进入一次中断,计时是可以的;而每1us进入中断,由于中断指令较多,那么程序就会困在中断里出不来。

static __INLINE uint32_t SysTick_Config(uint32_t ticks)

  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);            /* Reload value impossible */
                                                               
  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      /* set reload register */
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* set Priority for Cortex-M0 System Interrupts */
  SysTick->VAL   = 0;                                          /* Load the SysTick Counter Value */
  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk | 
     SysTick_CTRL_TICKINT_Msk   | 
                   SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */
  return (0);                                                  /* Function successful */
}

解决:

尽量不使用中断计时,注释掉Systick_Config()中的SysTick_CTRL_TICKINT_Msk ,或者在delay函数中不使用Systick_Config(),直接自己加载数值。

STM32 Systick定时器在实现1us延时时的问题与解决相关推荐

  1. timer延迟1us_STM32 Systick定时器在实现1us延时的问题与解决

    问题: 使用systick_config()函数来实现计数,这个函数在下面代码中的 SysTick_CTRL_TICKINT_Msk 开启了中断.不论系统时钟为72Mhz或36Mhz若设置STM32每 ...

  2. STM32——SysTick 定时器讲解(代码)

    一.SysTick-系统定时器简介 SysTick-系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中.系统定时器是一个24bit的向下递减的计数器, 计数器每计数一次的时间为1/SYSCLK, ...

  3. stm32 systick定时器

    systick定时器是系统滴答定时器,一个24位的倒计时定时器,计到0时,将从RELOAD寄存器中自动装载定时初值,只要不把它在Systick控制及状态寄存器中的使能位清楚,就永不停息,即使在睡眠状态 ...

  4. STM32通用定时器实现us微秒延时

    为了获取精确延时,STM32芯片中往往会使用内核中的嘀嗒时钟Systick作为参考时钟.当嘀嗒时钟被占用做其他用途时,比如RTOS中的节拍器:就需要采用其他方法进行延时. 这里提出一种采用通用定时器作 ...

  5. STM32 SysTick 滴答定时器原理及应用

    SysTick滴答定时器 一.功能 SysTick定时器是一个简单的定时器,CM3\CM4内核芯片都具备此定时器.SysTick定时器常用来做延时,采用实时系统时则用来做系统时钟. 无论用作延时还是用 ...

  6. 嵌入式单片机基础篇(十)之Systick定时器原理及应用

    Systick定时器原理及应用 1.什么是Systick定时器? 回答: (1)ystick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器. (2)Systick定时 ...

  7. STM32的定时器详解(嵌入式学习)

    STM32的定时器详解 0. 前言 1. Systick定时器 概念 工作原理 时钟基准 Systick练习 2. HAL_Delay函数分析 3. 定时器 基本概念 定时器分类 定时器组成 计数器 ...

  8. STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)

    STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...

  9. STM32系统定时器SysTick(只能向下递减)延时闪烁灯

    参考:stm32 系统定时器 SysTick 作者:点灯小哥 发布时间: 2021-03-10 13:46:00 网址:https://blog.csdn.net/weixin_46016743/ar ...

  10. STM32学习及应用笔记一:SysTick定时器学习及应用

     这几年一直使用STM32的MCU,对ARM内核的SysTick计时器也经常使用,但几乎没有仔细了解过.最近正好要在移植一个新的操作系统时接触到了这块,据比较深入的了解了一下. 1.SysTick ...

最新文章

  1. 计算机重启如何进入设置界面,win7电脑无法正常启动,一开机就进入到bios设置界面怎么办?...
  2. QT中的QGridLayout布局
  3. 一周冲刺计划2//第一天
  4. 【Touchinput 】创建一个输入法(19)
  5. YoloV5实战:手把手教物体检测
  6. @程序员,全面进入万物互联时代必不可缺的 12 大开发平台
  7. MediaInfo源代码分析 3:Open()函数
  8. NLP学习—12.Seq2Seq模型与Attention机制
  9. word文档打对勾_word文档怎么打勾 word文档方框内打勾六种方法介绍
  10. 【论文解读】深度残差网络去雨模型cvpr_Removing rain from single images via a deep detail network
  11. 计算机 在哪看是什么32位,如何查看自己的电脑是32位的还是64位
  12. 我的007之skyfall歌词鉴赏及翻译
  13. Redirected Walking
  14. mysql数据库默认密码在哪看_怎么查看mysql数据库的登录名和密码
  15. 管理人员巡店用表-生鲜部经理及主管每日检查事项
  16. 深井泵房无人值守系统 泵站无人值守平台 智慧水务
  17. Guided Image Filtering
  18. Centos 8.0 安装图形化界面(超详细)
  19. html中编辑广告位,广告位(banner)的可视化管理后台逻辑说明
  20. 学习Ansible自动化

热门文章

  1. 使用selenium模拟登陆163邮箱
  2. 读王小波先生的《黄金时代》、《青铜时代》
  3. springboot毕设项目基于SpringBoot的个人理财系统ibx9h(java+VUE+Mybatis+Maven+Mysql)
  4. 还不知道简历如何写?就该这样写!
  5. 及时复盘的好处_及时复盘,促进成长
  6. 【Shawn-LeetCode】Two Sum
  7. 技术分享 | 相较于ROS 1,ROS 2有哪些优越性?
  8. torch/utils/cpp_extension.py raise RuntimeError(message) from e
  9. ubuntu串口助手推荐——comtool
  10. python基于scrapy框架爬取当当图书信息