TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: 设置UART读回调,但是没响应

Part Number:LAUNCHXL-CC26X2R1

UART读数据为回调方式,当串口输入数据时,并没有效果

//UART读取回调函数。修改灯状态
void uart_read_datdCB(UART2_Handle handle, void *buf, size_t count, void *userArg, int_fast16_t status)
{
static int flag = 0;

flag = ~flag;
GPIO_write(CONFIG_GPIO_LED, flag);
}

//UART初始化

void uart_init2(void)
{
UART2_Params params;
UART2_Params_init(&params);
params.baudRate = 115200;
params.writeMode = UART2_Mode_BLOCKING;
params.readMode = UART2_Mode_CALLBACK;
params.readCallback = &uart_read_datdCB;

// Open the UART
uart = UART2_open(CONFIG_UART2_0_CONST, &params);
if (uart == NULL) {
// UART2_open() failed
while (1);
}

// Enable receiver, inhibit low power mode
UART2_rxEnable(uart);
uint8_t buffer_tmp[] = "UART2 init ok\r\n";
UART2_write(uart, buffer_tmp, sizeof(buffer_tmp), NULL);
}

Alex Zhang:

您好,建议从以下几个方面去查找问题;

1,进行debug看您这边串口是否可以读到数据

2,回调函数是否未注册成功 在初始化参数中将回调函数分配给readCallback字段是正确的方式。但是如果该回调函数未正确注册,则不会在接收数据时执行该回调函数。请确保在程序中正确地注册回调函数并且没有发生错误。

3,检查led初始化程序是否有问题

,

DaZhuang:

1、如何DEBUG查看串口是否收到数据?

2、读数据的回调函数只是改变灯状态,回调函数本身没错误

设置读取方式为callback,并注册params.readCallback = &uart_read_datdCB,然后只要UART2_open成功即认为回调正确注册,对吧。

3、LED是正常的,因为放到别处调用没问题

,

DaZhuang:

或者您方便能给我一份读回调的Demo吗?

,

Alex Zhang:

1.您这边使用ccs编译器,debug程序,会自动运行,然后打开view 选中expression双击变量粘贴到右上角的界面即可看到该变量的数值变化。

,

Alex Zhang:

您这边可以参考以下链接

dev.ti.com/…/ble_connections.html

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: 设置UART读回调,但是没响应
分享到: 更多 (0)