请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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);
}