OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7543|回复: 7

STM8L的奇怪问题

[复制链接]

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2012-4-11
在线时间
0 小时
发表于 2014-9-19 13:44:10 | 显示全部楼层 |阅读模式
5金钱
STM8L遇到一个很奇怪的问题,我用的是STM8L的Discovery,我用PC0和PC1作为模拟I2C的管脚没有问题,但是我换成那个PA5和PA4作为模拟I2C的管脚就不行,我已经把连接PA5和PA5的那个液晶屏拔下来了,也就是那个PA4和PA5没有接任何外部设备了,但是模拟I2C通信读出来的数据就是有问题,我程序之修改了管脚,其他什么都没有修改,原理图如下,和PC1的SB17已经断开了

最佳答案

查看完整内容[请看2#楼]

最近调试STM8L的模拟I2C通信,刚开始在STM8L的Discovery上面用PC0和PC1脚作为模拟I2C脚的SDA和SCL脚没有任何问题,程序是自己仿真HMC5893与51单片机通信程序改过来的,可以通讯成功,但是自己打样了块板子回来,换了块板子换了个管脚就不能正常工作了,读出来的数据总是64的倍数,要么是0,要么是64或者128或192。 解决方案: 原先的程序,问题就出现在这条语句,   ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2012-4-11
在线时间
0 小时
 楼主| 发表于 2014-9-19 13:44:11 | 显示全部楼层
最近调试STM8L的模拟I2C通信,刚开始在STM8L的Discovery上面用PC0和PC1脚作为模拟I2C脚的SDA和SCL脚没有任何问题,程序是自己仿真HMC5893与51单片机通信程序改过来的,可以通讯成功,但是自己打样了块板子回来,换了块板子换了个管脚就不能正常工作了,读出来的数据总是64的倍数,要么是0,要么是64或者128或192。


解决方案:


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

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

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

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

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2014-9-19 15:51:44 | 显示全部楼层
有上拉么  。。
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2012-4-11
在线时间
0 小时
 楼主| 发表于 2014-9-19 16:05:26 | 显示全部楼层
回复【2楼】muniao:
---------------------------------
有的,模块上面有上拉的,我就是换了个管脚而已,
回复

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2014-9-19 16:15:36 | 显示全部楼层
那你查看一下关于PC0和PC1的设置是否已经全部改成PA5和PA4了
仿真一下看卡在那
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复

使用道具 举报

9

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2012-4-11
在线时间
0 小时
 楼主| 发表于 2014-9-24 16:35:20 | 显示全部楼层
回复【4楼】muniao:
---------------------------------
我检查过了,都没有问题的。很纳闷
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165001
金钱
165001
注册时间
2010-12-1
在线时间
2102 小时
发表于 2014-9-26 23:21:49 | 显示全部楼层
回复【6楼】943633664:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
821
金钱
821
注册时间
2013-6-5
在线时间
141 小时
发表于 2017-6-20 23:59:43 | 显示全部楼层
对啊,GPIO_ReadInputDataBit 读出来就不是 0,1 而是对应的位
我都是 这样的  dat= (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3)==GPIO_Pin_3)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-25 14:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表