我是有做过这个!说说我的思路吧! 你可以设一个全局变量port as boolean 一开始初始化让它=false 这样代表串口没有在使用 然后每次进行读写的话先判断port的状态 if port=false then mscomm1.portopen=true port=ture else do doevents loop while(port=true) mscomm1.portopen=true port=ture end if 如果port=ture时代表串口有在使用,就一直等待到别的窗体使用完了才能使用. 好了!给分吧!
[email protected]
你可以设一个全局变量port as boolean
一开始初始化让它=false
这样代表串口没有在使用
然后每次进行读写的话先判断port的状态
if port=false then
mscomm1.portopen=true
port=ture
else
do
doevents
loop while(port=true)
mscomm1.portopen=true
port=ture
end if
如果port=ture时代表串口有在使用,就一直等待到别的窗体使用完了才能使用.
好了!给分吧!
最后面写上mscomm1.portopen=false
port=false每次读完就关闭,这样的话就不会有串口使用冲突的错误了
写命令也是一样,只不过是在写命令后面把串口关闭就OK!
谢谢你的回答,不过你好像误会我得意思了。我说的是网络上有其他机器在发数据。不是本机的其他窗口。
如果两台机器同时向总线中发数据,就会造成数据重叠,数据就会发生错误
能详细的说一下么?检测到字符串应该是指看接收缓存区中数据长度吧,但是我通过判断MSComm1.InBufferCount来检测的方法并不可靠。