关于MSP430与EEPROM通信之间的问题

2019-03-24 14:40发布

关于MSP430与EEPROM通信之间的问题

小弟我刚刚接触MSP430, 准备以后就在这个方向学习下去, 还希望贵地的单片机大神们能给予点滴指导.

问题如下:
在与EEPROM进行IIC通信的时候, 向EEPROM写入字节的时候发现MSP430无法得到EEPROM的回应, 不知道问题出在何处, 物理连线是应该没有问题吧.

以下部分代码:

//  检查从机应答
uchar IIC_ChkAck(void)
{
    uchar ack;
    SDA_H;
    _NOP(); _NOP();
    SCL_H;
    _NOP(); _NOP();
    SDA_IN;
    _NOP(); _NOP();
    ack = SDA_VAL;
    SCL_L;
    delay10nsec();
    SDA_OUT;
    if(ack)
      return TRUE;
    else
      return FALSE;
}

//  向EEPROM写 N-BYTE   N<=8
uchar EEPROM_Write_NByte(uchar address, uchar *out_ptr, uchar n)
{
    uchar flag;
   
    IIC_Start();
    IIC_Write_Byte(DEVICE_ADDRESS);
    if(IIC_ChkAck())
        IIC_Write_Byte(address);
    else
        return 0;
    if(IIC_ChkAck())
        flag = IIC_Write_NByte(out_ptr, n);
    else
        return 0;
    delay10msec();
    if(flag)
        return 1;
    else
        return 0;
}

EEPROM_Write_NByte函数运行的时候, 每次检查从机应答都是FALSE, 还希望大神指点.
另外, 对于_NOP(); 和delaynsec之类的延时函数, 具体有多大区别, 应该如何把握, 小弟也希望能得到解答.
不胜感激! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
kingheimer
2019-03-24 22:32
EEPROM的地址是否正确?是否加了上位电阻?

一周热门 更多>

相关问题

    相关文章