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/EK-TM4C129EXL:SPI 数据发送格式

Guru**** 2484615 points
Other Parts Discussed in Thread: EK-TM4C129EXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/730220/ccs-ek-tm4c129exl-spi-data-sending-format

器件型号:EK-TM4C129EXL

工具/软件:Code Composer Studio

您好!

   我正在使用 EK-TM4C129EXL 评估套件。 评估套件需要从外部用户应用接收数据并将其发送到显示系统。 它从现在开始接收数据、  

例如、如果接收到的数据为0x7f、我将把这个数据存储在 SPI 数据缓冲区中、并将这个数据发送到外部器件。  

通过 SPI 发送数据(即数据0x7f - 0111 1111)时、以小端字节序格式存储的数据、但我需要以大端字节序格式存储数据。 我是否需要设置 SSI 寄存器中的任何寄存器位、以便数据可以大端字节序格式存储。 (即、我需要将0x7f 存储或发送到外部器件、地址为1111 1110 (即反向顺序为0111 1111))

  

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

    我要回复的此主题中也有相同的查询、您能否加入该主题? e2e.ti.com/.../730196
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常、当我们讨论小端字节序与大端字节序时、我们讨论的是字节序、但我相信您的问题是位顺序。 如果我正确理解您的请求、您将以一种格式(即数据0x7f - 0111 1111)在 SSI 上接收数据、并需要以相反的顺序(即0xFE - 1111 1110)将其发送出去。 SSI 中没有用于改变位顺序的硬件功能。 这需要在软件中完成。 翻转字节位顺序的快速方法是使用存储在闪存中的256字节的查找表。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是一个用于反转字节位顺序的表和函数示例:

    const unsigned char reverseBitTable[256]=
    {
    0x00、0x80、0x40、0xc0、0x20、 0xA0、0x60、0xe0、
    0x10、0x90、0x50、0xd0、0x30、 0x70、0xf0、0xb0、
    0x08、0x88、0x48、0xc8、0x28、 0xa8、0x68、0xe8、
    0x18、0x98、0x58、0xd8、0x38、 0x78、0xf8、0xb8、
    0x04、0x84、0x44、0xc4、0x24、 0xa4、0x64、0xe4、
    0x14、0x94、0x54、0xd4、0x34、 0x74、0xf4、0xb4、
    0x0C、0x8c、0x4c、0xcc、0x2C、 0xac、0x6c、0xec、
    0x1c、0x9C、0x5c、0xdc、0x3c、 0x7c、0x7c、0xFC、
    0x02、0x82、0x42、0xC2、0x22、 0xa2、0x62、0xe2、
    0x12、0x92、0x52、0xd2、0x32、 0xb2、0x72、0xf2、
    0x0A、0x8a、0x4a、0xca、0x2a、 0xAA、0x6A、0xEA、
    0x1a、0x9a、0x5a、0xda、0x3a、 0xba、0x7a、0xfa、
    0x06、0x86、0x46、0xc6、0x26、 0xa6、0x66、0xe6、
    0x16、0x96、0x56、0xd6、0x36、 0x76、0xf6、0xb6、
    0x0E、0x8e、0x4e、0xce、0x2e、 0xae、0x6e、0xee、
    0x1E、0x9e、0x5e、0xDE、0x3E、 0xBE、0x7E、0xFE、
    0x01、0x81、0x41、0xc1、0x21、 0xa1、0x61、0xe1、
    0x11、0x91、0x51、0xD1、0x31、 0x71 0xF1、0xF1、
    0x09、0x89、0x49、0xc9、0x29、 0xa9、0x69、0xe9、
    0x19、0x99、0x59、0xd9、0x39、 0xb9、0x79、0xf9、
    0x05、0x85、0x45、0xc5、0x25、 0xA5、0x65、0xe5、
    0x15、0x95、0x55、0xd5、0x35、 0x5、0x75、0xf5、
    0x0D、0x8d、0x4d、0xcd、0x2D、 0xAD、0x6d、0xED、
    0x1d、0x9d、0x5d、0xdd、0x3D、 0xBD、0x7d、0xFD、
    0x03、0x83、0x43、0xc3、0x23、 0xa3、0x63、0xe3、
    0x13、0x93、0x53、0xd3、0x33、 0xb3、0x73、0xf3、
    0x0B、0x8b、0x4b、0xcb、0x2b、 0xab、0x6b、0xeb、
    0x1b、0x9b、0x5b、0xdb、0x3b、 0xbb、0x7B、0xfb、
    0x07、0x87、0x47、0xc7、0x27、 0xa7、0x67、0xe7、
    0x17、0x97、0x57、0xd7、0x37、 0x77、0xf7、0xb7、
    0x0F、0x8F、0x4f、0xCF、0x2F、 0xaf、0x6f、0xef、
    0x1f、0x9f、0x5f、0xdf、0x3f、 bbf、0x7f、0xff
    };
    
    无符号 char reverseBitOrder (无符号 char in)
    {
    return reverseBitTable[in];
    }
    
    int
    main (void)
    {
    return reverseBitOrder (0x0F);
    }
    

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

    谢谢、但我已经整合了一个宏来执行相同的功能