APP下载

STM32中断控制教学探讨

2020-01-19田德永

消费电子 2020年12期
关键词:引言中断教学

田德永

【关键词】STM32;中断;教学

一、引言

高职院校很多电子信息竞赛的项目中,如嵌入式技术应用、电子设计竞赛等比赛项目都涉及到基于STM32芯片的嵌入式技术开发,所以大多高职院校采用芯片STM32作为嵌入式课程教学内容。中断技术是STM32核心技术之一,中断的知识是课程教学的难点和重点内容,也是学生不容易学习和理解的知识点。对于基础薄弱的高职学生,如何对STM32的中断知识点进行有效教学,是任课老师需要思索探讨的问题。

二、STM32中断控制

(一)中断概念的理解。

对于生活中的中断现象,其实大部分学生还是比较容易理解,应该明白中断的意思。在进行教学时,我们可以从生活中引入例子来进行对比,让学生更加容易理解中断的概念。比如一位同学正在看书时,突然老师打来了电话,这位同学可能会停止看书,去接老师的电话,接完后再来看书。这个过程就是中断。可以看出,现实中的中断就是正在进行的工作。由于外部原因被打断了。通常说的STM32的中断,其实也就是STM32中内部的CPU中断。针对于CPU来说,中断就是CPU在执行当前的程序。由于有外部某种事件的发生,CPU不得不停止当前程序的执行,而去处理另外一段特殊的中断服务程序的这一过程。一般的嵌入式芯片都具有中断技术,只不过其中的控制机制和复杂程度不一样。为什么采用中断技术,从中断概念我们就会发现中断技术的优势和作用很大。其中一个作用是可以进行分时操作,可以挂载多个外设,匹配外设的速度。另外一个作用是能实时处理,就是当有随机事件来时,能及时响应,提高了CPUI作的效率,满足一些实时任务要求。

(二)STM32中断的机制

STM32中断系统相对于普通51单片机要复杂得多,但功能和性能也比51单片机强得多。学生往往容易掌握中断的概念,但到具体操作上,却难以理清头绪,因此需要初步理解STM32中断机制。对于有许多中断源的STM32来说,中断地管理是采取分组的方法来进行的。STM32设置中断优先级的取内核给的4个字节位,分成五个分组。其中每个分组对应设置一个抢占优先级和一个响应优先级。在进行初始化时,我们就对分组进行配置。在外部中断时,只要确定了中断通道的优先级。也就确定了外部设备的中断优先级。一般情况下,抢占优先级地值越低,优先级则越高。系统首先响应优先级最高的中断。如果两个中断的优先级都一致,则优先执行位于中断向量表中位置较高的中断。

(三)中断实验教学实例

STM32中断有外部中断、定时器中断、串口中断等中断内容教学,本文通过采用外部中断的实验例子进行中断内容的教学分析。重点要求学生学会STM32中断的配置及中断服务函数的编写。掌握基于库函数的外部中断的程序编写步骤。中断服务函数与子函数有不少相似之处,两者都和普通函数一样的格式和要求,都可实现嵌套。学生往往会忽视中断函数与子函数区别,容易混淆它们作用。如果把子函数放在主程序的大循环里调用,那么CPU就一直反复执行这子函数。而中断函数并未写在主函数里。学生会误以为中断函数永远不会执行,其实他们是有非常大的区别,中断函数一般具有特定的函数名,在发生中断过程时中断服务函数就可能被调用。

由于是外部中断,经过IO口的STM32外部中断源,STM32采取了中断线的概念。STM32的lO口与外部中断形成映射关系,构成一个个中断通道。但STM32提供lO能使用的中断线只有16个,为了解决每个10口都能使用中断线,STM32是采用分组方式,每个端口IO引脚序号一致地为一组,对应一根中断线。对于初次接触中断的高职学生来说,比较容易理解的是外部按键中断控制实验,所以具体实验是要求学生通过按键中断的方式,控制LCDl602显示正确的按键。学生编辑相关历程程序,通过搭建仿真电路观察实验效果,来理解STM32的中断机制。

