我采用的是中断的方式,当I2C2发送字节的时候,发送完起始条件后,采用这句来等待I2C2发送完成:“while (I2C2->SR2&0x0002);” 。 问题就出现在这里,I2C2并不能顺利的进入中断(我在中断函数里面加了断点),程序每次都会跳过这句,进入后面的关中断语句,导致不能进入中断完成I2C2的发送。后来我在 “while (I2C2->SR2&0x0002); ” 这句前面加一个延时,就能正确的发送了…………而使用断点调试有时就能够正确的进入中断并完成I2C2的发送,这个到能理解,因为断点调试就会起到延时的作用,而全速运行就不能完成I2C2发送。
那么“while (I2C2->SR2&0x0002); ”这句肯定有问题,但是不知道问题是什么
|