我有一个程序,它使用串口通信与一些硬件通信。没问题。然后,我在图片中添加了两个GSM Moden。在VB中,我用一个协议(8数据,0,1)向调制解调器打开COM端口,当调制解调器之间的通信打开并运行时,我关闭了端口,并在硬件上重新打开了一个新协议(7数据,偶数奇偶校验,2 stop)。几年前,硬件已经标准化到这个速度,所以我不能改变这个,而且大多数调制解调器都不支持7,e,2协议。
我想扩大对调制解调器的支持,当端口关闭时,许多调制解调器会中断联系。我不是在用硬件握手。
,所以这是我的问题。,在不关闭串口的情况下,我如何才能最好地改变协议之间的关系?
发布于 2009-11-20 14:06:51
要真正设置串行连接的所有选项,您应该使用Win32 API通信功能。据我所知,您不需要关闭并重新打开端口来激活这些设置。will在设置它们之后就能工作了(如在这个例子中)。
您只需小心,如果您只想更改一两个设置,您就必须用相应的GetX函数预先填充您的结构,进行更改并调用SetX函数。
也许与前面的句子相反,但是不要依赖于first SetX调用的默认设置。我见过很多程序只是改变流行的设置(例如波特率、停止位等等)。但并不是罕见的(如XoffChar等)。如果您只是这样做,而另一个程序将更改这些设置,您就会开始怀疑为什么您的程序突然无法与您的串行设备进行通信,因为您使用的是另一个程序设置为串口的设置。
在我忘记之前,如果您喜欢在Win32中使用C# API函数,请看一看PInvoke.net。
https://stackoverflow.com/questions/1770217
复制相似问题