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.

[参考译文] CCS/TM4C1294NCPDT:TM4C1294NCPDT

Guru**** 2618835 points

Other Parts Discussed in Thread: TM4C1294NCPDT, EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/855083/ccs-tm4c1294ncpdt-tm4c1294ncpdt

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件: EK-TM4C1294XL

工具/软件:Code Composer Studio

您好、  

我正在尝试执行 TM4C1294NCPDT SPI 代码的示例代码。 但在执行时会显示 DMA 错误。  

如果您可以帮助解决这个问题、这将非常有帮助。

我正在使用 Resource Explorer 中的"spilopopback _ek_TM4C1294XL_TI"示例项目

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

    您好 Srinivasan、

    您是否使用 EK_TM4C1294XL Launchpad? 您是否对 Out of the Box spilopopback 示例进行了任何更改? 您使用的是用于 TivaC 的 TI-RTOS 的哪个版本?

    Todd

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

    你好、Todd、  

    感谢您的回复。 我没有更改 spilopback 代码中的任何内容。  

    TI-RTOS 版本: 2.16.00.08

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

    Srinivasan、

    上面显示的输出与 spiloopback 示例不匹配。  前两行确实会截断第三行的开头,后三行与任何 TI-RTOS 示例的输出都不匹配。

    您是否构建并运行了未修改的 spilopopback 示例?  如果这不起作用,您会得到什么输出?  

    此外,您是否检查过 spilopopback 示例所需的四根导线是否按照 TI-RTOS 2.16 for TivaC Getting Started Guide 中的"Tiva EK-TM4C1294XL Settings and Resources"所述进行连接?

    谢谢、
    Scott

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

    嘿、Scott、  

    感谢您的回复。

    当我运行未修改的代码时、它的工作方式。  

    实际上、我只有一个变化。 我将数据从 unsingle-char 数组更改为 unsigned long。 如果我更改为无符号长整型、则会显示错误  

    错误:

    谢谢、此致、  

    Srinivasan

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

    Srinivasan、

    通过将 masterTxBuffer 从数组更改为无符号长整型,您基本上定义了一个指针,并且“0xEE0000”不是有效的存储器地址。  

    在 masterTaskFxn()中,0xEE0000的地址被放置在 SPI_Transaction 结构中并传递给 SPI_TRANSF():

       /*初始化主 SPI 事务结构*/
       masterTransaction.count = SPI_MSG_length;
       masterTransaction.txBuf =(ptr) masterTxBuffer
       masterTransaction.rxBuf =(ptr) masterRxBuffer;

       /*启动 SPI 传输*/
       transferOK = SPI_transfer (masterSpi、&masterTransaction);

    结果是由于错误的缓冲区地址而导致的 DMA 错误。

    此致、
    Scott

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

    嘿、Scott、  

    感谢您的回复。 我理解了将数据类型从数组更改为无符号长整型的事实、但"0xEE0000"不是地址。 它是我希望通过 SPI 发送到另一个器件的数据。  

    如果更改数据类型是问题,如何解决?

    此致、

    Srinivasan。

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

    masterTxBuffer 是要传输的字符数组(缓冲区)。  此缓冲区地址在 SPI_Transaction 结构中指定,该结构传递给 SPI_TRANSFER (),如上面的片段所示。  如果要更改发送此示例的字符、应将字符数组的内容更改为要发送的字节序列。  您还应‘m要发送的字符数的传输计数,换言之,在 SPI_Transaction 结构中设置正确的 asterTransaction.count’。

    此致、
    Scott