Example #1
0
int eep_write_page(uint32_t addr, uint8_t *buf, uint32_t len)
{
    int ret;
    uint8_t chip_addr;
    
    chip_addr = (addr/256) + eep_dev.addr;
    ret = I2C_BurstWrite(eep_dev.bus_instance, chip_addr, addr%256, 1, buf, len);
    while(I2C_Probe(eep_dev.bus_instance, eep_dev.addr));
    return ret;
}
Example #2
0
/**
 * \brief i2c bus scan test
 * @param[in] MAP  I2C引脚配置缩略图,详见i2c.h
 * \retval None
 */
void I2C_Scan(uint32_t MAP)
{
    uint8_t i;
    uint8_t ret;
    uint32_t instance;
    instance = I2C_QuickInit(MAP, 100*1000);
    for(i = 1; i < 127; i++)
    {
        ret = I2C_Probe(instance , i);
        if(!ret)
        {
            LIB_TRACE("ADDR:0x%2X(7BIT) | 0x%2X(8BIT) found!\r\n", i, i<<1);
        }
    }
}
Example #3
0
int eep_init(uint32_t instance)
{
    uint32_t i;
    
    eep_dev.bus_instance = instance;

    for(i=0;i<ARRAY_SIZE(eep_addr);i++)
    {
        if(!I2C_Probe(instance, eep_addr[i]))
        {
            eep_dev.addr = eep_addr[i];
            return EEP_OK;
        }
    }
    return EEP_ERROR;
}