我想将串口wtiting的writeFile函数包含到一个函数中,并多次调用该函数。我写了下面的代码。但是函数返回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;
}发布于 2012-05-14 16:24:37
您正在向nNumberOfBytesToWrite参数传递sizeof(lpBuf)。但是sizeof(lpBuf)仅仅是一个指针的大小。我想你应该通过dwToWrite。
如果这不能解决您的问题,那么hSerial中错误的另一个原因是无效的。
在调用GetLastError和FormatMessage的所有麻烦之后,如果您告诉我们这些函数返回了什么,将会很有帮助。
https://stackoverflow.com/questions/10579707
复制相似问题