周立功的中断KEY程序

2019-03-25 20:41发布

请教各位一下 周立功的KEY外部中断程序有几个地方不明白 #define BEEP            (1ul << 7)                                      /*  BEEP定义PIO2_7              */
#define KEY             (1ul << 0)                                      /*  按键定义PIO3_0              */ #define BEEPOFF()        LPC_GPIO2->DATA |= BEEP                        /*  BEEP开                      */
#define BEEPON()         LPC_GPIO2->DATA &= (~BEEP)                     /*  BEEP关    LPC_GPIO3->IS      = 0x00;                                          /* P3.0为边沿中断               */
    LPC_GPIO3->IEV    |= KEY;                                           /* 上升沿中断                   */
    LPC_GPIO3->IE     |= KEY;                                           /* P3.0中断不屏蔽
为什么是上升沿和中断不屏蔽呢 看周立功的技术手册 1.jpg 2.jpg   第2各不明白的地方 void BEEPInit( void )
{
    LPC_IOCON->PIO2_7 &= (~0x07);                                       /* 将P2.7初始化为GPIO功能       */
    LPC_GPIO2->DIR    |= BEEP;                                          /* 将P2.7方向设置为输出         */
    LPC_GPIO2->DATA   |= BEEP;                                          /* 将P2.7初始化输出高电平       */
}   void PIOINT3_IRQHandler(void)
{
    LPC_GPIO3->IC |= KEY;
    BEEPON();   
    myDelay(150);
    BEEPOFF();
    myDelay(150);
}  跳线连接:       将P3.0引脚与KEY1短接,P2.7引脚与BEEP短接
**     现    象:       按下KEY1,BEEP鸣叫两次 为什么是鸣叫2次呢?? beep本来是高电平,进入中断 先是高电平 然后拉低了 不就是一次么 上升沿触发  key初始输入 默认的是高电平还是低电平呢? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。