LPC1114,中使用外部中断后,用IIC读取AT24C256,出现的问题,不用中断时读取正常,但是一进入中断,读取就出错了~
中断设置为:下降沿中断,端口为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; //清除标志位
}
不正常是什么样意思,最好仿真一下,看问题出在哪里?
回复 楼主 super00peng 的帖子
最好不要在中断服务函数中进行大量的读写操作等,而是在中断中置标志,退出中断后通过判断标志进行数据读写等操作。。。。
回复 板凳 zhaojun_xf 的帖子
正在尝试,可能时间上一直有冲突,一直出错 呵呵