我想将串口的writeFile函数包含到fuctiona中,并多次调用该函数。我写了下面的代码。但是函数返回false。我找不到任何错误。

bool WriteBuffer (char *lpBuf,DWORD dwToWrite){

//  DWORD dwBytesWritten;
//  DWORD dwToWrite;
printf("%s", lpBuf);

 if(!WriteFile(hSerial, lpBuf, sizeof(lpBuf) ,&dwBytesWritten, NULL))

        {

        FormatMessage(
        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPWSTR)&lastError,
        1024,
        NULL);

    CloseHandle(hSerial);
    hSerial=NULL;
    printf("ERROR in WRITE FILE \n");
    return false;
//Handle Error Condition
}
printf("You wrote'%s'",lpBuf);


 return true;
 }

最佳答案

您正在将sizeof(lpBuf)传递给nNumberOfBytesToWrite参数。但是sizeof(lpBuf)只是指针的大小。我猜你应该通过dwToWrite

如果那不能解决您的问题,则hSerial中的其他错误原因无效。

麻烦了调用GetLastErrorFormatMessage的麻烦,如果您告诉我们这些函数返回了什么,那将很有帮助。

关于c - 带WriteFile的功能-写入串行端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10579707/

10-11 10:32