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.

[参考译文] CC2541未#39;t 调用 UART 回调

Guru**** 2551110 points
Other Parts Discussed in Thread: CC2541

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/579362/cc2541-don-t-call-uart-callback

主题中讨论的其他器件:CC2541

您好!

我正准备制作一个 CC2541的 UART 库、我不知道发生了什么。 我只有一个任务(正在工作)、它使用回调函数初始化 UART、代码如下:

void UART_Receiver_Init( uint8 task_id ){
UART_Receiver_taskID=task_id;

//配置 UART
halUARTCfg_t uartConfig;
uartConfig.configured. = true;
uartConfig.波特 率 = HAL_UART_BR_9600;
uartConfig.FlowControl = false;
uartConfig.flowControlThreshold = 48;
uartConfig.Rx.maxBufSize = 1024;
uartConfig.TX.maxBufSize = 1024;
uartConfig.idleTimeout = 6;
uartConfig.intEnable = true;
uartConfig.callBackFunc = UART_Listener_CB;

HalUARTOpen (V_UART_PORT,&uartConfig);

HCI_EXT_HaltDuringRfCmd (HCI_EXT_HALT_During_RF_DISABLE);


OSAL_START_timerEx (UART_Receiver_TaskID、START_UART_communication、500);

} 

在回调函数中、我只有一条调试消息。

问题是、它永远不会进入回调。  

我定义了以下宏:

INT_HEap_LEN=3072
HALNODEBUG
OSAL_CBTIMER_NUM_TESS=1
真= 1
false = 0

#define UART_PORT HAL_UART_PORT_0
#define HAL_UART true
#define HAL_UART_DMA 1
#define HAL_DMA true 

有人知道我的代码中可能缺少什么吗? 我已经检查了 CC2541和 Arduino 之间的连接。  

谢谢!  

维森特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在哪里/如何在代码中实现 UART RX 回调函数 UART_Listener_CB?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    INIT 函数之前。 这是代码



    /*********
    *@fn UART_Listener_CB
    *
    *@简要处理 UART 接收器缓冲区以查找所需的数据
    *
    *@param 端口-已接收字节的 UART 端口
    *@param 事件- UART 事件的类型(TX 缓冲区为空、TX 缓冲区为满、...)
    *
    *
    void UART_Listener_CB (uint8端口、uint8事件){

    printf ("UART 回调\n");
    #if 已定义(V_DEBUG)
    Debug_Print (收到"Msg 命令\n");
    #endif



    //放弃不必要的事件
    if (event == HAL_UART_TX_EMPTY || event= HAL_UART_TX_FULL) return;






  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    回调函数看起来正常。 测试 UART RX 时是否禁用 POWER_SAVing?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然:


    OSAL_pwrmgr_device ( PWRMGR_AYST_ON );