liyuanxh 发表于 2017-4-19 14:00:53

STM8L spi通信的单线双向通信

如题,SPI通信中,在手册和库中都有描述,但是在具体使用中,该如何处理收和发呢?貌似这就是传说中的三线SPI,有人能指点下么,谢谢

す疯Ⅱ恒す 发表于 2018-6-7 09:17:13

数据手册上说了,BDOE位选择方向,1输出,0输入。至于数据什么时候切换输入输入,这个需要你主机从机定一个协议通知对方切换收发。

馒头弟 发表于 2018-6-7 09:23:35

SPI没有国际委员会规定的标准,所以有很多变种,三、四、五各种线都有。
像DS1302,是SPI的时序,就三条线,一些SPI的OLED(单工),也就三条线。
一些多受控芯片有五条线的,加了DCx传输受控指令。
标准三线一般合并MISO和MOSI作为DATA线(有的省略CS,不是标准三线)
三四线有啥不一样,,,最明显的一个半双工一个全双工
还是注重时序吧~~

50031185 发表于 2018-6-7 09:28:43

手册讲的很清楚   要2根线 ,时钟线固定, 数据线 要通过寄存器来配置为 接收或者发送模式,
当SPI_CR2 的BDOE 位 为1 时为为输出模式,为0时 为输入模式, 时钟线始终是时钟线 不能动

wenyangzeng 发表于 2018-6-7 09:54:07

本帖最后由 wenyangzeng 于 2018-6-7 09:55 编辑

单线无法进行SPI双向通讯。SPI单向通讯也至少需要一条时钟线和一条数据线。

jcx0324 发表于 2018-6-7 11:14:48

如果是三线spi就是全双工了,收发都可以同步, 注意主从设置即可

lilei900512 发表于 2018-6-7 13:08:04

这个你先要了解你的外围设备,如果DATA是两条线,那你回读就只要有CLK的时钟就可以,数据可以送一些无关的数据。

forget121 发表于 2018-6-7 16:20:55

上面说得很清楚啊,
如果要做双向,由SPI_CR2寄存器的BDOE位来控制输入输出,来达到双向通信的效果。

feixiang20 发表于 2018-6-8 01:14:12

可以参考以下资料
【KL系列SPI主从通信之单线双向通信】
【STM8S103 SPI 单线双向数据模式】
【STM8 SPI单线半双工调试笔记】
【STM8 单线半双工通信 STM8应用笔记】
页: [1]
查看完整版本: STM8L spi通信的单线双向通信