关于两块STM32之间的SPI通信,应答机制缺失

2019-07-20 06:29发布

最近在弄SPI,原子给出的SPI例程是驱动W25Q256实现SPI FLASH数据读写,F4作为主机,W25Q256作为从机,在主机片选从机发送命令,完成读写操作,这里面W25Q256是完全处于接收响应的状态,所以能保证数据的完整性。
但是现在有个问题,SPI没有应答机制,如果SPI放在两个STM32芯片上面,F4作为主机,F1作为从机,主机接收从机发来的数据,这里面会不会发生数据丢失的问题,也就是说,假如F4发送读取命令时,F1被片选却正好进入某个中断,那此时F4的操作命令不就丢失了嘛。
有人做过两块芯片的SPI通信吗,求大神解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
fang百川
1楼-- · 2019-07-21 05:54
 精彩回答 2  元偷偷看……
fang百川
2楼-- · 2019-07-21 08:05
edmund1234 发表于 2018-8-20 16:36
SPI只是搬运工, 砖头是红还是绿, 是你自己做主的

明白,只不过我这个收发一直显示是0
,数据不知道去哪了
fang百川
3楼-- · 2019-07-21 13:26
ufbycd 发表于 2018-8-21 18:06
也可以参考串口的硬件流控功能,从机添加一个IO口作忙或闲指示,主机在从机闲时才发、忙时不发。
另外从机 ...

好的,谢谢
civic7366
4楼-- · 2019-07-21 14:03
 精彩回答 2  元偷偷看……
fang百川
5楼-- · 2019-07-21 15:44
civic7366 发表于 2018-8-23 15:03
假如F4发送读取命令时,F1被片选却正好进入某个中断,那此时F4的操作命令不就丢失了嘛。

[/ ...

对....所以现在的问题还是,我的F4发数据过去了,F1收到的一直是0,而且我怎么才能知道数据有没有发过去,或者说,F1收到的0只是随机出现的,和F4没有关系,两者之间根本还没有通信

我的F1和F4是在同一片PCB板子上面,SPI引脚已经接好了
civic7366
6楼-- · 2019-07-21 20:04
fang百川 发表于 2018-8-23 17:10
对....所以现在的问题还是,我的F4发数据过去了,F1收到的一直是0,而且我怎么才能知道数据有没有发过去 ...

打開F1的RX中斷 然後把斷點放中斷裡面

如果進不去表示你初始化還有問題吧

你收到的0 可能只是它本來的暫存裡面的

一周热门 更多>