adam7217 2017-07-29 06:42 采纳率: 0%
浏览 3986

用C++做串口通讯,缓冲区里有很多数据,但readfile只能读到开头的一部分

刚刚学习,望大神不吝赐教,主函数代码如下:
int main()
{
HANDLE hCom;
hCom = CreateFile(L"COM3",//COM1口
GENERIC_READ | GENERIC_WRITE, //允许读和写
0, //独占方式
NULL,
OPEN_EXISTING, //打开而不是创建
0, //同步方式
NULL);
if (hCom == (HANDLE)-1)
{
cout << "打开COM失败!"<<endl;
return FALSE;
}
else {
cout << "打开COM成功!"<<endl;
}

SetupComm(hCom, 1024, 1024);

DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = 9600; //波特率为9600
dcb.ByteSize = 8; //每个字节有8位
dcb.Parity = NOPARITY; //无奇偶校验位
dcb.StopBits = TWOSTOPBITS; //两个停止位
SetCommState(hCom, &dcb);

char str[1000];
char dst[1000];
memset(str, '\0', 100);
DWORD wCount = 100;//读取的字节数
BOOL bReadStat;
bReadStat = ReadFile(hCom, str, wCount, &wCount, NULL);
if (!bReadStat) {
    cout << "读串口失败!"<<endl;

}
else {
    cout << "读串口成功!"<<endl;
}


Ascii2Hex(str,dst);

cout<< dst<<endl;

cout << "实际收到的数据个数:" <<dec<< wCount << '\n';

return 0;

}

串口助手收到的数据如图:et/upload/201707/29/1501310457_107315.png)

  • 写回答

2条回答 默认 最新

  • adam7217 2017-07-29 06:43
    关注

    串口调试助手收到的如图
    自己的程序如图

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备