为什么视频教程里的SPI 程序只有一个呢? 不是应该要有两个?一个发送程序,一个接收程序。
有没有发送和接收分开的SPI 传输数据程序可以参考下啊?
求助求助
spi的发送和接收不能分开的,spi协议规定,时钟永远来源于主机,从机在发送数据时是接收主机的时钟。而SPI只有在主机发送数据时才能产生时钟,所以通常如果你想接收数据,必须先发送数据,此时从机会将数据返回给主机,存入SPI的FIFO寄存器,然后可以读取该寄存器获取数据,如果单单是操作读取FIFO寄存器,是不可能获得从机返回的数据的。这也是为什么SPI的时序会慢一个字节,原因就在于接收数据和读取数据不是同时完成的。
需要一个SPI主机的发送和接收代码,需要一个SPI从机的发送和接收代码。
如果你真的想把SPI发送和接收分开,也可以将发送单独提出,但接收数据前必须要发送数据让SPI产生时钟。也有可能接收时会丢掉时钟。
谢谢ANDY耐心回答,如果我通过SPI串口,主机和从机都需要有SPI的发送接收代码,那主机和从机寄程序不是基本一样?
如果通过UART串口的的话,是否可以把发送和接收分开(主机专门发送,从机专门接收)?
代码差不多,主要区别是配置SPI的控制寄存器,一个是主,一个是从,其实发送和接收在一起使用起来会很方便,在发送完成后,可以判断是否有新的数据需要接收,在接收时,不用考虑产生时钟。
如果是UART,发送和接收是分开的,而且不存在主从问题,只要波特率一致即可。会比SPI方便。
有没有UART,发送和接收分开的程序能发给我学习下呢?
如果想用两块ADSP-BF533 EZ-KIT Lite 分别接两个RF模块,做无线通信,有什么好的方案吗,用什么RF模块合适,用BF533的什么管脚连接RF模块?求指导
感谢!
你到www.openadsp.com下载专区中下UART接口的例子程序,有个汇编的,还有个C的,你看那个C的。
RF多采用UART接口,有很多成品模块卖