串口通信中ReadFile读取数据不完整

文章讲述了在使用ReadFile函数读取16进制数据时遇到的截断问题,发现数据实际上完整接收在接收缓区,通过memcpy函数实现完整数据复制。作者分享了这个在通讯领域的新鲜经验。

ReadFile(hComm_, pBuffer, dwLength, &dwReadResult, NULL)
现象:当发送的数据为16进制时,使用readfile读取数据发现数据缺少不完整。

发送的数据为01 10 75 61 10 03 06 00 66 00 31 00 50 56 0D
readfile会在00处截断,编译器将其视为\0即字符串的结束

解决方法:虽然通过监视发现数据被截断,但是实际上该数据是完整的被放入到接收缓存区的(pBuffer)。使用memcpy()内存拷贝函数

char ch[255];
memcpy(ch,pBuffer,dwReadResult).ch内就会显示处完整的数据。

通讯也是接触不久,在此记录一下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值