过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

【求助】C++串口代码问题:ReadFile函数从缓冲区读取1个字节的数据,最高位丢失

IT技术 • dzvoid • 发表于 6 年前 • 最后回复来自 hgly1206 • 6 年前

串口初始化:
if(!serialport.InitPort(3, 115200, 'N', 8, ONESTOPBIT, EV_RXCHAR)) //com3

/** 从缓冲区读取一个字节的数据 */
bResult = ReadFile(m_hComm, &cRecved, 1, &BytesRead, NULL);

cRecved定义是unsigned char。

发送到串口缓存区的数据是0xAA,但是用ReadFile读出来的数据是0x2A,把最高位丢失了。

求各位大牛帮忙指点下啊?

加入收藏 新浪微博 分享到微信 ❤赞 4104 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到11条回复
MaifuTen 6 年前 #1 赞 0

因为你设置的是有一位停止位

woyouzui 6 年前 #2 赞 0

有没有可能波特率不对?

dzvoid 楼主 6 年前 #3 赞 0

@MaifuTen 停止位只有1 ,1.5, 2三种,默认就是1。
那有什么办法把最高位输出来呢?

dzvoid 楼主 6 年前 #4 赞 0

@woyouzui 波特率没有问题

dzvoid 楼主 6 年前 #5 赞 0

有人帮忙指点下吗?

guanggoodog 6 年前 #6 赞 0

是打开串口后第一个字节有问题还是读的每个字节都有问题

dzvoid 楼主 6 年前 #7 赞 0

@guanggoodog 每个字节都有问题,最高位被置为0了

guanggoodog 6 年前 #8 赞 0

那只能控制条件来排除了。发送端用的什么工具,可以接线用串口工具接受测试下。同样,用串口工具发送测试接收的代码。重新核查下代码,尝试用字节数组一次读多个字节测试一下。

comdiugaowei 6 年前 #9 赞 0

你好,你这个问题解决了吗?我也遇到了同样的问题,谢谢

dzvoid 楼主 6 年前 #10 赞 0

@comdiugaowei 无缘无故好了。我用的是虚拟串口调试的,先换了另外一个软件打开串口,再关掉后换回先用的软件,就没有问题了。

hgly1206 6 年前 #11 赞 0

先用串口软件测试数据看看有没有问题

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
想买个平板,日常工作和娱乐使用,预算3000,有啥推荐码
【已送】中了个盒马椰子 送给有缘人(地址附近需要有盒马门店)
华为新出的电脑2W7,这电脑买着当挂件吗?
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏
618打算攒一套mac mini,有没有入手过的童鞋,说说体验
阿里巴巴华中总部今天正式入驻阿里中心·武汉
服务器可视化采用纯前端渲染,这个技术实现难度如何
想配一个台式机,求推荐
最近时间少了, 隔了这么久, 才做了一个网站
做了一款摸鱼软件,有人要试用吗?

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号