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/TMS570LC4357:使用轮询方法从 sci 模块接收数据时出现问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/596517/ccs-tms570lc4357-problem-with-receiving-data-from-sci-module-using-polling-method

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

您好!

我在通过 sci 模块接收数据时遇到问题。 我正在通过 sci 打印8字节数据、速率为10ms (使用 RTI)。我正在使用 PuTTy 查看我的数据。我还使用轮询方法查看是否有任何新的8字节数据通过串行监视器在 IF 条件中使用 sciRxReady 输入、所有数据都在 while 循环内。进入 IF 条件时、我将使用 sci Receive 提取8 数据字节和新数据以10ms 的速率在 RTI 中断中打印。不幸的是、我无法这样做。只有我分配给变量的初始值以10ms (RTI)的速率在 Putty 上打印、但当我尝试输入 8字节数据时 通过 sciIsRxReady (In while loop)、我无法接收任何数据。 请帮助。

sciIsRxReady 是否在接收到一个字节的数据或通过串行监视器接收数据时返回值1、而不管所获得的数据的长度如何?

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

    Sarthake、

    [引用 USER="Sarthake Choudhary"] sciIsRxReady 是否会在接收到一个字节的数据或通过串行监视器接收数据时返回值1,而不管所获得的数据的长度如何?

    uint32 sciIsRxReady (sciBASE-t * sci)
    {
    /*用户代码开始(13)*/
    /*用户代码结束*/
    
    返回 sci->FLR &(UINT32) SCI_RX_INT
    ;}
    

    通过对代码的检查、您将看到它只返回 SCI 标志寄存器中 RX 标志的值。 1表示接收到数据。 除非缓冲模式可用(仅在用作 SCI 的 LIN 模块中)、否则 SCI 一次只能接收一个字节、但我认为 Halcogen 代码不能适应缓冲模式。

    如果您在发送至 Hercules 器件的终端窗口中手动输入数据、则无法输入每个值的速率为10ms 的值、以便随后打印这些值。 我觉得您尝试编程的内容存在一些逻辑问题、听起来像是镜像程序、通过终端窗口在键盘上键入的内容随后会通过 Tx 引脚发送回终端窗口。 需要注意的是、您需要缓冲8个字节、然后以10ms 的间隔发送数据。 如果您可以发布伪代码或代码的流程图、您可能会看到一些逻辑需要实现、以控制 Tx 直到接收到所有字节、或者以某种方式标识已接收到新字节并传输新字节。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Chuck!
    再次感谢! 我使它正常工作。