10 AT24CXX写入不成功

发布于 2020-11-16 10:41:47

at24cxx_write_page写不进去EEPROM,at24cxx_read_page读取是正常的

rt_err_t at24cxx_write_page(at24cxx_device_t dev, uint32_t wirteAddr, uint8_t *pBuffer, uint16_t numToWrite, rt_int8_t Addr)
{
    struct rt_i2c_msg msgs[2];
    uint8_t AddrBuf[2];

    msgs[0].addr = Addr | dev->AddrInput;
    msgs[0].flags = RT_I2C_WR ;
    
#if    0
    AddrBuf[0] = wirteAddr >> 8;
    AddrBuf[1] = wirteAddr;
    msgs[0].buf = AddrBuf;
    msgs[0].len = 2; 
#else
    AddrBuf[0] = wirteAddr;
    msgs[0].buf = AddrBuf;
    msgs[0].len = 1;
#endif    
      
    msgs[1].addr = Addr | dev->AddrInput;
    msgs[1].flags = RT_I2C_WR ;//| RT_I2C_NO_START
    msgs[1].buf = pBuffer;
    msgs[1].len = numToWrite;
      
    if(rt_i2c_transfer(dev->i2c, msgs, 2) <= 0)
    {
        return RT_ERROR;
    }            
    
    return RT_EOK;    
}

查看更多

关注者
0
被浏览
304
Acuity
Acuity 2020-11-16

1、页写注意开始地址;比如页大小是8字节,从地址0x07开始写,写1字节就需要翻页了;
2、不能超出页大小。
参考:EEPROM页写算法

2 个回答
RXGC_5534
RXGC_5534 2020-11-16

是不是有的EEPROM片子不允许PAGE写入

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览