我需要在串口上执行连续的串行写操作,直到应用程序运行。任何人都可以建议使用win32在串行通信中以常规时间间隔连续写入数据的适当步骤。
我已按钮点击完成端口打开,写入,读取和关闭。这意味着,如果我单击打开按钮,则打开端口,写入按钮进行写入,读取按钮进行读取,然后关闭按钮以关闭端口。我在win32平台上的串口上使用了文件操作技术。这些步骤可以概括为
我这样做是为了了解串行通信。但实际上我必须连续写入数据,直到应用程序运行,同时读取串行端口可用的数据。我没有在我的程序中实现线程概念。线程对我来说是一个新主题,如果我必须用它来获得我的目标,请提出适当的步骤。我的目标是
非常感谢您的帮助。
答案 0 :(得分:1)
stopSignal=CreateEvent(stuff); //signal this with SetEvent() to stop the serial thread.
..
CreateThread(blah,SerialThreadProc,blah);
..
void* SerialThreadProc(){
open port (createfile);
check port exist or not;
set serial parameters;
set timeouts;
do{
write data (writefile);
read data (readfile);
}while(WAIT_TIMEOUT==WaitForSingleObject(stopSignal,commsInterval));//expect yoda flame
close port
};
答案 1 :(得分:0)
如果要同时执行Windows API串行读取和写入,则必须具有读取线程和写入线程。如果您在GUI程序中执行此操作,则这些线程应与主GUI线程分开。
这篇MSDN文章描述了详细信息,并提到了一个名为MTTTY的示例代码,它结合了读,写和GUI。不幸的是,MTTTY似乎在MSDN上不再可用。如果您可以访问旧的MSDN库磁盘,也许可以找到它。