本帖最后由 cc474231890 于 2013-1-8 15:31 编辑
请教各位,我使用的是lpc11u14,用iic来读写外扩的EEPROM(AT24C256C),使用的是中断方式,如果我最开始把EEPROM初始化,即将我需要的内容全部写如EEPROM中,然后再对EEPROM进行读写操作都是正常的,但是,如果我不对EEPROM进行初始化,那么,我初始化之后的数据会被清空,也就是说,EEPROM再进行读写操作都会出现错误,无法写入。请问各位大神,这是什么情况呢?
补充:
我在做的是USB键盘,EEPROM里面存放的是键盘的数据,一共有7段数据,每段数据都是由EEPROM靠后的某个地址处的内容所标识(这个地址不会被7段数据覆盖),每次程序上电时都会去读这个地址处的内容,然后根据读出来的值再去判断具体要读哪段数据。程序中,我有2种方法改变这个代表数据段的地址处的值,即通过某个按键或者通过从USB接收到某个命令,现在的问题是,我用按键的时候,可以改变这个值,并且EEPROM读写都是正常的,然而一旦我通过USB接收命令去改变这个值,整个程序就崩溃了,首先USB接收到的命令没有错误,改变这个值的实质就是改变我程序中定义的一个全局变量,然后将这个全局变量写到EEPROM的那个地址去。
求各位大神给点意见,谢谢了,我感觉有可能是IIC的读写问题,但是,为什么按键的时候又可以正常读写呢?我在想要不要将中断方式改成IO模拟,但是,我的IO口是开漏的,硬件上没有接上拉,而且没有其他IO口可以替换了,大家有没有LPC11UXX系列的IIC模拟时序的程序啊?感谢各位!
|