MFC串口WriteFile()崩溃

时间:2011-09-22 11:00:48

标签: visual-c++ mfc serial-port

我正在尝试使用WriteFile()函数写入串口,当我放置一些断点来检查它是否正在写入时,它不会。我试图通过我的COMM端口传递一串数据。

BOOL bWriteRC = false;
DWORD iBytesWritten = 0;

//String data: "$ABCEFG,00000020,010000003F800000*##\r\n" ==> stored in a CString

CString sStore = "$ABCEFG,00000020,010000003F800000*##\r\n";

bWriteRC = WriteFile(hdl,sStore.GetBuffer(),sStore.GetLength(),&iBytesWritten,NULL); // doesn't go past this...

无论如何,每当我执行它时,程序都不会通过此功能而停止。关于我做错了什么的任何建议?

我尝试减少GetLength(),使它成为14并且它完美无缺,但是一旦写入的字节数增加到14以上,WriteFile()就会停止更进一步。

提前致谢。

2 个答案:

答案 0 :(得分:2)

考虑到你的问题,WriteFile()应该总是像亚历克斯前面提到的那样成功。更好地检查您尝试写入的字符串是否正确,是否可以在串行端口上接受。有时,这些小事可能会被监督并导致重大错误。除此之外,在我看来,如果它是一个简单的写操作,它应该工作。

答案 1 :(得分:0)

如果它在WriteFile中挂起,则表示COM端口驱动程序不接受您的数据,它无法将其发送到COM端口。它取决于这种COM端口设置为DTR信号状态。您需要检查流量控制设置。