实验六:外部中断实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微控制器
综合设计与实训实验名称:实验六外部中断实验
实验六:外部中断实验
1 实训任务
(1) 编写外部中断服务函数;
(2) 初始化外部中断,配置触发条件,配置中断分组;
(3) 控制LED灯亮灭状态或闪烁状态。
1.1 实验说明
(1)STM32外部IO口有中断功能,通过中断的功能,达到实验4的效果,即:通过板载的3个按键,控制板载的三个LED的亮灭。
本实验的代码主要分布在固件库的stm32f10x_exti.h和stm32f10x_exti.c文件中。
(2)使用IO口外部中断的一般步骤
1)初始化IO口为输入;
2)开启AFIO时钟;
3)设置IO口与中断线的映射关系;
4)初始化线上中断,设置触发条件等;
5)配置中断分组(NVIC),并使能中断;
6)编写中断服务函数。
通过以上几个步骤的设置,就可以正常使用外部中断。
1.2 实验步骤
(1) 实训平台上PA9和PA10已经与TXD、RXD连接,串口硬件配置完成;
(2) 将LED端口与对应IO口用导线连接;
(3) 用数据线将串口与电脑的USB接口连接;
(4) 复制上一个实验工程修改名称并保存为USART实验,并将工程文件名称修改为USART. uvprojx;
(5) 编写main()函数,程序编译成功后下载程序到实训平台;
(6) 打开串口调试助手XCOM V2.0,改变延时时间观察LED灯的变化。
2 程序设计
3 硬件原理图设计
4 总结
实验结果:
实验心得:通过本次实验,我了解了如何利用外部中断实现对按键的扫描。
和定时器中断有点类似,不同的是,外部中断是靠外部硬件改变相应检测引脚的电平变化,进而产生的中断。
而定时器中断则是通过系统时钟,到达指定时间周期即进入中断响应函数一次。
从此可以看出外部中断是被动的中断,而定时器的中断则是主动进行的。
当然,两个中断源相互独立,互不干预,执行顺序取决于所配置的优先级。
一般而言,硬件的响应速度要优于软件的响应速度。
提出的问题:边沿触发和电平触发两种方式中断响应的原理与区别?
解释:
边沿触发:当从高至低电平或从低至高电平转变时,触发产生;电平保持多
久都只产生一次。
所以,边沿触发适合与以负脉冲形式输入的外部中断请求。
电平触发:那么在电平时间内中断一直有效;因此如果在电平没有恢复之前中断程序就已经执行完成从而退出,那么会在退出后又再次进入中断;但只要中断没有退出是不会重复触发的。
所以,电平触发方式适合于外部中断以电平输入而且中断服务能清除外部中断源的情况。