打印
[STM8]

香主,I2C从发射模式是不是至少要发两个数据

[复制链接]
1949|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

香主在吗,我用的是stm8103,想使用I2C从机发射模式,如上图,NOTE:从手册上我是不是可以这样理解一开始是不是必须往DR寄存器里面写两次才能清除TXE这个标志位。I2C初始化之后移位寄存器和数据寄存器都是空的吧,事件EV3-1是移位寄存器和数据寄存器都空,所以必须往DR寄存器里面写个数据,写完之后移位寄存器不空但数据寄存器还是空的,紧接着事件EV3发生,发生之后我又必须往DR寄存器里面写一次数据才能清除TXE这个中断标志位,这样的话从机发射模式是不是至少要发两个数据。不知道我这样理解有没有错误,求赐教!!!
沙发
sinadz| | 2012-11-17 07:58 | 只看该作者
香主似乎好久都没出现了?

使用特权

评论回复
板凳
oyljxilige|  楼主 | 2012-11-17 09:23 | 只看该作者
自己顶一下,大家路过的发表一下自己的看法啊

使用特权

评论回复
地板
明月小厨| | 2012-12-1 23:30 | 只看该作者
本帖最后由 明月小厨 于 2012-12-1 23:31 编辑

你理解的有问题;这个图是描述总线上的数据;
不知道你问的上面的一串还是下面的一串;但你问写DR的情况;
答:写一次就可以自动清TxE位了;然后移位寄存器就开始工作了(发数据到总线);
如果没有数据要发送,就写停止位,结束本次通讯;

使用特权

评论回复
5
明月小厨| | 2012-12-1 23:33 | 只看该作者
本帖最后由 明月小厨 于 2012-12-1 23:39 编辑

我感觉让I2C在发送数据的时候设为主控方,方便些(个人习惯);
这样I2C部分只需要熟悉二个部分,主控发送和从方接收;(有可能需要二次通讯才能完成)
不过象这样的模式,4个部分都熟悉到了;也很不错的.精通!(信息传输一口气完成)

使用特权

评论回复
6
明月小厨| | 2012-12-1 23:55 | 只看该作者
本帖最后由 明月小厨 于 2012-12-1 23:57 编辑

从方发送数据:
写DR后,如果内部移位寄存器状态是空,则DR的数据进入移位寄存器并发送到SDA;
如果写DR后,内部移位寄存器状态非空(上一次数据仍在发送),则DR的数据去哪里?
移位寄存器为空后自动取这个DR的数据;有这么乖吗?这样的话DR不仅是数据寄存器,还可以当缓存的角色.(注:ARM里的通讯口比这还要聪明,一次性可以缓存16个数据,源源不断的往外自动发送)
先进先出的反堆栈模式.

使用特权

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

本版积分规则

0

主题

19

帖子

1

粉丝