STM32 Systick定时器在实现1us延时时的问题与解决
问题:
使用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延时时的问题与解决相关推荐
- timer延迟1us_STM32 Systick定时器在实现1us延时的问题与解决
问题: 使用systick_config()函数来实现计数,这个函数在下面代码中的 SysTick_CTRL_TICKINT_Msk 开启了中断.不论系统时钟为72Mhz或36Mhz若设置STM32每 ...
- STM32——SysTick 定时器讲解(代码)
一.SysTick-系统定时器简介 SysTick-系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中.系统定时器是一个24bit的向下递减的计数器, 计数器每计数一次的时间为1/SYSCLK, ...
- stm32 systick定时器
systick定时器是系统滴答定时器,一个24位的倒计时定时器,计到0时,将从RELOAD寄存器中自动装载定时初值,只要不把它在Systick控制及状态寄存器中的使能位清楚,就永不停息,即使在睡眠状态 ...
- STM32通用定时器实现us微秒延时
为了获取精确延时,STM32芯片中往往会使用内核中的嘀嗒时钟Systick作为参考时钟.当嘀嗒时钟被占用做其他用途时,比如RTOS中的节拍器:就需要采用其他方法进行延时. 这里提出一种采用通用定时器作 ...
- STM32 SysTick 滴答定时器原理及应用
SysTick滴答定时器 一.功能 SysTick定时器是一个简单的定时器,CM3\CM4内核芯片都具备此定时器.SysTick定时器常用来做延时,采用实时系统时则用来做系统时钟. 无论用作延时还是用 ...
- 嵌入式单片机基础篇(十)之Systick定时器原理及应用
Systick定时器原理及应用 1.什么是Systick定时器? 回答: (1)ystick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器. (2)Systick定时 ...
- STM32的定时器详解(嵌入式学习)
STM32的定时器详解 0. 前言 1. Systick定时器 概念 工作原理 时钟基准 Systick练习 2. HAL_Delay函数分析 3. 定时器 基本概念 定时器分类 定时器组成 计数器 ...
- STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)
STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...
- STM32系统定时器SysTick(只能向下递减)延时闪烁灯
参考:stm32 系统定时器 SysTick 作者:点灯小哥 发布时间: 2021-03-10 13:46:00 网址:https://blog.csdn.net/weixin_46016743/ar ...
- STM32学习及应用笔记一:SysTick定时器学习及应用
这几年一直使用STM32的MCU,对ARM内核的SysTick计时器也经常使用,但几乎没有仔细了解过.最近正好要在移植一个新的操作系统时接触到了这块,据比较深入的了解了一下. 1.SysTick ...
最新文章
- 计算机重启如何进入设置界面,win7电脑无法正常启动,一开机就进入到bios设置界面怎么办?...
- QT中的QGridLayout布局
- 一周冲刺计划2//第一天
- 【Touchinput 】创建一个输入法(19)
- YoloV5实战:手把手教物体检测
- @程序员,全面进入万物互联时代必不可缺的 12 大开发平台
- MediaInfo源代码分析 3:Open()函数
- NLP学习—12.Seq2Seq模型与Attention机制
- word文档打对勾_word文档怎么打勾 word文档方框内打勾六种方法介绍
- 【论文解读】深度残差网络去雨模型cvpr_Removing rain from single images via a deep detail network
- 计算机 在哪看是什么32位,如何查看自己的电脑是32位的还是64位
- 我的007之skyfall歌词鉴赏及翻译
- Redirected Walking
- mysql数据库默认密码在哪看_怎么查看mysql数据库的登录名和密码
- 管理人员巡店用表-生鲜部经理及主管每日检查事项
- 深井泵房无人值守系统 泵站无人值守平台 智慧水务
- Guided Image Filtering
- Centos 8.0 安装图形化界面(超详细)
- html中编辑广告位,广告位(banner)的可视化管理后台逻辑说明
- 学习Ansible自动化
热门文章
- 使用selenium模拟登陆163邮箱
- 读王小波先生的《黄金时代》、《青铜时代》
- springboot毕设项目基于SpringBoot的个人理财系统ibx9h(java+VUE+Mybatis+Maven+Mysql)
- 还不知道简历如何写?就该这样写!
- 及时复盘的好处_及时复盘,促进成长
- 【Shawn-LeetCode】Two Sum
- 技术分享 | 相较于ROS 1,ROS 2有哪些优越性?
- torch/utils/cpp_extension.py raise RuntimeError(message) from e
- ubuntu串口助手推荐——comtool
- python基于scrapy框架爬取当当图书信息