器件型号:MSP432P401R
您好社区。
我有两个"MSP432P401R SimpleLink微控制器 LaunchPad
开发套件(MSP‑EXP432P401R)板。 它们通过三线制 SPI 进行通信。
一个是从器件-一个是主器件。 两者都使用外设散聚 DMA 传输。 如果从机先启动而不是主机,则从机主板中接收到的数据不正常。 如果主机先启动、从机第二次接收数据正常。 在这种情况下,我假设,如果从机首先启动并进入侦听:主机稍后启动,主板期间的一些回收位开始进入“接收移位寄存器”,然后所有后续位都被重新配置为与此 Paar 回收位有关。 这种情况下、我需要在 从板上"修复"并重新启动 SPI 部件。 这种情况下工作正常,在“重新启动”SPI 部件后,来自主设备的下一个数据正确无误。
对于从板 首先启动、主板其次启动的情况(坏情况): 我有一些问题。 在我的从机监听主机期间,他需要中断来知道主机是否将数据发送给他,以便分析这个数据。
如果我在从代码中有一些制动点:它工作正常。 DMA 中断通信正常。 从机获取 中断并在接收到的数据中查找。 但是、如果从器件代码中没有制动点-没有 DMA 中断或间歇性的。
另一方面,如果主板首先启动,从板启动(良好情况)第二次启动 DMA 中断,则一切正常:在“正确的位置”建议常规。
有人能解释一下:为什么 SPI 从板在"正确位置"的代码中获得带有制动点的中断、而不是没有制动点(坏情况)? 我如何 才能做到、在"坏情况"下、规范中的 DMA 中断在代码中没有唤醒点的情况下进行通信?
提前感谢。
Alex