我现在在使用STM8S时,也碰到了跟楼主一样的问题。情况如下:
1、一块板采用IO模拟I2C主机(芯片也是STM8S,但没有采用I2C模块),用示波器查看过波形,均正常。SCK频率在20~50kHz
2、另一块板采用STM8S的硬件I2C模块,作为从机
3、从机采用16MHz HSI,fMaster = 16MHz,fCPU = 8MHz,在此情况下,I2C通信大约有1%左右的出错。如果更改为fMaster = 16MHz,fCPU = 16MHZ,在此情况下,I2C通信大约在10%左右的出错。
用示波器观察过SCK,SDA波形,上升沿均小于0.5uS,下降沿小于0.2uS
最为不解的是,为何更改CPU的时钟频率,会导致I2C通信出错率提高? |