STM8L的奇怪问题

2019-07-19 20:45发布

STM8L遇到一个很奇怪的问题,我用的是STM8L的Discovery,我用PC0和PC1作为模拟I2C的管脚没有问题,但是我换成那个PA5和PA4作为模拟I2C的管脚就不行,我已经把连接PA5和PA5的那个液晶屏拔下来了,也就是那个PA4和PA5没有接任何外部设备了,但是模拟I2C通信读出来的数据就是有问题,我程序之修改了管脚,其他什么都没有修改,原理图如下,和PC1的SB17已经断开了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
943633664
1楼-- · 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的倍数了。  现在的程序:

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

最后谢谢大家的支持与回复
muniao
2楼-- · 2019-07-20 03:29
 精彩回答 2  元偷偷看……
943633664
3楼-- · 2019-07-20 09:07
 精彩回答 2  元偷偷看……
muniao
4楼-- · 2019-07-20 13:12
那你查看一下关于PC0和PC1的设置是否已经全部改成PA5和PA4了
仿真一下看卡在那
943633664
5楼-- · 2019-07-20 15:31
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-20 17:09
回复【6楼】943633664:
---------------------------------
谢谢分享

一周热门 更多>