Banner
STM32开发板入门教程三系统时钟SysTick
- 2021-05-01 01:11 -

  系列微处理器来说,执行一条指令只有几十个 ns,进行 for 循环时,要实现 N 毫秒的 x 值非常大,而且由于系统频率的宽广,很难计算出延时N 毫秒的精确值。针对 STM32 微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用 Delay(N)。IM体育

  Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计数器,SysTick 设定初值并使能后,每经过 1 个系统时钟周期,计数值就减 1。计数到 0 时,SysTick 计数器自动重装初值并继续计数,同时内部的 COUNTFLAG 标志会置位,触发中断 (如果中断使能情况下)。

  在 STM32 的应用中,使用 Cortex-M3 内核的 SysTick 作为定时时钟,设定每一毫秒产生一次中断,在中断处理函数里对 N 减一,在Delay(N) 函数中循环检测 N 是否为 0,不为 0 则进行循环等待;若为 0 则关闭 SysTick 时钟,退出函数。

  注:全局变量TimingDelay , 必须定义为 volatile 类型 , 延迟时间将不随系统时钟频率改变。

  这里我们定义了一个 TestSig 全局变量, 用于我们使用 Keil 软件自带的逻辑分析仪来分析.

  添加完之后就可以点 Close 了. 如果您仿真完可以点击 左下方的 Kill All 删除所有监视变量.

  如果你使用仿真器在 Mini-STM32 上调试的话你还可以看到两个 LED 在跑跑马灯程序了.

  到此我们这章节的教程就结束了, 相信大家也掌握了 System Tick 的用法了.

本文由:IM体育提供

Copyright © 2015-2023 上海im体育 版权所有 ICP备05013835号 网站地图

数字式振动传感器生产厂家,数字加速度传感器公司价格,高精度数据采集仪工作原理,静态应变仪参数哪家好