打印
[STM8]

STM8S I2C作从机 怎么让总线一直忙

[复制链接]
4790|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
q119227313|  楼主 | 2012-8-2 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当从机接收完毕主机数据后。。。从机处理数据 等处理完毕后 传送给主机。
从机处理数据这段时间内 我不想让主机来读处理结果。


我想到的方法是让I2C总线一直忙 等我处理结束后再释放总线。


请教 怎样在从机总编程让总线忙 。
沙发
IJK| | 2012-8-2 12:33 | 只看该作者
可以用这个简单的办法:在从机处理数据这段时间内,I2C从机把I2C_SCL拉低。
当I2C总线上有多个从机时,这个方法有一定的问题。

其实,在从机处理数据这段时间内 让主机来读数据也没关系的,因为从机没有ACK主机读数据会失败。

使用特权

评论回复
板凳
q119227313|  楼主 | 2012-8-2 14:10 | 只看该作者
本帖最后由 q119227313 于 2012-8-2 14:11 编辑

2# IJK
我问的就是怎样让scl线保持低电平;我用的是物理I2C 在控制寄存器中没看见控制SCL线的位

使用特权

评论回复
地板
IJK| | 2012-8-2 14:29 | 只看该作者
可以设置为普通GPIO,然后输出低电平即可。

使用特权

评论回复
5
q119227313|  楼主 | 2012-8-2 19:55 | 只看该作者
4# IJK 我用的是物理I2C 怎么改变为普通I/O

使用特权

评论回复
6
IJK| | 2012-8-3 09:43 | 只看该作者
4# IJK 我用的是物理I2C 怎么改变为普通I/O
q119227313 发表于 2012-8-2 19:55


复位后,不对I2C进行初始化,就是作为普通I/O用了。
在对I2C进行初始化并使用后,对I2C模块进行复位,并切断I2C模块的时钟后,应该又可以作为普通I/O用。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
q119227313 + 1 谢谢您的热心回复 。
7
normanwang| | 2012-8-3 10:33 | 只看该作者
LZ好像是做楼宇对讲吗,

使用特权

评论回复
8
yang521sq| | 2013-6-11 22:33 | 只看该作者
63

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

0

粉丝