硬件I2C问题,在线等
void Wait(){
unsigned int WaitTime=1000;
while ((!(I2CMSST & 0x40))&(0 != (--WaitTime))); //MISF of I2CMSST is 1? or waitime=0?
I2CMSST &= ~0x40; //MISF of I2CMSST reset
}
硬件I2C运行到上面子程序,MISF of I2CMSST没有自动置1,每次都有等到waitime减到0才退出WHILE;
规格书里751页
芯片用8H1K28;仿真用STC-USB LINK1D
其他的都正常
在线求解决方法
{:4_196:}
可以先确定下IIC接线有没有问题?上拉电阻?,还有IO模式? I2CMSST的MISF标志需要执行MSCMD命令后硬件才会自动置1。
所以执行wait函数前需要先执行I2C命令程序。
另外如果是使用仿真验证的话,需要保证使用硬件仿真,软件模拟仿真是收不到硬件标志的。 接线没有问题啊,I2C负载都是可以传数据的,OLED负载。就是仿真看不到MISF标志变化
有两组I2C,另一组接触摸IC,开始是发现触摸IC I2C通信时MISF标志不变化,回头再看OLED的通信,也是一样,MISF标志不变化,但是OLED通信是正常的 mark一下.
页:
[1]