[STM8] 两个MCU IIC通信

[复制链接]
4471|24
 楼主| 爱好学习者 发表于 2015-9-14 16:14 | 显示全部楼层 |阅读模式
本帖最后由 爱好学习者 于 2015-9-15 17:28 编辑

  最近在调试MCU的双向通信,搞了几天,发现IIC的通信真的很头痛。经过几天的调试,终于将IIC的硬件通信与模拟通信搞定。将程序贴上来,以供有需要的人参考。ps:主机本别利用硬件和软件模拟,从机部分为硬件中断接收。亲测可信。

IIC_Hardware.rar

69.57 KB, 下载次数: 177

IIC_Software.rar

83.27 KB, 下载次数: 147

xia00 发表于 2015-9-14 17:54 来自手机 | 显示全部楼层
不知道楼主用的什么片子
bbapple 发表于 2015-9-14 17:57 来自手机 | 显示全部楼层
说好的程序呢?我用的是手机登的,怎么没看到啊
mmuuss586 发表于 2015-9-14 21:21 | 显示全部楼层

没上传吧;
liuhaihong 发表于 2015-9-14 22:38 | 显示全部楼层
是没看到
xuander 发表于 2015-9-14 23:14 | 显示全部楼层
本帖最后由 xuander 于 2015-9-14 23:15 编辑

两CPU,估计没几个人会选IIC通信。
速度慢,协议复杂。不如SPI或者其他方式。



songchenping 发表于 2015-9-15 07:33 | 显示全部楼层
附件呢
chenyu988 发表于 2015-9-15 09:31 | 显示全部楼层
一般都串口吧,有些芯片还没有硬件不支持从机,很蛋疼的
 楼主| 爱好学习者 发表于 2015-9-15 17:25 | 显示全部楼层
写这个主要是为了说明IIC的主机和从机通信,并不是为了让两个MCU进行IIC通信。
霜林尽染 发表于 2015-9-15 18:21 | 显示全部楼层
楼主方便留个QQ吗,正好在做双机通信,主写从读,现在只能第一次通信成功,再通信就会卡在地址发送
 楼主| 爱好学习者 发表于 2015-9-16 11:30 | 显示全部楼层
霜林尽染 发表于 2015-9-15 18:21
楼主方便留个QQ吗,正好在做双机通信,主写从读,现在只能第一次通信成功,再通信就会卡在地址发送 ...

你说的问题我也是调试了两天才找到问题,你看我的附件吧,我发的附件中的程序这个问题已经解决
lwsn 发表于 2015-9-17 22:12 | 显示全部楼层
可以多从机通信吗
 楼主| 爱好学习者 发表于 2015-9-18 10:18 | 显示全部楼层
lwsn 发表于 2015-9-17 22:12
可以多从机通信吗

具体没有测试过,应该是可以的。如果想要主机发送的数据,从机都可以接收到,只要设置成广播就可以。如果想要某一个可以,直接发送想要从机的地址,从机采用中断接收数据,如果收到的地址不正确,是不会继续接收数据的。
qgmfly 发表于 2015-9-18 15:43 | 显示全部楼层
正好需要这个,所以谢谢分享
qgmfly 发表于 2015-11-7 14:42 | 显示全部楼层
楼主硬件通信的主机 main中开了两次IIC发送,一次发送,一次接收?在从机里没看到相应的发送呀》?能详细说一下没
main()
{
        unsigned char te;
        Init_Led();
        Init_IIC();
        delayms(1000);
        while (1)
        {
               
                IIC_Start();
                IIC_SendAddress(addr);
                IIC_SendByte(data);
                IIC_End();
               
                IIC_Start();
                IIC_SendAddress(addr|0x01);
                te = IIC_RecvByte();
                IIC_End();
               
                if(te == data)
               
                {
                        PD_ODR = 0X20;
                }
        }
}
霜林尽染 发表于 2015-11-25 23:17 | 显示全部楼层
楼主  IIC_SendAddress(addr|0x01);  地址发送为什么要或一个0x01
foxglove 发表于 2015-11-26 08:34 | 显示全部楼层
IIC通信
nmjkh123 发表于 2017-8-16 14:48 来自手机 | 显示全部楼层
楼主,代码能发我下吗?我最近在搞这个。小白。
usstwk 发表于 2017-9-2 10:49 | 显示全部楼层
hanlie2345678 发表于 2017-9-2 11:30 | 显示全部楼层
不知道楼主用的什么片子呀  我这边有好多哦!  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

73

帖子

0

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