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.

[参考译文] CC2642R-Q1:UART2写回不触发

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1233896/cc2642r-q1-uart2-writecallback-does-not-trigger

器件型号:CC2642R-Q1

SDK 版本6.40

我打开了两个 UART 通道,一段时间后, writeCallbck 没有返回,我怎么能找到这个问题。

当 UART2_WRITE 和 writeCallback 时 I 打印计数,发生问题时、 writeCount 大于 callbackCount

代码 如下

UART2_Params 参数;
size_t bytesRead = 0;

/*创建一个处于默认读写模式阻塞的 UART */
UART2_params_init (&params);
params.readMode = UART2_Mode_callback;
params.writeMode = UART2_Mode_callback;
params.readCallback = USER_UART_uart2ReadCallback;
params.writeCallback = USER_UART_uart2WriteCallback;
params.baudrate = 115200;

uartHandle2 = UART2_open (CONFIG_UART2_0、&params);
params.readCallback = USER_UART_uartReadCallback;
params.writeCallback = USER_UART_uartWriteCallback;
uartHandle = UART2_open (CONFIG_UART2_1、&params);
如果(uartHandle2 == NULL){
/* UART2_OPEN()失败*/
while (1);

if (uartHandle == NULL){
/* UART2_OPEN()失败*/
while (1);

UART2_rxEnable (uartHandle2);
UART2_READ (uartHandle2、uartRead2.buf、sizeof (uartRead2.buf)、&bytesRead);
UART2_READ (uartHandle、uartRead .buf、sizeof (uartRead。buf)、&bytesRead);

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

    您好!

    感谢您联系 E2E。  

    回调不返回时是否发生故障或异常?

    回调中发生了什么情况?

    此致!

    N·贝赫马内什

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

    尊敬的 Nima:

    回调不返回时无异常

    当我再次调用 UART2_WRITE 时、返回-8和硬故障

    发布消息、在回调中调用 UART2_WRITE  

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

    您好!

    返回值-8 表示发生了 FIFO 溢出。

    SYSCFG 中的 TX 环形缓冲区设置的大小是多少?
    您可以进入 SYSCFG -> UART2 -> TX 环形缓冲区大小 。 您可能需要增加该值。  

    您调用 UART2_WRITE 的频率如何?

    此外、您还想附上所发生硬故障的屏幕截图吗?

    此致!
    N·贝赫马内什

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

    尊敬的 Nima:

    TX 环形缓冲区大小为512字节,调用一次 UART2_WRITE 50ms。

    您需要什么信息以及如何连接这些信息。

    谢谢

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

    您好!

    感谢您提供的信息、这对我们非常有帮助。  
    请查看此内容 链接以了解有关如何为硬故障提供什么的信息。 此外、当触发故障时、它应该会在调试期间在控制台窗口中提供有关故障类型的更多信息。 我还需要这方面的屏幕截图。

    此致!
    N·贝赫马内什

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

    你好,Nima,很抱歉迟到了

    屏幕截图 如下:

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

    您好、Jahn、

    很抱歉,我的回复太迟了。 可能发生的情况是上溢/下溢。 您能否验证是否正确填充 UART 缓冲区? 同时、我将努力重现此问题。  

    此致!

    N·贝赫马内什

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

    尊敬的 Nima:

    如何验证填充是否正确?

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

    您好、Jahn、

    您可以通过验证用于写入字节的缓冲区来进行检查。 您是否愿意提供写入 UART 的代码?

    此致!

    N·贝赫马内什

x 出现错误。请重试或与管理员联系。