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.

[参考译文] TMS320F280040:在中断模式下以 SPI 通信发送多个字节

Guru**** 2562120 points
Other Parts Discussed in Thread: RM57L843

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/975512/tms320f280040-sending-multiple-bytes-in-spi-communication-in-interrupt-mode

器件型号:TMS320F280040

大家好、

我想在两个 TI 控制器之间使用 SPI 通信、一个是 TMS320F280040 (SPI 从控制器)、另一个是 RM57l843 (SPI 主控制器)。

我已根据 TMS320F28004x 的演示示示示示示例代码配置 SPI、但代码处于无中断回送模式。

我添加了一些更改、用于配置 SPI 通信中的中断。

如果我使用单整数数据、那么我将正确接收单个交错、现在我想从 SPI 主器件以结构格式发送3个整数值(12字节数据)。

如我所见、在  auiRxData_g[i]=SpiaRegs.SPIRXBUF 中;   //读取数据

SpiaRegs.SPIRXBUF 的类型为 uint16。

如何在此处接收结构格式的3个整数值(12字节数据)数据?

在 SPI 寄存器配置中是否有任何更改?

请帮助我解决此问题。

谢谢

Pratik

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

    Pratik、

    我不清楚您的结构格式是什么意思。 您的 SPI 字符长度是多少? (8位(或) 16位)?

    如果您计划使用16位字符长度(SPICCR.SPICHAR = F)、则可以设置 RXFFIL = 6、并在接收6、16位字后获取 RXFIFO 中断

    16 (16位字) x 6 = 96位(12 x 8位= 96)

    如果您计划使用8位字符长度(SPICCR.SPICHAR = 7)、则可以设置 RXFFIL = 12并在接收12、8个字节后获取 RXFIFO 中断

    8 (8位) x 12 = 96位。

    此致、

    曼诺伊

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

    感谢 Manoj 的回复。

    我将 SPI 字符长度用作16位。

    是的、我明白了、在 RXFEIL 位和 RXFIFO 中断产生过程中我有一点困惑。

    这是我从主 SPI 发送的结构

    struct measData //在主 MCU 中定义的结构

    uint16_t data1;

    uint16_t data2;

    uint16_t data3;

    };

    因此、在本例中、我将保持 RXFEIL = 3、以便在接收3、16位数据后获得中断。

    在中断 ISR 中、我可以获取这三个参数、如所示

    Data1 = SpiaRegs.SPIRXBUF;

    Data2 = SpiaRegs.SPIRXBUF;

    Data3 = SpiaRegs.SPIRXBUF;

    我对吗?

    谢谢。

    Pratik

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

    Pratik、

    如果只想在6之后接收 FIFO 中断、则接收到16位。 然后、您可以设置 RXFFIL = 6。 您无需设置 RXFFIL = 3。

    您可以让 SPI 主设备在接收 FIFO 中断时发送3个16位字、然后再读取接收 FIFO。

    此致、

    曼诺伊