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

CC2640串口读取

hi,TI工程师

   你好,我在调试串口的时候,参照官网的写法,遇到串口读不到数据。读串口采用回调函数的形式,在main函数下只运行读串口一个任务,其他任务都屏蔽掉了。然后串口调试助手每隔1000ms发送一次1234567890。在debug状态下始终读不到数据。请问会是什么问题?

//================================UART_basic_recesive===================================
static void uartreadCB(UART_Handle handle,void *rx_buf,size_t size)
{ int bytes = 0;
bytes = UART_read(handle_RX_CB,basic_rx_buf,10);
if(bytes==10)
{
GPIOPinToggle(LED2);
}
else{
GPIOPinToggle(LED3);
}
}

static void UART_basic_recesive_fxn()
{
int rxbytes = 0;
UART_init(); UART_Params_init(&params_RX_CB);
params_RX_CB.baudRate = 9600;
params_RX_CB.readMode = UART_MODE_CALLBACK;
params_RX_CB.writeMode = UART_MODE_BLOCKING;
params_RX_CB.readDataMode = UART_DATA_BINARY;// UART_DATA_TEXT;// params_RX_CB.writeDataMode = UART_DATA_BINARY;
params_RX_CB.dataLength = UART_CONFIG_WLEN_8;
params_RX_CB.readCallback = uartreadCB;
// params.readTimeout = 100;
params_RX_CB.stopBits = UART_STOP_ONE;
params_RX_CB.readEcho = UART_ECHO_OFF;
handle_RX_CB = UART_open(0,&params_RX_CB);
//for(;;)
// {
UART_control(handle_RX_CB,0, NULL);
// UART_write(handle,tx_buf2,sizeof(tx_buf2));
rxbytes = UART_read(handle_RX_CB,basic_rx_buf,10);
// UART_write(handle,basic_rx_buf,sizeof(basic_rx_buf));
// UART_close(handle);
// delay_ms(10);
// }
Task_exit();
}

void UART_basic_recesive_task()
{
Task_Params uart_task_params;
Task_Params_init(&uart_task_params);
uart_task_params.stack = uart_basic_recesive_stack;
uart_task_params.stackSize = 200;
uart_task_params.priority = 2;
Task_construct(&uart_basic_recesive_struct,(Task_FuncPtr)UART_basic_recesive_fxn, &uart_task_params, NULL);
}

oran zhang:

我的协议栈用的是2.0版本的。

da qin zheng sheng:

串口能给电脑发送数据不?

oran zhang:

回复 da qin zheng sheng:

串口是可以给电脑发送数据的,使用回调函数的方式也是可以给电脑发送数据的。

就是在peripheral工程下单独建立一个串口的任务,并且在main函数下也只运行串口读取的函数,这个时候总是读不到数据。

xiaxiaofei:

我也遇到这个问题了,好几天了,一直解决不了,楼主解决了吗?

赞(0)
未经允许不得转载:TI中文支持网 » CC2640串口读取
分享到: 更多 (0)