程序设计思想为,先把所需写入的数写入E2,再读出来与被写入的数相比较,看是否每个数相等,如果不等,则再写一次,再比较,最多重复三次. 大家看看,这个程序有没错,如果错了那错在哪? void E2_Cwrite ( bin08 E2ad, bin08* RAMad, bin08 n ) { bin08 i; bin08 j=0; memcopy( RAMad,&buffer[0],n ); do { buffer[n] = 0; for(i=n;i!=0;i--) { buffer[n] += buffer+0x55; } write_E2( E2ad, &buffer[0],(n+1) ); read_E2 ( E2ad, &buffer[n+1],(n+1) ); I2Cerr=0; for(i=n+1;i!=0;i--) { if (buffer != buffer[n+1+i]) { I2Cerr=1; } } j++; }while ( (j<3)&& I2Cerr); } |