poppig 发表于 2018-8-10 17:06:24

关于硬件I2C的主从机问题

我使用的是F407做主机,F103C8T6做从机,主机发送给从机没有问题,但是好像从机的发送和接收中断不能同时使能,不然就无法通讯,请问如何让从机反馈数据给主机:L

poppig 发表于 2018-8-10 17:07:03

请问有前辈试过吗:loveliness:

奏奏奏 发表于 2018-8-10 17:11:14

在从机的I2C接收中断回调函数里面写处理函数,比如说要将从主机接收到的数据原样发回给主机,就在从机I2C接收中断回调函数中直接用 发送带IT的那个函数 发

poppig 发表于 2018-8-10 18:09:39

这是直接在从机接收回调函数写发送的结果,但是,万一主机刚开始发的是“读”,不是“写”,那岂不是无法进行正常通讯:dizzy:

poppig 发表于 2018-8-10 18:10:59

奏奏奏 发表于 2018-8-10 17:11
在从机的I2C接收中断回调函数里面写处理函数,比如说要将从主机接收到的数据原样发回给主机,就在从机I2C接 ...

之前有看过您的一个例程:lol

奏奏奏 发表于 2018-8-10 20:38:49

poppig 发表于 2018-8-10 18:09
这是直接在从机接收回调函数写发送的结果,但是,万一主机刚开始发的是“读”,不是“写”,那岂不是无法进 ...

实际上I2C的主从概念只是在于从机要设定从机地址,从机发起往主机写数据的情况是一样的:
主机打开I2C接收中断,在I2C接收中断回调函数中 处理从机发过来的I2C的数据,然后怎么处理是同理的,处理后用带IT的发送函数给从机回复数据

feixiang20 发表于 2018-8-11 00:32:06

那就去找那个例程看看吧。
主机定周期发送数据(也可以是空数据包),同时收取从机数据包。从机有送信要求时给主机一个信号,一般用一个端子电平变化,主机利用外部中断截获这个信号,然后驱动通信。
页: [1]
查看完整版本: 关于硬件I2C的主从机问题