在线时间9 小时
UID1420691
注册时间2016-1-26
NXP金币0
该用户从未签到
注册会员

- 积分
- 73
- 最后登录
- 2016-4-5
|
本帖最后由 kojidong 于 2016-1-26 10:50 编辑
示例代码中有三种接收,lpsci_blocking、lpsci_non_blocking、lpsci_polling
我用的是lpsci_blocking,我想实现接收一帧22字节固定长的数据,希望能处理异常接收,如:不足22字节的接收,继续等待直至接收满22个字节;如果多出22个字节,希望能丢弃22字节后的数据。
我的代码如下,连续有两次接收:
- 1 while(kStatus_LPSCI_Success != LPSCI_DRV_ReceiveDataBlocking(BOARD_DEBUG_UART_INSTANCE, cmdB, sizeof(cmdB), 100u));
- 2 cmdB, sizeof(cmdB), 100u)); /* 打印接收到的数据 */
- 3 ……
- 4 while(kStatus_LPSCI_Success != LPSCI_DRV_ReceiveDataBlocking(BOARD_DEBUG_UART_INSTANCE, cmdB, sizeof(cmdB), 100u));
- 5 cmdB, sizeof(cmdB), 100u)); /* 打印接收到的数据 */
复制代码
现在出现一个问题:在第一次接收时,如果接收到超过22字节的数据后,发现多余的字节会进入第二次接收的接收缓冲区,即没有将多余的字节丢弃掉,请问如何才能将每次接收多余的字节丢弃掉?
|
|