(Kinetis K60)外部引脚中断

PA12引脚中断初始化。

void Exit_Init(void)
{
  SIM_SCGC5 |= (1<<9);      //开启PORTA端口
  
  PORTA_PCR12 |= (1<<8) | (10<<16) | (3);  //GPIO 下降沿触发 上拉电阻 
  GPIOA_PDDR &= ~(1<<12);           //输入模式
  enable_irq(87);   //使能PORT中断
}

SIM_SCGC5 使能PORTA

PORTA_PCR12下降沿触发(1010)

使能上拉输出

PORTA的中断号

重定义中断服务函数

中断服务函数

#include "common.h"
#include "isr.h"

char str[] = "EXIT  ";
U8 i;

void PORTA_IRQHandler(void)
{

    if(PORTA_ISFR & (1<<12))             //PTA12触发中断
    {
        PORTA_ISFR  |= (1<<12);          //写1清中断标志位 
        for(i=0; str[i]!='\0'; i++)
            Uart4_SendByte(str[i]);        
    } 
}


PORTA_ISFR寄存器

程序运行……

原文地址:https://www.cnblogs.com/hebaichuanyeah/p/3124055.html