[STM8] 两个STM8S芯片间的I2C

[复制链接]
3836|15
 楼主| hithms 发表于 2013-11-4 20:38 | 显示全部楼层 |阅读模式
试着用官网中的I2C通讯的例程,来实现两块stm8s-discovery间的通讯,但没成功,调试跟踪发现:在主机往从机写数据时,主机发送地址数据后,从机没有应答不知道是什么原因。哪位大侠跑过这几个例程并成功的,能不能分享下经验。先谢谢了!
20131104202308.jpg
硬件是这么连的,应该没什么问题。
20131104203031.jpg
linfeng24 发表于 2013-11-4 22:57 | 显示全部楼层
没用过哦,楼主细心调试分析官方程序,应该可以出来的。因为原理就摆在那里,不难。
 楼主| hithms 发表于 2013-11-5 11:39 | 显示全部楼层
例程中用的芯片是STM8S206MB,我的stm8-discovery板中是STM8S105C6,除了在工程中选择对应的芯片外,还需要改什么地方?
cailantu 发表于 2013-11-5 11:45 | 显示全部楼层
stm8s.h中的宏定义要注意一下
 楼主| hithms 发表于 2013-11-5 15:48 | 显示全部楼层
是不是I2C不适合较长距离的传输?本来打算在两个PCB板件的传输的,距离大概几十厘米。
s_f_tan 发表于 2013-11-5 16:53 | 显示全部楼层
你要抓下线路上的波形是否失真了
拿起书本 发表于 2013-11-5 17:08 | 显示全部楼层
参考一下 I2C通信协议来做,或者网上下载I2C模拟的例程看一下。
puchuang 发表于 2013-11-5 20:36 | 显示全部楼层
测一下波形  看看  是不是设置的问题   波形是否正确
feilusia 发表于 2013-11-5 20:42 | 显示全部楼层
改模拟吧,也很简单。
nienianhong 发表于 2013-12-5 09:42 | 显示全部楼层
yangganglone 发表于 2013-12-5 12:31 | 显示全部楼层
师兄,我现在也在做这个啊,能否一起交流下,我也是发了地址后,从机没ack返回,我扣扣971947289
zeluo 发表于 2013-12-5 12:40 | 显示全部楼层
没有玩过这一快     楼主   帮你顶一个    看看有没有高手可以出手解决一下呢
明月小厨 发表于 2013-12-6 18:08 | 显示全部楼层
我接下来也要处理这个,I2C的主从机通讯;

但会有什么困难?我还没细想.
1)发起始信号;
......检测标志位,并清除;
2)发地址H;
......检测标志位,并清除;
3)发地址L;
......
4)发数据......
.........
发停止位;

I2C比较麻烦的是状态标志位;很丰富,很烦人;SR1,SR2,SR3;
搞不好会死机;(读状态的程序多半都是一根筋的死循环).例测从机的应答.如果从机不应答,主要就死掉了;

如果用中断处理,要从一堆乱麻似的中断标志中理清线索也不容易;一旦错一点点,同上,程序的线程就卡住了;

如果加入错误恢复,好象又显得太婆婆妈妈的;IIC的程序处理起来是比较烦人;
比SPI烦人很多.


明月小厨 发表于 2013-12-6 18:14 | 显示全部楼层
如果用IO端口模拟能行,用IIC模块也应该可以成功;(至少主控一方是这样的);
相关的信号一个接一个发送;全部完成发STOP收工;
要注意的就是应答.可以默认不检测应答;以防死机;
puchuang 发表于 2013-12-6 18:26 | 显示全部楼层
不是很懂行   看看别人的指点吧   楼主
你猜你猜 发表于 2014-12-29 10:04 | 显示全部楼层
楼主能否可以将程序上传?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:淡定

14

主题

179

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部