[求助] LPC1114,中使用外部中断后,用IIC读取AT24C256,出现的问题

super00peng   2012-11-5 11:14 楼主
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;   //清除标志位
}

回复评论 (3)

不正常是什么样意思,最好仿真一下,看问题出在哪里?
我的博客
点赞  2012-11-5 11:45

回复 楼主 super00peng 的帖子

最好不要在中断服务函数中进行大量的读写操作等,而是在中断中置标志,退出中断后通过判断标志进行数据读写等操作。。。。
我的博客
点赞  2012-11-5 11:47

回复 板凳 zhaojun_xf 的帖子

正在尝试,可能时间上一直有冲突,一直出错 呵呵
点赞  2012-11-5 15:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复