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.

[参考译文] TMS570LS0432:在运行时更改 SPI 从器件的数据格式

Guru**** 2267350 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS0432
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/596300/tms570ls0432-changing-the-data-format-of-a-spi-slave-in-run-time

器件型号:TMS570LS0432
主题中讨论的其他器件:HALCOGEN

您好!

我将 TMS570LS0432 SPI2端口用作 SPI 从器件。 我想在运行时更改 SPI 接收器的数据帧格式。  我正在使用 spiReceiveData (spiBASE-t * SPI、spiDAT1_t * dataconfi_t、uint32 blocksize、uint16 * destbuff)函数接收数据。  我在 HALCoGen 中设置了两种数据格式、并在代码中进行了定义、如下所示

dataconfig1_t.CS_hold = false;
dataconfig1_t.WDEL = false;
dataconfig1_t.DFSEL = SPI_FMT_1;
dataconfig1_t.CSNR = SPI_CS_0;

dataconfig2_t.CS_hold = false;
dataconfig2_t.WDEL = false;
dataconfig2_t.DFSEL = SPI_FMT_0;
dataconfig2_t.CSNR = SPI_CS_0;

格式的唯一区别是字符长度。  SPI_FMT_0 的 Char 长度为16位、  SPI_FMT_1的 Char 长度 为8位。  默认情况下、我使用 dataconfig2_t、它工作正常(即16位)。  如果我更改字符长度并尝试接收数据、我不会获取所有数据。 我错过了最后2个字节。 (即,如果我必须接收,我只接收8个字节)。

SPI 接收器是否可以在运行时更改数据格式?

谢谢、此致、

Sreekanth Challa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sreenekanth、您好!

    简而言之,答案是肯定的。 当您传入参数 spiDAT1_t * dataconconfig_t 时,这是写入 SPIDAT1寄存器的值。 格式将是您为参数定义的任何内容。 即、在一个实例中、您将传入数据卡1、在另一个数据卡2。 结构中定义的任何格式都将是为该特定传输事件加载的格式。