STM8L的奇怪问题

2019-07-19 20:45发布

STM8L遇到一个很奇怪的问题,我用的是STM8L的Discovery,我用PC0和PC1作为模拟I2C的管脚没有问题,但是我换成那个PA5和PA4作为模拟I2C的管脚就不行,我已经把连接PA5和PA5的那个液晶屏拔下来了,也就是那个PA4和PA5没有接任何外部设备了,但是模拟I2C通信读出来的数据就是有问题,我程序之修改了管脚,其他什么都没有修改,原理图如下,和PC1的SB17已经断开了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
943633664
2019-07-19 22:26
最近调试STM8L的模拟I2C通信,刚开始在STM8L的Discovery上面用PC0和PC1脚作为模拟I2C脚的SDA和SCL脚没有任何问题,程序是自己仿真HMC5893与51单片机通信程序改过来的,可以通讯成功,但是自己打样了块板子回来,换了块板子换了个管脚就不能正常工作了,读出来的数据总是64的倍数,要么是0,要么是64或者128或192。

解决方案:


原先的程序,问题就出现在这条语句,

      这里单步执行之后发现数据一直是0x40,后面查看了一下管脚的定义之后发现,0x40是我使用的第六位的状态,而且0x40转换成十进制正好是64,这就是我程序读出来的数据为什么一直是64或者是64的倍数了。  现在的程序:

先读取第六位的状态,然后在去进行数据处理;

最后谢谢大家的支持与回复

一周热门 更多>