MSP432笔记——按键中断
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笔记——按键中断相关推荐
- hal库开启中断关中断_[STM32]HAL库下GPIO按键中断与去抖问题分析(分析源码解决问题)...
自上篇文章STM32 非阻塞HAL_UART_ReceiveIT解析与实际应用,具体总结了HAL库下套娃函数中如何看清库函数的脉络,更细致的认识调用的过程,以解决潜在的问题.又又又遇到了新的问题(GP ...
- SOPC第四课 按键中断
按键 LED控制 开发板 小梅哥AC620 软件 quartus 13.1 2个按键,当按键0按下时,LED灯开始闪烁:当按键1按下时,LED灯停止闪烁. 使用一个PIO 这个PIO设置为6位(4个L ...
- c语言 执行free函数程序被卡住,FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法...
FreeRTOS操作系统,在按键中断函数中恢复被挂起的任务,程序卡死的原因和解决办法 时间:2019-08-10 14:39:47 来源: 作者: 所属栏目:其他服务端 这里将告诉您FreeRT ...
- Z-Stack通过按键中断实现长按功能
一.功能介绍 项目需要实现长按功能,实现按键有2种方式,一种是通过中断.一种KEY_CHANGE事件轮询的方式.由于中断更加的灵敏,这里选择中断的方式.意外的发现,如果开启了中断,那么按键就不会触发K ...
- STM8学习笔记---外部中断实现
利用按键做为中断触发,按键按下一次,LED灯翻转一次. 首先初始化IO口,按键接在PC4口,默认情况下高电平,按键按下后为低电平. 初始化代码如下: void EXTI_GPIO_Init( void ...
- 字符设备驱动(四)按键中断
目录 字符设备驱动(四)按键中断 硬件IO 程序设计 中断配置 中断关闭 中断函数 共享中断号 测试 完整的程序 title: 字符设备驱动(四)按键中断 tags: linux date: 2018 ...
- 从ARM裸机看驱动之按键中断方式控制LED(二)
硬件环境:Samsung Cortex-A9 Exynos4412 BSP 软件环境:Linux3.14 =============================================== ...
- 从ARM裸机看驱动之按键中断方式控制LED(一)
硬件环境:Samsung Cortex-A9 Exynos4412 BSP + JTAG ARM 仿真器 软件环境:Eclipse ================================== ...
- STM32F411RE Nucleo笔记-按键控制PWM占空比
STM32F411RE Nucleo笔记-按键控制PWM占空比 此次用到STM32F411RENucleo开发板,用到Keil MDK5.12和STM32CubeMx软件. 首先用STM32CubeM ...
最新文章
- 人脸真伪验证与识别:ICCV2019论文解析
- elasticsearch创建mysql索引_ElasticSearch快速使用,基本索引创建-增加type-mapping-插入数据...
- HTML和jQuery拆分成两个文件
- 干货|基于 Spring Cloud 的微服务落地
- 前端学习(1418):服务器响应的数据格式
- 编写优美的GTest测试案例
- erlang---启动参数学习/研究
- Luogu P4774 / LOJ2721 【[NOI2018]屠龙勇士】
- Vue-render函数的三个参数
- fedora下安装python
- php如何定义和使用常量,PHP中如何定义和使用常量_PHP教程
- PDF控件Aspose.Pdf 18年新版18.1发布 | 附下载
- idea 安装jrebel6.4.3及破解
- 标签制作软件如何制作圆形标签中的弧形文字
- java ipv6校验_IPV6地址校验(java)
- VuePress自动化部署到GitHub服务器
- 与众不同的微前端设计思维
- 被曝欠薪又放长假,600亿科技巨头爆雷了
- 时间戳转化为时间小样例
- sbt的安装和应用(详细步骤)
热门文章
- MAC 启动睡眠 及快捷键
- 关闭Windows Ctrl+Alt+Delete来解锁睡眠
- Xshell小键盘不能使用,反斜杠不能输入
- 使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)
- 前端编程编辑器都有哪些 ?
- 六大身边的生活场景 看令你震惊的大数据
- 转贴点关于娜娜的文章
- Filter进行登录验证时循环重定向的解决方法
- 启用FM模块后VA01创建销售订单报错,消息号 FI311 “未在项目00001 11AA 中输入承诺项目”
- 用云开发做的校园跑腿微信小程序(商用版、毕设版),有视频教程