陈小宇啊~ 2022-01-04 17:39 采纳率: 0%
浏览 272

c++用串口句柄读写串口 读的时候执行ReadFile之后就一直没反应

用CreateFile打开串口 写数据没问题 读数据时候执行ReadFile之后就一直卡死断点也跟不进去的 有朋友知道这是哪里的原因吗

char *str= new char[100];

DWORD wCount; //读取的字节数

BOOL bReadStat;
//CloseHandle(hComm);
hComm = CreateFile("com2", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
printf("thread open\n");
memset(str, 0, sizeof(str));
PurgeComm(hComm, PURGE_TXCLEAR | PURGE_RXCLEAR);

if (hComm == INVALID_HANDLE_VALUE)
{
    printf("打开串口失败!");
    printf("err = %ld", GetLastError());
    return FALSE;
}
while (b)
{    

    
    bReadStat = ReadFile(hComm, str, sizeof(str), &wCount, NULL);
    if (!bReadStat) {
        printf("读串口失败!");
        printf("err = %ld", GetLastError());
        return FALSE;
    }
    else
    {
        printf("数据读取完毕,%s\n", str);
        fun(str);
        
    }
}
  • 写回答

1条回答 默认 最新

  • 秋天的毛毛虫 2022-01-04 18:55
    关注

    读文件和写文件用不同文件句柄;采用文件共享读的方式打开文件试试。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月4日