15.15、 EXTI无线315M模块外部中断实验.pdf

上传人:紫竹语嫣 文档编号:5514419 上传时间:2020-05-27 格式:PDF 页数:17 大小:512.41KB
返回 下载 相关 举报
15.15、 EXTI无线315M模块外部中断实验.pdf_第1页
第1页 / 共17页
15.15、 EXTI无线315M模块外部中断实验.pdf_第2页
第2页 / 共17页
15.15、 EXTI无线315M模块外部中断实验.pdf_第3页
第3页 / 共17页
15.15、 EXTI无线315M模块外部中断实验.pdf_第4页
第4页 / 共17页
15.15、 EXTI无线315M模块外部中断实验.pdf_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《15.15、 EXTI无线315M模块外部中断实验.pdf》由会员分享,可在线阅读,更多相关《15.15、 EXTI无线315M模块外部中断实验.pdf(17页珍藏版)》请在三一文库上搜索。

1、 EXTI无线无线315M模块外部中断实验模块外部中断实验 前面我们介绍了STM32的IO口作为输出输入功能的使用并介绍了我们以按键的中断扫 描实验, 这一节, 我们将向大家介绍如何使用STM32的IO口作为EXTI外部中断外部中断的输入功能, 我们以315M无线模块无线模块为例讲解, 通过本节的学习, 你将了解到STM32的IO口作为EXTI外部 中断 外部 中断输入实现无线控制的功能的方法。本节分为如下几个小节: 1 EXTI无线315M模块外部中断实验的意义与作用 2 实验原理 3 硬件设计 4 软件设计 5 下载与验证 6 实验现象 ? 意义与作用意义与作用 STM32的IO口在前面的

2、流水灯实验和按键的输入扫描实验中已经有了详细的介绍,这 里我们细讲,这一节我们将向大家介绍如何结合STM32的库使STM32的GPIO口作为EXTI 外部中断外部中断的输入功能使用。 Cortex-M3的NVIC(嵌套向量中断控制器)是一大特色,而STM32的所有GPIO管脚都 可以作为中断输入源, 所以掌握使STM32的GPIO口作为EXTI外部中断外部中断的硬件与软件设计思 想对理解其NVIC有很大帮助。 本实验章节,我们将通过 315M 无线发射遥控无线发射遥控控制神舟 IV 号板的 315M 无线接收模块无线接收模块 产生中断来控制板上的 4 个 LED(LED14) ,按下任一个按钮

3、,对应的 LED14 点亮,同 时蜂鸣器会鸣响,并在串口输出对应的信息。 ? 实验原理实验原理 这个例程的实验原理主要是通过神舟IV号上的315无线模块,接收315M无线遥控上的4 个按钮(遥控上的A、B、C、D键)并产生中断,控制蜂鸣器和4个LED灯的点亮和关闭状 态。 具体的对应关系如下: 现象 操作 备注 LED1亮其它LED灭 神舟IV号板载KEY1按键被按下 或者315M无线遥控的按键A被按下 LED2亮其它LED灭 神舟IV号板载KEY2按键被按下 或者315M无线遥控的按键B被按下 LED3亮其它LED灭 神舟IV号板载KEY3/TAMPER按键被按下,或 者315M无线遥控的按

4、键C被按下 LED4亮其它LED灭 神舟IV号板载KEY4/WAKEUP按键被按下, 或 者315M无线遥控的按键D被按下 蜂鸣器鸣响 315M无线遥控的按键任意键被按下 同时串口会 有打印提示 STM32F107VCT一共有5组GPIO,分别是PA15:0、PB15:0、PC15:0、PD15:0 和 PE15:0。STM32的所有GPIO管脚都可以作为中断输入源,但是如果每个GPIO都是一个独 立的中断源,则需要90个中断源,这是不科学的,所以通过复用的方式使其对处理器来说来 自GPIO的一共有16个中断Px15:0。具体实现是PA0、PB0、PC0、PD0 和PE0共享 一个GPIO中断

5、;PA1、PB1、PC1、PD1 和PE1共享一个GPIO中断;PA15、 PB15、PC15、PD15 和PE15共享一个GPIO中断,如下图所示: 所以在硬件设计时要注意,不要将外部中断连接到PA1、PB1、PC1和PE1,这样 的话处理器只能选择一个作为中断源比如PA1,那么其它中断将无法到达处理器。 ? 硬件设计硬件设计 神舟IV号开发板板载了315M无线模块, 可以接受遥控器的信号, 当遥控的一个按键按下 时,对应的无线模块的D03管脚变为有效。需要指出的是,无线模块当输出为高电平有效, 经过三极管放大取反以后并为低电平有效,再将这些送给神舟开发板的STM32。 图表 1 315M

