使用SMbus读取AT24C02数据

请问大家有没有遇到在向24c02写数据,写了40个字符甚至更过,可以写入成功,通过size_t定义读取多少字节数据,但当读取32个字符以内的时候都是可以正确读取,但是不能超过32,这是为什么呢?
下面是读取数据的函数:


image

是这个函数的原因吗?(i2c_smbus_read_i2c_block_data)


I2c.h中,I2C_SMBUS_BLOCK_MAX被定义成32。
image

如果多次执行i2c_smbus_read_i2c_block_data函数读取数据。那么怎么判断24c02内的数据已经全部读取了呢?

我想过一个一个字节的读数据,但是不知道怎么判断24c02内部的数据全部读取?