连接pic18f4550与i2c EEPROM(24AA1025)

时间:2011-12-21 16:30:34

标签: interface pic i2c eeprom

我正在开展一项大学项目,我需要将pic18f4550与i2c EEPROM接口。

我阅读了很多代码,并在这个主题上看到了许多项目。我从MPLAB C18中编写了一个示例代码(我也尝试了很多代码),但没有人和我一起工作。

我不知道问题出在哪里。我的代码和我的电路一切都很好,但是sck并没有把clk用于写作,并且没有任何东西可以用于eeprom。所以,如果任何人可以帮助我PLZ。

注意:我不能发布我的电路图像,因为我是新用户! 这是代码:

    #include "p18f4550.h"
    #include "i2c.h"
    #pragma config FOSC = HS
    #pragma config PWRT = OFF
    #pragma config BOR = OFF
    #pragma config MCLRE = ON
    #pragma config PBADEN = OFF
    #pragma config ICPRT = OFF
    #pragma config LVP = OFF
    #pragma config WDT = OFF,DEBUG=OFF

    unsigned char arraywr[] = {1,2,3,4,5,6,7,8,0};
    unsigned char arrayrd[20];
    //***************************************************
    void main(void)
    {
    OpenI2C(MASTER, SLEW_ON);// Initialize I2C module
    SSPADD = 10; //400kHz Baud clock(10) @20MHz
    while(1)
    {
     EEByteWrite(0xA0, 0x30, 0xA5);
     EEAckPolling(0xA0);
     EECurrentAddRead(0xA0);
     EEPageWrite(0xA0, 0x70, arraywr);
     EEAckPolling(0xA0);
     EESequentialRead(0xA0, 0x70, arrayrd, 20);
     EERandomRead(0xA0,0x30);
   }
  }

提前致谢

1 个答案:

答案 0 :(得分:2)

看起来您没有为数字输入和输出设置端口引脚。检查数据表中哪些引脚用于I2C并设置相应的TRIS位。您还应检查相同引脚的模拟功能是否被禁用(ANSEL寄存器)。单独启用I2C模块是不够的。