582硬件IIC采用中断方式,通讯不稳定,主机接收从机的数据获取不到,采用的是最新例程的中断方式,使用的都是if语句,未使用swich--case。

不知道什么原因调用I2C_AcknowledgeConfig(DISABLE);和 I2C_GenerateSTOP(DISABLE);会清除PE标志;所以以上调试结果都是在注释掉这两语句后调试的结果。硬件IIC是经过映射的,也按照提示做过初始化IIC软复位。

您好,这两行代码全都注释掉是肯定会出问题的,I2C_AcknowledgeConfig(DISABLE);需要在读最后一个字节前调用,I2C_GenerateSTOP(DISABLE);需要用来结束IIC读写过程;除了这两处一定要用到这两行代码外,其他地方可以不再调用。

建议用逻辑分析仪抓波形看下这两行代码在什么时候调用会清掉PE标志,正常使用是不会导致PE异常的。


只有登录才能回复,可以选择微信账号登录