GPIO按键外部中断

所用板卡 MSP432P401R LaunchPad
按键电路图

按键连接GPIO P1.1 P1.4

按键按下时,对应IO变化为低电平,按键必须使用上拉电阻
程序编写
使用库函数 driverLib

main中需要的步骤

{

  • 设置IO输入/输出方向,带上拉电阻的输入模式
  • 清除中断标识位,在配置时就需要清除标志位
  • 设置中断触发边沿,上升沿/下降沿
  • 使能GPIO中断
  • 使能总中断(3个中断函数)

}
main源码

int main(void)
{/* Stop Watchdog  */MAP_WDT_A_holdTimer();//GPIO Interrupt testGPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1); //P1.1 button1GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN4); //P1.4 button2GPIO_clearInterruptFlag(GPIO_PORT_P1,GPIO_PIN1);  //清空中断标识位GPIO_clearInterruptFlag(GPIO_PORT_P1,GPIO_PIN4);  //清空中断标识位GPIO_interruptEdgeSelect(GPIO_PORT_P1,GPIO_PIN1,GPIO_HIGH_TO_LOW_TRANSITION);   //edgeGPIO_interruptEdgeSelect(GPIO_PORT_P1,GPIO_PIN4,GPIO_HIGH_TO_LOW_TRANSITION);   //edgeGPIO_enableInterrupt(GPIO_PORT_P1,GPIO_PIN1);GPIO_enableInterrupt(GPIO_PORT_P1,GPIO_PIN4);//使能中断Interrupt_enableInterrupt(INT_PORT1);Interrupt_enableSleepOnIsrExit();Interrupt_enableMaster();   while(1){}
}

中断服务函数,P1接口有中断服务函数,需要自己编写其中内容,
具体函数名位于项目路径下的/ccs/startup_msp432p401r_ccs.c文件中

P1.0~P1.15所有位产生中断都会进入此中断函数,在中断服务函数中再去分辨是哪一位触发了中断
使用&按位与,中断状态status & 相应的位地址,
因为产生中断后,在相应位的中断上是1,与这一位相与结果是1,中断状态与非产生原因的位相与,结果为0

中断服务函数PORT1_IRQHandler,需要的步骤

{

  • 获取中断状态 status
  • 清除中断标志位
  • 根据status判断是哪一位发生中断
  • 用户自定的程序

}

void PORT1_IRQHandler(void)
{//中断服务uint32_t status = GPIO_getEnabledInterruptStatus(GPIO_PORT_P1); //获取中断状态GPIO_clearInterruptFlag(GPIO_PORT_P1,status);   //清除标志位if(status & GPIO_PIN1){GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);    //off}else if( status & GPIO_PIN4 ){GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);    //on}else{}
}

MSP432笔记——按键中断相关推荐

  1. hal库开启中断关中断_[STM32]HAL库下GPIO按键中断与去抖问题分析(分析源码解决问题)...

    自上篇文章STM32 非阻塞HAL_UART_ReceiveIT解析与实际应用,具体总结了HAL库下套娃函数中如何看清库函数的脉络,更细致的认识调用的过程,以解决潜在的问题.又又又遇到了新的问题(GP ...

  2. SOPC第四课 按键中断

    按键 LED控制 开发板 小梅哥AC620 软件 quartus 13.1 2个按键,当按键0按下时,LED灯开始闪烁:当按键1按下时,LED灯停止闪烁. 使用一个PIO 这个PIO设置为6位(4个L ...

  3. c语言 执行free函数程序被卡住,FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法...

    FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法 时间:2019-08-10 14:39:47  来源:  作者:  所属栏目:其他服务端 这里将告诉您FreeRT ...

  4. Z-Stack通过按键中断实现长按功能

    一.功能介绍 项目需要实现长按功能,实现按键有2种方式,一种是通过中断.一种KEY_CHANGE事件轮询的方式.由于中断更加的灵敏,这里选择中断的方式.意外的发现,如果开启了中断,那么按键就不会触发K ...

  5. STM8学习笔记---外部中断实现

    利用按键做为中断触发,按键按下一次,LED灯翻转一次. 首先初始化IO口,按键接在PC4口,默认情况下高电平,按键按下后为低电平. 初始化代码如下: void EXTI_GPIO_Init( void ...

  6. 字符设备驱动(四)按键中断

    目录 字符设备驱动(四)按键中断 硬件IO 程序设计 中断配置 中断关闭 中断函数 共享中断号 测试 完整的程序 title: 字符设备驱动(四)按键中断 tags: linux date: 2018 ...

  7. 从ARM裸机看驱动之按键中断方式控制LED(二)

    硬件环境:Samsung Cortex-A9 Exynos4412 BSP 软件环境:Linux3.14 =============================================== ...

  8. 从ARM裸机看驱动之按键中断方式控制LED(一)

    硬件环境:Samsung Cortex-A9 Exynos4412 BSP + JTAG ARM 仿真器 软件环境:Eclipse ================================== ...

  9. STM32F411RE Nucleo笔记-按键控制PWM占空比

    STM32F411RE Nucleo笔记-按键控制PWM占空比 此次用到STM32F411RENucleo开发板,用到Keil MDK5.12和STM32CubeMx软件. 首先用STM32CubeM ...

最新文章

  1. 人脸真伪验证与识别:ICCV2019论文解析
  2. elasticsearch创建mysql索引_ElasticSearch快速使用,基本索引创建-增加type-mapping-插入数据...
  3. HTML和jQuery拆分成两个文件
  4. 干货|基于 Spring Cloud 的微服务落地
  5. 前端学习(1418):服务器响应的数据格式
  6. 编写优美的GTest测试案例
  7. erlang---启动参数学习/研究
  8. Luogu P4774 / LOJ2721 【[NOI2018]屠龙勇士】
  9. Vue-render函数的三个参数
  10. fedora下安装python
  11. php如何定义和使用常量,PHP中如何定义和使用常量_PHP教程
  12. PDF控件Aspose.Pdf 18年新版18.1发布 | 附下载
  13. idea 安装jrebel6.4.3及破解
  14. 标签制作软件如何制作圆形标签中的弧形文字
  15. java ipv6校验_IPV6地址校验(java)
  16. VuePress自动化部署到GitHub服务器
  17. 与众不同的微前端设计思维
  18. 被曝欠薪又放长假,600亿科技巨头爆雷了
  19. 时间戳转化为时间小样例
  20. sbt的安装和应用(详细步骤)

热门文章

  1. MAC 启动睡眠 及快捷键
  2. 关闭Windows Ctrl+Alt+Delete来解锁睡眠
  3. Xshell小键盘不能使用,反斜杠不能输入
  4. 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
  5. 前端编程编辑器都有哪些 ?
  6. 六大身边的生活场景 看令你震惊的大数据
  7. 转贴点关于娜娜的文章
  8. Filter进行登录验证时循环重定向的解决方法
  9. 启用FM模块后VA01创建销售订单报错,消息号 FI311 “未在项目00001 11AA 中输入承诺项目”
  10. 用云开发做的校园跑腿微信小程序(商用版、毕设版),有视频教程