6、无线接口原理图 当无线模块的VT脚有效(低电平)时,表示无线模块接收到遥控的按键信号;当VT管脚 无效(高电平)时,表示无线模块没有接收到遥控的按键信号,与无线模块连接的几个管脚 的电平变化是按键引起的。 315M无线收发模块如下所示: 而神舟IV号通过三极管将315M无线模块与板上的按键进行了资源复用。神舟IV号STM32 开发板总共有4个功能按键,分别是WAKEUP按键和TAMPER按键及两个用于自定义功能按键, 在不使用第二功能的情况下,这四个按键都可以作为通用的按键,由用户自定义其功能。这 四个按键分别与PC4、PB10、PC13和PA0四个GPIO管脚连接,当按键按下时,对应的GPI

7、O 管脚为低电平,反之,当没有按键按下时,对应的GPIO管脚为高电平。其中PA0 (STM32的 WKUP引脚)可以作为WK_UP功能,它除了可以用作普通输入按键外,还可以用作STM32的 唤醒输入。PC13可以实现备份区寄存器的入侵功能。本实验中所有的按键均作为普通IO使 用。 图表 2 按键输入电路 GPIO 管脚与无线模块对应关系 无线模块 按键对应的GPIO D4 PC4 D3 PB10 D2 PC13 D1 PA0 VT PA3(蜂鸣器) ? 软件设计软件设计 在分析例程的代码之前,我们想回顾一下关于 STM32 GPIO 的使用。 STM32 GPIO 的使用与配置 STM32 的

8、 IO 口可以由软件配置成 8 种模式: ? 模拟输入 ? 输入浮空 ? 输入下拉 ? 输入上拉 ? 开漏输出 ? 推挽输出 ? 复用功能开漏输出 ? 复用功能推挽输出 对应到STM32库文件中的定义如下 在我们使用一个GPIO之前, 我们一般需要对GPIO管脚的时钟, 和GPIO管脚模式以及速 率进行设定。 STM32的GPIO端口在作为输出时,可以软件配置端口最大支持的时钟速率,有以下几种: ? 输出模式,最大时钟速率10MHz ? 输出模式,最大时钟速率2MHz ? 输出模式,最大时钟速率50MHz 在神舟IV号光盘编译好的固件15、EXTI无线315M模块外部中断目录下的EWARMv5

9、 STM32F107VC-ARMJISHUExeARMJISHU_EXTI无线315M模块外部中断.hex文件即为前 面我们分析的无线315M模块中断实验编译好的固件,我们可以直接通过JLINK V8将固件下 载到神舟IV号开发板中,观察运行效果。 神舟IV号的“按键扫描实验”位于神舟IV号光盘编译好的固件15、EXTI无线315M模块 外部中断目录中。双击Project.eww可以打开IAR工程,以下为工程文件中主要代码的解释与 说明。 为程序便于大家修改和移植为程序便于大家修改和移植,此处使用宏定义来定义指示灯的管脚等: 下面的LED_config函数是初始化神舟IV号STM32开发板的4

10、个LED灯对应的GPIO端口初 始化的子函数。 关于LED的其它函数请查看 “LED跑马灯实验” 章节, 关于USART串口的函数请查看 “串 口2的Printf输出实验”章节,此处主要介绍按键相关程序。 为程序便于大家修改和移植为程序便于大家修改和移植,此处使用宏定义来定义按键对应的管脚: 神舟IV号按键使用的GPIO的接口接口初始化, 由于按键或315M无线模块无线模块上的按键按下 时会使相应的GPIO口变为低电平,因此,我们在硬件上加了上拉电阻,这样我们配置按键 使用的GPIO为悬空输入模式(GPIO_Mode_IN_FLOATING)。然而在外部没有上啦电阻的 情况下,也可以使用芯片内

11、部的上拉电阻,这时我们需要配置按键使用的GPIO为输入上拉 模式(GPIO_Mode_IPU)。为了不失一般性在这里我们配置按键使用的GPIO为输入上拉模 式。没有收到有效信号,保持这些GPIO口为高电平。 在本例程中,由于蜂鸣器和315M无线接收模块的VT使用了相同的GPIO管脚,只要无 线遥控上的任意按键按下,无线接收模块的VT信号就为低电平,经过三极管放大取反后的 低电平被Check_315M_Wireless程序检测到,同时驱动蜂鸣器鸣响。 315M无线模块中断初始化函数,将是实验原理章节的GPIO复用图所示的,告诉处理器选择 哪一组GPIO的哪一个管脚作为中断源,并配置为下降沿触发中

