timer延迟1us_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, (1VAL = 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(),直接自己加载数值。
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
timer延迟1us_STM32 Systick定时器在实现1us延时的问题与解决相关推荐
- 嵌入式单片机基础篇(十)之Systick定时器原理及应用
Systick定时器原理及应用 1.什么是Systick定时器? 回答: (1)ystick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器. (2)Systick定时 ...
- STM32开发 -- Systick定时器
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81630311 一.Systick定时器介绍 参看:STM32菜鸟成长记录-系 ...
- 【STM32】SysTick定时器
00. 目录 文章目录 00. 目录 01. SysTick定时器概述 02. SysTick定时器寄存器描述 03. 相关函数实现 04. 延时函数实现 05. 应用示例 06. 附录 07. 声明 ...
- 14. GD32F103C8T6入门教程-Systick定时器
1.简介 Cortex‐M3 处理器内部包含了一个简单的定时器.因为所有的 CM3 芯片都带有这个定时器,软件在不同 CM3 器件间的移植工作得以化简.该定时器的时钟源可以是内部时钟,或者是外部时钟. ...
- SysTick 定时器
11.1关于 SysTick 定时器 SysTick定时器(又名系统滴答定时器)是存在于Cortex-M3的一个定时器,只要是ARM Cotex-M系列内核的MCU都包含这个定时器.使用内核的SysT ...
- 4、SysTick定时器的理解
参考文档<Cortex-M3权威指南(中文).pdf> 什么是systick? 手册解释: RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟. ...
- STM32的SysTick定时器记录一篇
CSDN博客主页 ID : Eterlove 一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants! 该文章为原创,转载请注明出处和作者! 前言 我 ...
- 【STM32学习】SysTick定时器(嘀嗒定时器)
SysTick定时器 一.参考资料 二.时钟源选择与定时时间计算 1.时钟源选择 2.定时时间计算 三.SysTick_Handler中断服务函数 一.参考资料 嘀嗒定时器:时钟源.寄存器 二.时钟源 ...
- STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)
STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...
最新文章
- VS 2010中对WPF4有哪些多点触摸支持?
- 烽火18台系列之十一:刚需中的刚需——网站篡改监控
- 【每日一算法】二叉树的最大深度
- php redis删除所有key,redis中批量删除key的方法
- 大多数人对AI的理解,都是错的
- SQLServer之创建辅助XML索引
- 字符串的方法、注释及示例1.
- 使用Python和OpenCV创建自己的“ CamScanner”
- Android无法优化应用,Android应用优化总结
- MySQL数据库编译过程
- 深度学习中常说的向量和表示
- mysql自动关闭_服务器mysql数据库老自动停止,请问怎么回事
- 微信小程序开始试点广告功能,一个新的广告竞价体系将要诞生
- python实现logistic增长模型
- 全网疯传的PDF干货合集,50个精选BAT等大厂大数据、算法落地经验,白拿不谢!...
- UnboundLocalError: local variable 'XXX' referenced before assignment
- java请假系统毕业设计_jsp企业员工考勤管理系统
- 信息学奥赛NOIP/CSP-J初赛知识点汇总
- nas怎么做网站服务器,NAS存储搭建网站服务器
- PIC16F887 单片机 信号发生器 波形发生器 PCF8591
热门文章
- 编写python程序、计算账户余额_《易学Python》——第1章 为何学习Python 1.1 学习编程...
- 组网方案设计,运用Mesh组网实现无缝漫游!
- python程序运行时间的几种分析方法
- 网络安全中的NISP-SO安全运维工程师都需要那些工具?
- linux 查看emmc分区表_Linux和Uboot下eMMC boot分区读写
- 彩虹商城知识付费程序-优质站,易支付可自定义(货源对接)
- 联想拯救者Y9000P和华硕ROG幻16哪个好
- 神经网络学习笔记(一):全连接层的作用是什么?
- Nginx模块开发系列1--预备知识
- 是时候回答【我为什么要学习 Go 语言(golang)】这个问题了