首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问关于RS-232串行通信有关问题

2012-05-28 
请教关于RS-232串行通信问题BCB6下安装VB的MSComm控件,一台仪表连接电脑。代码 MSComm1-PortOpen true如

请教关于RS-232串行通信问题
BCB6下安装VB的MSComm控件,一台仪表连接电脑。
代码 MSComm1->PortOpen =true;
如果先开完电脑,再开仪表,正常通信。
但先开仪表,再开电脑,则无通信,提示“端口已打开”,如果把代码改为 MSComm1->PortOpen==false;则提示“端口未打开”,请教怎样才可以先开仪表再开电脑也一样通信正常?

[解决办法]
你先在formcreate 里面加一个判断,看看刚开始的时候端口是否打开。
if(MSComm1->PortOpen==true)
{
Label3->Caption="打开了" + IntToStr(portnum) + "端口";
}
else
{
 MSComm1->PortOpen=false;
 ShowMessage("端口"+ IntToStr(portnum) +"不能打开") ;
}

如果端口没有打开你就尝试把他打开,试试。
MSComm1->PortOpen=true;

[解决办法]
不建议用这个控件。不方便!还是用SDK吧
[解决办法]
楼主说的是不是通过MsComm->PortOpen赋值无法控制串口操作么?
可以通过GetPortOpen()来获取串口是否打开,用SetPortOpen(bool Flag)来控制串口。
不知道这样可以不?呵呵没实践过,不负责任的写上先。
[解决办法]
略微看了一下协议,
好像并不是太复杂,
只是命令多了一些而已,基本格式也很简单

热点排行