我正在用C ++编写一个程序来从串口读取和写入。
我无法解决的一个问题是,在调用SetupComm后它失败了。
使用GetLastError()
告诉我错误0x00000013
,“媒体被写保护”是该错误代码的定义。
谷歌搜索这意味着在编程方面没有任何意义。我一直在寻找结果指向博客上的硬盘拒绝让用户写这样的东西。没有基于编程的结果。
另外一条有趣的信息是,尽管SetupComm
失败,我仍然可以成功写入串口。我只是无法从中读取。
以下是我打开连接的代码,直到我致电SetupComm
:
string s = "com1";
LPCSTR port = s.c_str();
DWORD dwDesiredAccess = GENERIC_READ | GENERIC_WRITE;
DWORD dwShareMode = 0;
LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL;
DWORD dwCreationDistribution = OPEN_EXISTING;
DWORD dwFlagsAndAttributes = FILE_FLAG_OVERLAPPED;
HANDLE hTemplateFile = NULL;
handle = CreateFile(port, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDistribution, dwFlagsAndAttributes, hTemplateFile);
bufferSizeReceive = 16;
bufferSizeTransmit = 16;
BOOL success = SetupComm(handle, bufferSizeReceive, bufferSizeTransmit);