请教各位一下 周立功的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中断不屏蔽
为什么是上升沿和中断不屏蔽呢 看周立功的技术手册
第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初始输入 默认的是高电平还是低电平呢?
此帖出自
小平头技术问答
一周热门 更多>