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.

[参考译文] MSP432P401R:UART数据损坏

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/579537/msp432p401r-uart-data-corruption

部件号:MSP432P401R

您好,

我的设置包括MSP432 Launchpad和光学传感器。 我基本上是通过I2C从传感器的数据寄存器读取数据。 读取这些寄存器后,我想将这些数据发送到计算机,并将其显示在名为“通过UART处理”的IDE中。 我遇到的问题是“Processing (处理)”上显示的数据已损坏。 处理只能在某些时候显示正确的值。 但在大多数情况下,数据会以随机正数和负数的形式跳转。 有时,它仅显示 为-8224 (如下图所示)。

我使用了Saleae来查看从数据寄存器读取并通过UART发送的十六进制值,并验证它们是否与CCS上的寄存器读取的值相同。  

1) I2C数据寄存器读取

2) UART TX

3) CCS调试

4)处理

导致此问题的原因是什么? 感谢您的任何帮助! 我还将我的C和处理代码附加到此帖子中。

e2e.ti.com/.../codeCCS.c

e2e.ti.com/.../codeProcessing.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用哪种转换器将UART数据转换为USB? 您是否尝试过任何其他终端仿真器(如PuTTY),只打印数据? 尝试一次。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    InBuffer是一个字节。当您将一个字节移动8时会发生什么情况? 尝试在换档前将其转换为int。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另一件事,0x0a是否可以是一个数据字节? 您将如何辨别这种差异? 我建议将值作为文本发送-您可以发送整个32位数字-并在处理过程中对其进行解析。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    处理时出现问题。 其中一个数据包包含正在放弃读取的0x0a。 已将其更改为0x00以标记新数据包,现在它可以正常工作。 感谢大家的建议!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将其标记为已回答:)