我想将串口的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
中的其他错误原因无效。
麻烦了调用GetLastError
和FormatMessage
的麻烦,如果您告诉我们这些函数返回了什么,那将很有帮助。
关于c - 带WriteFile的功能-写入串行端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10579707/