- 7
- 0
- 约8.89千字
- 约 12页
- 2023-05-20 发布于四川
- 举报
STM32 的程序运行机制不像 51 我们不能够利用简单的 for 循环实现,精确的
延时。本人刚开始也是费了很大的功夫才弄明白这个,systick 这个东西,也是自
己能力有限把,看了奋斗的、战舰的、神舟的资料以及自己在网上查的资料,都讲
的糊里糊涂的,直到看到了野火的一篇文章才搞明白,本人买的的神舟的板子,所
以并不是为了给野火做广告,确实那篇文章写的很透彻,神舟的资料非常之垃圾,
不建议大家看。
废话少说,开始说一下我对 systick 的理解,好帮助一下新同学快速理解
stm32 的 systick 延时
关于他的官方说明再次不啰嗦了,大家很容易找到。
1、 Systick 就是一个 24 位的定时器。驱动这个定时器的时钟源有两
个 一个是 AHB 时钟就是 72M,一个是AHB8 分频就是 9M。
2、 Systick 有关的寄存器
系统时钟节拍控制与状态寄存器(SysTick_CTRL)
系统时钟节拍(SysTick)重装值寄存器(SysTick_LOAD)
按 51 的说法就是重装的初值 注意是 24 位的 也就是 0x00FFFFFF,因为
stm32 的 32 位的
系统时钟节拍(SysTick)校准值寄存器
3、 在库函数中与他相关的函数 core_cm3.h 和 misc.h
在 misc.h 中一些宏定义
#define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB)
#define SysTick_CLKSource_HCLK ((uint32_t)0
#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) ==
SysTick_CLKSource_HCLK) || \
((SOURCE) == SysTick_CLKSource_HCLK_Div8))
还有这个函数 void SysTick_CLKSourceConfig(uint32_t
SysTick_CLKSource);
这个是 时钟源配置函数 来选择是 72M 还是 9M 72M 就是
SysTick_CLKSource_HCLK
9M 就是 SysTick_CLKSource_HCLK_Div8
在 core_cm3.h 中
typedef struct
{
__IO uint32_t CTRL; /*! Offset:
0x00 SysTick Control and Status Register */
__IO uint32_t LOAD; /*! Offset:
0x04 SysTick Reload Value Register */
__IO uint32_t VAL; /*!
Offset: 0x08 SysTick Current Value Register */
__I uint32_t CALIB; /*!
Offset: 0x0C SysTick Calibration Register */
} SysTick_Type;
/* SysTick Control / Status Register Definitions */
#define
SysTick_CTRL_COUNTFLAG_Pos 16
/*! SysTick CTRL: COUNTFLAG Position
*/
#define SysTick_CTRL_COUNTFLAG_Msk
您可能关注的文档
- 反渗透膜元件系统故障的诊断和排除.pdf
- 反相比例运算电路仿真分析.pdf
- 方案联发新天地外架施工方案.pdf
- 方案设计说明及优化建议.pdf
- 钴项目分销渠道系统评估.pdf
- 固件升级操作说明.pdf
- 固体废物的处理与方法.pdf
- 固体激光倍频、调q实验.pdf
- 刮腻子涂料施工工程技术交底卡.pdf
- 关机和自启动.pdf
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
原创力文档

文档评论(0)