(四)STM32中断教学的实施

1、采用的工具

Proteus是一款功能强大的仿真工具,前期版本只能仿真51、AVR等单片机,现在高版本可以对STM32部分系列进行仿真,为了能方便观察到实验效果。采用仿真工具Proteus进行仿真使得STM32教学效率大大提高。学生需要掌握这个工具,在没有硬件资源的条件下,学生可以通过自己的电脑在课余时间进行仿真学习,提高学习兴趣以及提高对嵌入式设计编程的能力。在进行STM32按键中断的实验中,学生需要绘制的硬件原理图不复杂,但也存在一些问题。学生对电路的基本知识掌握不够扎实,遇到一些元件符号不能识别,不会修改元件参数值,在仿真的时候得不到实验效果。另外部分学生动手能力不强,也缺乏进取之心,遇见到密集的连线和元件产生畏难情绪,就放弃了使用和学习。为了提高学生学习兴趣和直观的图形显示,采用Proteus里的LCDl602模块进行实验结果的显示,在教学中通过示范来指导学生绘制电路图。

STM32芯片运行需要的文件是.HEX文件,通常我们采用的是C语言进行编写源代码的,KEIL软件是我们采取的理想编译软件之一。一般要让学生知道KEIL的配置。比如生成的HEX文件目录在什么地方,在进行仿真学习或者下载到硬件中时,学生才能找到HEX文件。意法半导体为STM32提供了一系列C语言的STM32操作的库函数。也提供了程序开发模板历程,在进行开发实验时,我们只需要使用KEIL软件打开提供的历程进行二次开发就可以。

2、中断控制的按键程序编写教学

一般给的历程里,文件和文件目录比较复杂,学生短时间内难以着手,不知从哪里开始编写代码。我们可以把本例按键中断控制程序分成几个模块来进行设计,把相关组件程序代码写在不同文件里。可以把总的模块分成显示程序文件、按键程序文件、中断配置程序文件、中断服务程序文件、主程序文件。显示程序里的具体细节,学生不必去深究,教师已经编辑并调试好,通过调用显示函数能正常显示,学生只需会调用显示函数即可。因此教师在进行教学时,重点讲解中断配置程序文件和中断服务程序文件。中断配置程序文件中的代码作用一是需要对中断源进行配置,二是将中断映射到相应中断线,三是设置中断分组及中断方式。对于代码,STM32提供了丰富的库函数,调用相应库函数即可进行配置。一般库函数名前大写字母,表示的是对应的STM32功能模块,比如函数名为GPIO开头的。一般就是对普通输入输出口进程操作的函数,EXTI開头库的即是外部中断相关操作函数。在STM32F10X_lT.C文件里我们会发现中断服务函数,并且对应函数名已经定义完成,它是与中断向量一一对应的。我们打开这个文件,找到对应的中断服务函数,在此函数体里写上按键检测代码,以便检测出是哪个按键。同时为了显示按键,也需要在此函数调用显示函数。显示函数是外部函数,因此需要把头文件包括进来。STM32具体中断过程是这样的,当按键按下时,触发中断,即产生中断源请求。那么CPU转而执行对应的外部中断服务函数,及时显示按键值。

五、结论

STM32中断控制系统比较丰富,也比较难以理解。通过一般课程的教学,只是引导学生初步了解中断概念,掌握中断相关配置及其简单应用。如果要进一步深入掌握STM32中断控制机制,灵活运用STM32进行相关嵌入式开发,对于高职院校学生来说,需要在老师的指导下利用课余时间或者翻转课堂不断进行实验和探索。

猜你喜欢

引言中断教学
“自我诊断表”在高中数学教学中的应用
跟踪导练(二)(5)
千里移防,卫勤保障不中断
对外汉语教学中“想”和“要”的比较
基于思维导图的线性代数复习策略
提高小学低段课堂写字有效性的研究
跨越式跳高的教学绝招
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析