这个问题是因为CAT24C01到CAT24C16这几款芯片中,从机地址的bit3、bit2、bit1是根据不同的芯片型号来由不同的方式决定的,如CAT24C01,bit[3:1]是由外部管脚A2、A1、A0决定,而CAT24C16则是把这三位当作了需要访问的存储数据的地址的高字节bit[2:0],和地址的低字节组成一个11位的地址来读写数据。在写的CAT24C16时候,因为把bit[3:1]这三位的值当作了固定的值,读的时候是按地址字节来分配,所以导致读写的数据不一致。解决方法就是读写都需要按照地址字节来决定这三位的值。