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/MSP432E401Y:多线程 UART 程序

Guru**** 2563630 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/802824/rtos-msp432e401y-multi-thread-uart-program

器件型号:MSP432E401Y

工具/软件:TI-RTOS

您好!

我编写了 UART 多线程程序、其代码片段如下所示:

void * mainThread (void * arg0)

while (1){

TX_BUFFER[0]= 0x01;

TX_BUFFER[0]= 0x02;

TX_BUFFER[0]= 0x03;

UART_WRITE (uart1、&Tx_buffer、3);         //向传感器发送数据。

void * Thread2 (void * arg0)

while (1){

UART_READ (uart1、&Tx_buffer、1);        //从传感器接收数据。

UART_WRITE (uart2、&Tx_buffer、1);       //向外部发送数据。

void * Thread3 (void * arg0)

while (1){

UART_READ (uart3、&Tx_buffer、1);             //从外部接收数据。

UART_WRITE (uart1、&Tx_buffer、1);           //向传感器发送数据。

在此过程 中、我为'Thread2'提供了更高的优先级、为'main_Thread'提供了下一个优先级、为'Thread3'提供了最低优先级。

使用该 Main_Thread 和 Thread2函数正在正常执行、但 Thread3未执行。

如果我为   Thread3指定了更高的优先级 、则所有三个函数都不会执行。

有人能告诉我、编写代码的方式是正确的吗? 或者、我应该在这两者之间使用互斥量或信标。

请指导我。

谢谢你

此致

Kalyan。

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

    您是否确保每个 UART 都正常工作? 我建议您从检查每个 UART 是否都在同一个线程中工作等小步骤开始。 然后创建第二个线程、并将一个 UART 一次移动到该线程、以此类推。

    根据提供的信息、问题可能是很多原因。

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

    请提供更多信息和调试步骤以保持开机自检打开。 根据到目前为止提供的信息、问题可能是由许多原因引起的、很难确定可以帮助您的问题。

    谢谢、
    SAI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sai、
    感谢你的答复。
    我已经在单个线程中单独尝试了每个 UART、所有三个 UART 都正常工作。

    请告诉我上述代码是否正常工作?
    如果不是、请向我建议更改。

    如有必要、我将随附该代码。

    谢谢你

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

    我看不到上述伪代码与迄今提供的信息之间存在任何主要问题。

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

    e2e.ti.com/.../Threads.ce2e.ti.com/.../6765.main_5F00_tirtos.c

    您好、先生、

    感谢你的答复。

    我已附加我的代码文件。 请与我联系并指导我获取解决方案。

    谢谢你

    此致

    Kalyan。

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

    我不能提供你所要求的那种支持。 我相信,就目前为止提供的信息而言,我已经提供了足够的线索,以便您能够跟踪真正的问题。

    我可以回答有关 MCU 或 SDK 的具体问题、如果您有的话。 否则、我将关闭此帖子。

    谢谢、
    SAI
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在上面的代码段中、您将不同的 UART 值保存到同一个 TX_BUFFER[0]位置。 我假设这是一个拼写错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Keith、
    是的、这是一个拼写错误。
    您能不能告诉我上面所附代码是否应该。
    谢谢你

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