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/LAUNCHXL-CC2650:UART_open()始终返回 NULL

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/603191/ccs-launchxl-cc2650-uart_open-always-returns-null

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:Code Composer Studio

您好、

(第二个帖子涉及同一问题、因为我在第一次回复后未收到任何回复)

我使用的是 CC2650 Launchpad、BLE Stack v2.2和 TI RTOS v2.20的 Simple Peripheral Observer 示例。

我想在 CC2650和我的 PC 之间建立 UART 通信。

我复制了 UartEcho 代码。 它构建时没有错误、但当 UART_Open (...)时不返回 UART_Handle 被调用。  

"UART Not Opened"(UART 未打开)将在"Console"(控制台)窗口中持续打印。  

代码-  

/*********
*包括
*/
#include 
#include 
#include 
#include 

#include 
#include 

#include 
#include 
//#include 
#include 

#include "iCall.h"
#include "hal_dassert.h"
#include "bcomdef.h"
#include "peripheral_obider.h"
#include "simple_peripheral_obider.h"

/*启用指令提取缓存所需的头文件*/
#include 
#include "inc/hw_ints.h"
#include 

#ifndef use_default_user_CFG

#include "Ble_user_config.h"

// BLE 用户定义的配置
bleUserCfg_t user0Cfg = BLE_USER_CFG;

#endif // use_default_user_CFG

#include 

#include 

#include "Board.h"
#include "hal_types.h"

#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 

静态 char uartTaskStack[512];
静态 Task_Structurt uartTask;

静态空 uartTaskFxn (UArg a0、UArg A1)
{

字符输入;
UART_Handle UART;
UART_Params uartParams;
const char echoPrompt[]="\fEchoing Characters:\r\n";

/*创建一个数据处理关闭的 UART。 *
UART_PARAMS_INIT (uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readReturnMode = UART_return_full;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudrate = 9600;
UART = UART_OPEN (Board_UART0、uartParams);

while (UART == NULL){
//System_abort ("打开 UART 时出错");
fflush (stdout);
printf ("UART 未打开);
}

UART_WRITE (UART、echoPrompt、sizeof (echoPrompt));

/*任务循环一直回显*/
while (1){
UART_READ (UART、INPUT、1);

UART_WRITE (UART、INPUT、1);
//第二次输出,很容易在范围上进行验证
UART_WRITE (UART、INPUT、1);
}
}

int main()
{//
注册应用程序回调到堆栈中发出的陷阱断言*/
RegisterAssertCback (AssertHandler);

PIN_init (BoardGpioInitTable);

//初始化 iCall 模块*/
iCall_init();

//启动外部映像的任务-优先级5*/
iCall_createTasks(*/ RemoteTask)

;*Remote_Task(_Remote_Remote_Handle);




Task_Params tp; 
UART_INIT(); 
Task_Params_init (&tp); 
tp.stack = uartTaskStack;
tp.STACKSIZE = sizeof (uartTaskStack);
tp.priority = 1;
Task_construct(&uartTask, uartTaskFxn,&tp, NULL);

/*启用中断并启动 SYS/BIOS */
BIOS_start();
返回(0);

 

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

    UART 未打开的最可能原因是可能有其他资源已经在使用它(例如、显示驱动程序正在打开端口)

    例如、默认情况下、simple_peripehral 将尝试使用显示驱动程序(至少在较新的示例中)、并且可能会打开 UART 端口。

    您可以通过查看 simple_peripehral 代码并验证它没有使用任何与 UART 相关的代码来验证这一点。

    此外、板级配置文件可能无法正确设置 Board_UART0 -请确保它们是有效的引脚。

    此致、
    反叛分子