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.

[参考译文] RTOS/MSP432P401R:UART Echo演示中的数据丢失

Guru**** 2601915 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/639111/rtos-msp432p401r-data-loss-in-uart-echo-demo

部件号:MSP432P401R

工具/软件:TI-RTOS

大家好,

我正在使用MSP432评估套件,并使用TI-RTOS API通过UART发送数据(UART_WRITE和UART_READ,波特率为11.52万)。 但是,我发现在UART中发送大约50字节(在50B正常之前)后,会有大量数据丢失。 为了解决这个问题,我尝试了使用UART Echo演示的环回测试,结果也一样。 在查看MSP_EXP432P401R中的代码后,我发现可以使用更大的环缓冲区大小(默认值为32 B),并且我将大小更改为512 B,之后我使其工作而不会丢失数据。

有没有其他方法可以解决这个问题? 看起来大缓冲区并不是一个好的解决方案。

任何建议都很有帮助。

SL61

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我正在研究这个问题。 缓冲区大小的替代方法是降低波特率,以便ringbuffer可以跟上UART的速度。

    此致,
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于MSP432在外围硬件中不包括流控制,因此环形缓冲区可能会溢出。 我将在将来的修订版中提交一个错误以帮助解决此问题。 在您自己的应用中,您是否有任何机制来控制数据流?

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

    感谢您的回复。 我目前使用2个GPIO作为硬件流控制,以便与其他设备进行通信。 由于我使用操作系统层的API,如gPIO_WRITE (),gPIO_READ ()和UART_WRITE (),因此实际速度似乎比设置的速度慢(波特率:11.52万)。
    我使用一个MSP432启动板和一个具有硬件流控制的第三方测试板(EM35x分路板)来设置测试。 测试板有一个USB到UART桥接器,因此我从PC终端发送数据,并让MSP432回送接收到的数据。 在终端上,我看到速度约为3.6Mbps。 在这种速度下,不会丢失数据。

    最佳,
    SL61

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的跟进和分享您的测试结果。

    Chris