if (SDA==1)<br /> d=d|0x01; <br /> else<br /> d=d|0xfe; // 写错了吧?!<br /> SCK=0; <br /> } <br />这一句肯定有问题,2楼说的也需要注意<br /><br />其他的没仔细看,不过I2C读写不需要关中断,<br />另外建议程序构架使用以下方式:<br />I2C_Save( int address, const void * p, int count );<br />I2C_Load( int address, void * p, int count );<br /><br />调用时:<br />float t = 123.456f;<br />I2C_Save( 0, &t, sizeof(t));<br />I2C_Load( 0, &t, sizeof(t));<br /><br />这样通用性更好一些<br /><br /><br />
|