我的项目尝试使用 SPI1、但它一直在使用

但它适用于 SPI3/SPI5。 我已经被卡住了3天,没有找到原因。
我使用了一个空白项目并设置了代码、然后它可以与 SPI1配合使用。 但是我比较了这个项目和空白项目,我没有发现什么不同。
您能帮我弄清楚吗? 谢谢
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.
我的项目尝试使用 SPI1、但它一直在使用

但它适用于 SPI3/SPI5。 我已经被卡住了3天,没有找到原因。
我使用了一个空白项目并设置了代码、然后它可以与 SPI1配合使用。 但是我比较了这个项目和空白项目,我没有发现什么不同。
您能帮我弄清楚吗? 谢谢
尊敬的 Hongbo:
而当我把上面是检查大师我想,所以即使我没有设置 SOMI(但设置 SIMO ),它不应该卡在它上,对吗?

在上面突出显示的行、我们轮询以下位:

仅当接收到新数据时、此位才设置为高电平、如果 SPI 不会向移位寄存器接收到任何新数据、则此位不会设置为高电平、处理器将始终卡在该位。 所以,如果你不把 SOMI[0]配置为输入,那么就不可能直接接收数据呢? 这就是代码始终卡在这一行的原因。
在这里你可以做两件事情,要么只启用 SOMI[0]功能,如果你不想处理数据,则忽略接收到的数据。
或其他
只需在 main.c 中创建另一个 SPI 发送函数、就可以忽略此位的处理(RXINTFLG)、 如果此位为空、则不会轮询 TXINTFLG 位并向数据寄存器写入。

--
谢谢。此致、
Jagadish。
尊敬的 Hongbo:
我发现您的屏幕截图是并行模式,该模式使用两条或更多数据线,并且仅在 MIBSPI5中受支持。
实际上、这是一个拼写错误。
MibSPI1还将支持并行模式、最多2条数据线路。 而 MibSPI5最多支持4条数据线路的并行模式。
*在基于 Hercules 的微控制器上使用 MibSPIP 模块的高速串行总线(TI.com)

您可以通过上面的应用手册进行确认。

如果它不支持2位并行模式、那么就没有必要提供两条 SIMO 和两条 SOMI 线。
[报价 userid="196421" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1263383/tms570lc4357-stuck-on-working-with-spi1/4786346 #4786346"]为什么它影响了 SPI1? 我只使用了一条 SIMO 线路。[/引号]如果要使用单个 SIMO 线路,则该线路应为 SIMO[0]而非 SIMO[1]。
--
谢谢。此致、
Jagadish。
尊敬的 Hongbo:
噢,我认为 SIMO[x]中的任何一个都适用于 SIMO,所以它只是 SIMO[0]。
否、SIMO[0]或 SIMO[1]皆不可能。
如果要使用1位线路模式、我们只能使用 SIMO[0];如果要使用2位并行模式、我们可以使用 SIMO[0]和 SIMO[1]。
--
谢谢。此致、
Jagadish。