⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpio_int.c

📁 EasyARM615在IAR上的实验源代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name:           GPIO_INT_reg.c
** Last modified Date:  2008.01.18 
** Last Version:        v1.0
** Description:         Stellaris系列单片机GPIO口中断操作
** 
**------------------------------------------------------------------------------------------------------
** Created By:          Kang qinhua
** Created date:        2008.01.18 
** Version:             v1.0
** Descriptions:        程序正常运行时,熄灭LED指示灯。当按键按下时,进入中断,点亮LED指示
**		 		        灯。按键放开后,又熄灭LED指示灯。
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_ints.h"
#include "sysctl.h"
#include "systick.h"
#include "gpio.h"
#include "interrupt.h"

#define KEY1 GPIO_PIN_4				// 定义KEY1
#define LED1 GPIO_PIN_7				// 定义LED1

//-----------------------------------------------------------------------------------------------------------------------
// 函数原形:void GPIO_Port_D_ISR(void)
// 功能描述:首先清除中断标志,再点亮LED1。
// 说明:用KEIL软件时,在Startup.S中添加该中断函数名
// 参数说明:无
// 返回值:无
//-----------------------------------------------------------------------------------------------------------------------
void GPIO_Port_D_ISR(void)
{
  GPIOPinIntClear(GPIO_PORTD_BASE, KEY1);			// 清除中断标志
  GPIOPinWrite(GPIO_PORTD_BASE, LED1, ~LED1);		// 点亮LED1
}

//-----------------------------------------------------------------------------------------------------------------------
// 函数原形:int main(void)
// 功能描述:主函数
// 参数说明:无
// 返回值:0
//-----------------------------------------------------------------------------------------------------------------------
int main(void)
{
  // 使能GPIO PD口
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
  // 设置连接KEY1的PD4为输入
  GPIODirModeSet(GPIO_PORTD_BASE, KEY1, GPIO_DIR_MODE_IN);
  // 设置连接LED1的PD7为输出
  GPIODirModeSet(GPIO_PORTD_BASE, LED1, GPIO_DIR_MODE_OUT);

  // 设置KEY1中断的触发方式为低电平触发
  GPIOIntTypeSet(GPIO_PORTD_BASE, KEY1, GPIO_LOW_LEVEL);
  // 使能KEY1中断
  GPIOPinIntEnable(GPIO_PORTD_BASE, KEY1);
  // 使能GPIO D 口中断
  IntEnable(INT_GPIOD);

  while (1)
  {
    GPIOPinWrite(GPIO_PORTD_BASE, LED1, LED1);		// 熄灭LED1
  }
  //return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -