GPIO按键外部中断
所用板卡 MSP432P401R LaunchPad
按键电路图
按键连接GPIO P1.1 P1.4
程序编写
使用库函数 driverLib
main中需要的步骤
{
设置IO输入/输出方向,带上拉电阻的输入模式
清除中断标识位,在配置时就需要清除标志位
设置中断触发边沿,上升沿/下降沿
使能GPIO中断
使能总中断(3个中断函数)
}
main源码
int main(void)
{
/* Stop Watchdog */
MAP_WDT_A_holdTimer();
//GPIO Interrupt test
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1); //P1.1 button1
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN4); //P1.4 button2
GPIO_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); //edge
GPIO_interruptEdgeSelect(GPIO_PORT_P1,GPIO_PIN4,GPIO_HIGH_TO_LOW_TRANSITION); //edge
GPIO_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笔记——TIM定时器中断
下一篇:MSP432使用步进电机
推荐阅读最新更新时间:2024-11-10 15:42
设计资源 培训 开发板 精华推荐
- DC1850A-A,在 28V 车载应用中使用 LTC4366HTS8-1 超高压浪涌抑制器的演示板
- 使用 Semtech 的 EZ1584C 的参考设计
- AD9520-1/PCBZ,用于评估 AD9520-1 PLL 时钟合成器的评估板
- 高效和低总谐波失真 200W 交流/直流 LED 驱动器参考设计
- SY88303BL 3.3V、3.2Gbps CML限幅后置放大器的典型应用,具有宽信号丢失检测范围
- 使用 Analog Devices 的 LTC2605IGN 的参考设计
- LTC2182 的典型应用 - 16 位、65Msps 低功耗双通道 ADC
- N76E003AT20-T12烙铁硬件板
- EVAL-AD5204SDZ,用于 AD5204 四通道、256 位、数字电位器的评估板
- 基于arduino的电池管理模块
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位