STM32
直播中

李欢

7年用户 1042经验值
私信 关注
[问答]

SPI一根时钟线一根单向数据线可以实现读写从机数据吗?

我们已知的可以把SPI 和 USART 连接实现全双工通信, SPI在单工模式里面有介绍一根时钟线和一根单向数据线/一根时钟线和一根双线数据线两种模式,不知道大家注意到了没有:I2C也是 一根时钟线和一根双向数据线,在基本结构上是一样的,I2C可以实现半双工通信,SPI是否也能只使用两跟线实现半双工通信呢?我的思路如下:  置两个MCU分别主机和从机,都设置为一根时钟线一根双向数据线模式,设定一个特殊字符序列作为主机的读命令(假设为 0xAA,0X55),当主机写数据到从机的时候设置主机 BIDIOE为1,从机BIDIOE为0,当主机要读取从机数据的时候先发 0XAA 0X55 ,从机收到这个特殊序列后设置从机的BIDIOE为1(数据输出模式),主机发完特殊序列后也设置主机BIDIOE为0(数据输入模式),主机向SPI->DR写数据,产生SPI SCK脉冲,然后预设从机发送数据长度,当发送长度到了从机又设置BIDIOE为0,主机也设置BIDIOE为1。

回帖(1)

吴江

2024-5-6 15:39:24
SPI本来就可以用一根数据线实现半双工
举报

更多回帖

发帖
×
20
完善资料,
赚取积分