之前介绍了一款国内的嵌入式仿真平台,嵌入式入门学习新途径——嵌入式仿真实验教学平台_同予的博客-CSDN博客,有朋友私信问我一些具体的细节问题,所以接下来我会运行平台上的一些实验,来展示平台的功能。
这次的实验是 基于SysTick中断的LED闪烁实验。
SysTick即系统定时器又名系统嘀嗒定时器,是一个 24 位的倒计数定时器,当计数到 0 时,将从 RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。
Systick 的信号来源于系统时钟,不分频为 72MHz,8 分频为 9MHz。
这个定时器上学时很少会使用,但在工作中却经常可以发挥作用,原因是该计时器拥有独立的中断,很多效果都能使用系统定时器来实现,这也是选择介绍这个实验的原因。
此实验旨在通过系统定时器中断来控制LED灯的亮灭。
电路的搭建非常简单,仅仅需要外接一枚LED到STM32即可,重点我们来看代码部分。
Systick需要先完成初始化,我们可以直接利用STD库函数SysTick_Config()来实现,使用代码跳转可以查看该函数的定义。
函数SysTick_Config()的参数是单片机的频率,在STD库中有专门的宏定义来表示不同型号单片机的频率,我们使用的STM32F1频率为72MHz。
初始化好Systick以后,就可以开始编写中断服务函数,定时器每次计时结束后,都会进入中断 。
我们想要实现的效果很简单,每次进入中断时,反转一次LED状态即可。
接下来就是编译并运行仿真。
我们在中断函数内设置断点,运行仿真,程序不断进入中断,LED灯亮灭闪烁。
好了,这就是实验的全部内容了,希望对各位有所帮助。