This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我正在尝试实现一个 SSI 从机、在该从机中、我读取1个字节的命令并在接收到下一条命令时返回结果。
我所面临的问题是、在第一次传输后、即使我将新数据放入 TX 缓冲区、我也会收到零。
此外、当我轮询 GetDataNonBlocking 时、即使在逻辑分析仪上看到主器件发送数据、它也会显示 RX 缓冲区为空。
为了检查操作、我在 TX 缓冲区中放置2个字节、并在其间的某个时间发送2条命令。
下面是我的配置:
我尝试使用进行读取
SPIDataGet 和非阻塞版本
while (!SSIDataGetNonBlocking (SSI0_BASE、&ret_val)){}
在第一个接收之后、标志的状态为:
从图中可以看出、传输 FIFO 中仍然有数据、但由于 SSI 卡在某种程度上、数据永远不会发送。
如果我在第一次传输后重新配置 SPI、我会在传输时看到两个值、因此我不知道问题为什么会被模块卡住。
是否有人知道模块为什么会卡住?
谢谢阅读。
你好,金枪鱼
您显示的 API 仅用于接收、您能否共享正在为传输执行的操作? 没有这一点、我很难理解整个图片。
另外还有几个问题:
此设置是在两个 TM4C 器件之间还是在另一个主机器件与 TM4C 之间?
您的 SPI 时钟设置是非常规的、选择1MHz 时钟值的原因是什么?
您好 Ralph、
感谢您的回复。
Raspberry Pi Model 3B+和 Tiva 芯片之间进行通信。
圆周率日的 SPIDev 库是非常规价值的原因。
我刚意识到,在金融监督院的联系上出现了问题,造成了这一问题。
我猜芯片仍然在发送数据并等待传输完成。
现在、我得到预期的行为。
此致、
金枪鱼比希姆