外部中断实验-物联网
中断概念:
中断全过程
- 中断发生——当CPU在处理某一事件A时, 发生了另一事件B,请求CPU迅速去处理
- 中断处理 ——CPU暂停当前的工作,转去处理事件B
- 中断返回——当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件A
以上三个过程称为中断
1. 实验目的
- 学习CC3200中外部中断控制原理
- 通过串口按键控制LED灯
2. 实验环境
- 硬件:WiFi(CC3200)模块,UART下载调试板,PC机
- 软件:IAR Embedded Workbench for ARM
- 实验目录:Src\Src\WiFi\Components\CC3200_basic\Exp03 Timer
3. 实验原理
- WiFi(CC3200)模块 LED 硬件接口
图 3.1 LED 硬件接口
图 3.2 按键接口
WiFi(CC3200)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC3200的GPIO11、GPIO30两个IO引脚。从原理图上可以看出,2个LED共阴极,当GPIO11、GPIO30引脚为高电平时候,LED灯点亮。
WiFi(CC3200)模块上按键引脚连接到核心板的GPIO22,当按键按下时为低电平,将中断方式设置为下降沿触发方式。
- CC3200 IO 相关寄存器
图 3.3 GPIO 功能寄存器
图 3.4 GPIO数据寄存器
图 3.5 中断检测寄存器
图 3.6 中断触发方式控制寄存器
以上图表列出了关于CC3200处理器的GPIO中断相关寄存器,CC3200有4组GPIO ,每组的GPIO共用一个中断处理函数,既然有多个GPIO共用一个中断处理函数,当然要在中断函数查询哪个GPIO触发中断的(可以查询中断状态寄存器),详情请用户参考CC3200的芯片手册。
4. 实验步骤
1)将WiFi通讯模块、UART调试板按照下图方式连接,USB线接到电脑。
2)用IAR for ARM打开实验工程,目录:Src\Src\WiFi\Components\CC3200_basic\Exp02 Interrupt\project\interrupt \ewarm,之后打开后缀名为(.eww)的工程文件。
3)编译程序,菜单栏Project->Rebuild All。
4)运行CCS UniFlash烧写软件,烧写Exp02 Interrupt\project\interrupt \ewarm\Release\Exe目录下的interrupt.bin文件。
部分代码展示:
#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
//外部中断初始化函数
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //外部中断,需要使能AFIO时钟
KEY_Init();//初始化按键对应io模式
//GPIOC.5 中断线以及中断初始化配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource5);
EXTI_InitStructure.EXTI_Line = EXTI_Line5;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
//GPIOA.15 中断线以及中断初始化配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource15);
EXTI_InitStructure.EXTI_Line = EXTI_Line15;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); //根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
//GPIOA.0 中断线以及中断初始化配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);.........................
作者:泽宇-Li
- 点赞
- 收藏
- 关注作者
评论(0)