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/MSP430FR5994:从 UART 流中删除字符

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/700645/ccs-msp430fr5994-remove-a-character-from-uart-stream

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

您好!

我已将 MSP430FR5994-LP 连接到可通过 UART 发送数据的传感器。 如其数据表中所述,“输出是 ASCII 大写的“R”,后跟四个 ASCII 字符数字,以毫米为单位表示范围,后跟回车符(ASCII 13)。” 我已经对其进行了测试、当我采集数据时、我会收到一个"R"。 如何从其中删除字母"R"? 我能否使用剩余信息对其进行一些平均值计算?

此致、

Prudhvi Sagar

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

    您通过 UART 从传感器接收到的数据将存储在 UART RX 缓冲区中、您需要将数据从 RX 缓冲区移动到要存储的位置。 之后、您可以删除包的第一个字节和最后一个字节。

    谢谢、
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    即时是硬件编程的新内容。 您能建议我如何删除指定字节吗? 一些教程来执行逐位操作。

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

    您好 Prudhvi

    您不需要执行任何按位操作。  当消息传送到器件的 UART 中时、一个中断应该被触发来指示一个字节已被接收、并且该字节将被存储在接收缓冲寄存器中(很有可能是 UCA0RXBUF)。  在该中断内部、我建议将接收缓冲寄存器的内容复制到单独的数组中、以进行数据处理。  您还可以检查接收缓冲区的内容以检查它是否包含数字、 R 或您提到的回车符、并根据需要将它们包括/排除在该单独的数组中。

    不需要

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    假设您有一个包含所有字符的数组、char array ="R1234.n\0"、则可以使用以下命令获取整数:

    long strtol (array[1]、NULL、10)

    这位于 stdlib.h 中

    请注意、这是一个常见的 C 问题、与 MSP430本身无关。