12、断。 按键1连接到了PC4,所以它是外部第4条中断: 同理:按键2连接到了PB10,按键3连接到了PC13,按键4连接到了PA0,所以它是外部 第0条中断,VT信号连接到了PA3,所以它是外部第3条中断。 中断配置函数,配置中断向量表的地址以及中断的优先级。 在本例程中,315M无线接收模块与四个按键通用GPIO,所以只能以VT信号来区分是 板载按键按下还是315M无线遥控按键按下。315M无线接收模块的VT信号有效时是315M遥 控按键按下,否则是板载按键按下,所以315M无线接收模块的VT信号的中断优先级应该高 于四个按键的优先级。315M无线接收模块的VT信号的主中断优先级为0,四个按键

13、的主中 断优先级均为1,四个按键的从中断优先级没有特殊的优先级要求,所以分别为0、1、2、3。 关于LED灯和串口的初始化和控制,在此就不再重复,可以查看流水灯实验和串口实验 章节。在完成了相关初始化以后,我们再来分析一下主程序。 首先是串口的初始化以及提示消息的打印输出: 然后是配置LED指示灯并闪烁几次,配置按键以及初始化中断后,MAIN函数加入while 死循环等待中断的到来: 中断处理函数中断处理函数 中断处理函数中首先确认中断属实,然后熄灭所有 LED,点亮自己对应的 LED,并在 串口打印中断提示信息后清除中断标志位后返回。 按键 1 连接到了 PC4,所以它是外部第 4 条中断,

14、其中断处理函数如下: 按键 2 连接到了 PB10, 按键 3 连接到了 PC13, 在 STM32 处理器中将外部第 10 条中断 到 外部第 15 条中断统一在“EXTI15_10_IRQHandler”函数中处理。所以需要使用 “if(EXTI_GetITStatus(EXTI_LineX) != RESET)”来区分,其中断处理函数如下: 按键 4 连接到了 PA0,所以它是外部第 0 条中断,其中断处理函数如下: VT 信号连接到了 PA3,所以它是外部第 3 条中断,其中断处理函数如下: ? 下载与验证下载与验证 神舟IV号光盘源码目录包含本实验的工程源码,在神舟IV号光盘源码15

15、、EXTI无线 315M模 块 外 部 中 断.rarProject15、EXTI无 线315M模 块 外 部 中 断EWARMv5 STM32F107VC-ARMJISHUExe目录下的ARMJISHU_EXTI无线315M模块外部中断.hex文件 即为前面我们分析的无线遥控按键和开发板轻触开关中断实验编译好的固件, 我们可以直接 将固件下载到神舟IV号开发板中,观察运行效果。 如果使用JLINK下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。下载固件 到神舟IV号开发板小节进行操作。 如果使用USB下载固件,请按错误!未找到引用源。错误!未找到

16、引用源。错误!未找到引用源。错误!未找到引用源。小节进行操 作。 如果使用串口下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。小节进行 操作。 如果在IAR开发环境中, 下载编译好的固件或者在线调试, 请按错误! 未找到引用源。错误! 未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。 如果在MDK开发环境中,下载编译好的固件或者在线调试,请按错误!未找到引用源。错误!未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。 ? 实验现象实验现象 具体实验现象如下表所示。 现象 操作 备注 LED1亮其它LED灭

17、神舟IV号板载KEY1按键被按下 或者315M无线遥控的按键A被按下 LED2亮其它LED灭 神舟IV号板载KEY2按键被按下 或者315M无线遥控的按键B被按下 LED3亮其它LED灭 神舟IV号板载KEY3/TAMPER按键被按下, 或者315M无线遥控的按键C被按下 LED4亮其它LED灭 神舟IV号板载KEY4/WAKEUP按键被按下, 或者315M无线遥控的按键D被按下 蜂鸣器鸣响 315M无线遥控的按键任意键被按下 同 时 串 口 会 有 打 印 提示 下载固件后上电运行。 遥控有按键按下时蜂鸣器会鸣响, 对应的LED灯会随之发生点亮, 同时串口会有提示信息; 以下是按无线遥控的按键时串口打印:以下是按无线遥控的按键时串口打印: 开发板上的轻触开关被按下时蜂鸣器不不会鸣响, 对应的LED灯会随之发生点亮, 同时串 口会有提示信息 以下是下载固件后按轻触开关以下是下载固件后按轻触开关key1时的串口打印:时的串口打印:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料


经营许可证编号:宁ICP备18001539号-1