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

【求助】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,把最高位丢失了。

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

加入收藏 新浪微博 分享到微信 ❤赞 4221 次点击 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—源自武汉的高端交流分享社区
相关主题
iOS 过早客没有数据,大佬们求教!
GPT-5
寻有K12教育行业软件开发经验的同学合作
你们都用哪些AI工具,求分享下~
过早客flutter版来了
亲测,鸿蒙开发奖励到手了
感觉gemini已经是一骑绝尘
分享一个拥有很多好看壁纸的插件
作为后端开发工程师,你们有中途转向机器学习/深度学习的吗?
写了个过早客的暗色插件,个人感觉很好用嘿嘿

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