CC2541 独立键盘中断触发

简单的小例子,两个按键引脚分别接到了P0_2 以及P1_7 引脚上,下降沿触发

void KeyInit()
{
  /**********  按键相关设置 : P0_2  右键{ 唤醒键 }**********/  
  P0IFG =0; // 清除标志位 
  P0IF = 0; // 清除标志位
  P0SEL &= (~0x04); // 设置为普通IO
  P0DIR &= (~0x04); // 设置为输入方式
  P0IEN |= 0x04;    // 开启中断
  PICTL |= 0x01;    // 下降沿触发
  IEN1 |=0X20;      // 使能P0 中断
  
  /*********** 按键相关设置 :P1_7  左键 { 设置键 }**********/  
  P1IFG=0;
  P1IF=0;
  P1SEL &= (~(1<<7));
  P1DIR &= (~(1<<7));
  P1INP &= (~(1<<7));    
  P1IEN |= (1<<7);
  PICTL |= (1<<1);
  IEN2 |= (1<<4);  
  EA=1;             // 开启总中断
  /***************************************/
}
#pragma vector=P0INT_VECTOR   
__interrupt void Key_ISR(void)
{

   
   //if(P0IFG&0x04)
   UartSend_String(buf,sizeof("123456789\n")); //串口发送数据
   P0IFG=0;
   P0IF=0;

}
#pragma vector = P1INT_VECTOR 
__interrupt void Key2_ISR(void)
{

  if(P1IFG&0x80)
  UartSend_String(buf,sizeof("123456789\n")); //串口发送数据
  
  P1IFG =(~(0x80)); 
  P1IF = (~(0x80));
}


你可能感兴趣的:(BLE协议栈)