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

CC2650 使用Uart接收数据的

使用CC2650的Uart接收数据,采用的是readCallback模式,每次接收UART_BUFFER_SIZE = 8个数据。

当发送方每次发送8个字节的数据时,可以正常接收。

但是当数据不足8个时,缓存在uart缓存区,而不进入readCallback函数,非要等到凑齐8个才进入callback函数。

怎么设置,能让收到不满8个数,比如4个数据后,1秒内,没有新数据的话,就调用Callback呢?

另外这个params.readTimeout = 1000;  起到什么作用?

还有UARTCC26XX_control(handle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL); 起到什么作用?

源程序如下:

/* Initialize the UART */
UART_Params params;
UART_Params_init(&params);
params.writeDataMode = UART_DATA_BINARY; //串口接收数据不做处理
params.readDataMode = UART_DATA_BINARY; //串口发送数据不做处理
params.readReturnMode = UART_RETURN_FULL; //当串口数据 params.dataLength = UART_LEN_8; //串口数据位8
params.stopBits = UART_STOP_ONE; //串口停止位1
params.parityType = UART_PAR_NONE; //无校验
params.baudRate = 115200; //串口波特率115200
/* Configure write callback */
//uartParams.writeMode = UART_MODE_BLOCKING;
/* Configure read callback */
params.readMode = UART_MODE_CALLBACK; //Callback模式
//params.readTimeout = 1000; //UART_ReadTimeout;
params.readCallback = UART_readCallback;
params.readEcho = UART_ECHO_OFF; //串口不回显
handle = UART_open(Board_UART, &params);
//UARTCC26XX_control(handle, UARTCC26XX_RETURN_PARTIAL_ENABLE, NULL);
UART_read(handle, UART_rxBuf, UART_BUFFER_SIZE);//UART_BUFFER_SIZE = 8
//UART_readPolling(handle, UART_rxBuf, UART_BUFFER_SIZE);

zhu weihua:

回复 Alvin Chen:

完美!戳中要害!

赞(0)
未经允许不得转载:TI中文支持网 » CC2650 使用Uart接收数据的
分享到: 更多 (0)