0

我正在做一个大学项目,我需要将 pic18f4550 与 i2c EEPROM 连接起来。

我阅读了很多代码并看到了很多关于这个主题的项目。我从 MPLAB C18 编写了一个示例代码(我也尝试了许多代码),但没有人与我合作。

我不知道问题出在哪里。我的代码和电路一切正常,但是 sck 没有生成用于写入的 clk,也没有向 eeprom 写入任何内容。所以如果有人可以帮助我请。

注意:由于我是新用户,我无法发布我的电路图片!这是代码:

    #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);
   }
  }

提前致谢

4

1 回答 1

2

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

于 2011-12-22T14:39:38.783 回答