本帖最后由 super0peng 于 2012-11-5 08:24 编辑
中断设置为:下降沿中断,端口为PIO3_0
其中使用了ZLG7290的键盘。
void PIOINT3_IRQHandler(void)
{
I2C_ReadNByte(ZLG7290, ONE_BYTE_SUBA, 0x00, Data_Buf, 2);
if (Data_Buf[0] == 0xfb){ // 这里加一个条件判断,来确定有正确的按键
uartSendStr (Data_Buf, 2);
uartSendByte(1);
switch (Data_Buf[1]){ //判断7290的键值
case 2: //键值为2时
I2C_ReadNByte(CAT1025, TWO_BYTE_SUBA, 0x1400, Data_Buf2, 32);
uartSendStr(Data_Buf2,32);
break;
default:
break;
}
}
LPC_GPIO3->IC |= KEY; //清除标志位
}
当判断按键成功时,读取AT24C256指定位置的值,但是每次读取的值都不同,这是怎么回事,IIC的程序也是使用的中断实现的?是我中断的优先级问题吗? |