求教各位,先描述一下我的现象:
我的程序是用delphi写的,通过spcomm组件来实现对下位机通信.设计期操作如下:
1.设置:BaudRate:115200 CommName:COM1 ByteSize:_8 Parity:None StopBits:_1 这是按照说明上设的.说明上还有一句是:No Flow Conctrol 我不知应该设那个属性,就让它为默认的了.
2.主界面上有三个按钮功能如下:
btn1:startcomm
btn2:发送命令A;
btn3:发送命令B;
btn4:stopcomm
运行后执行:
1.点击btn1->点击btn2:执行命令A,结果正确.
2.接着1点击btn3:预计执行命令B,但是没有达到预期结果.使用串口检测设备并联到RS-232线路上.发现此时没有任何消息发送出来.
3.此时接2再点击btn4->btn1->btn3:执行命令B.显示结果正确.
4.接3点击btn2 :预计执行命令A,但同样没有任何显示.
总结上面操作得出现象结论:每次要发送一个命令之前必须重新打开一次串口,才能成功发送命令.那位能告诉我这是为什么?非常着急.谢谢大家!
我的程序是用delphi写的,通过spcomm组件来实现对下位机通信.设计期操作如下:
1.设置:BaudRate:115200 CommName:COM1 ByteSize:_8 Parity:None StopBits:_1 这是按照说明上设的.说明上还有一句是:No Flow Conctrol 我不知应该设那个属性,就让它为默认的了.
2.主界面上有三个按钮功能如下:
btn1:startcomm
btn2:发送命令A;
btn3:发送命令B;
btn4:stopcomm
运行后执行:
1.点击btn1->点击btn2:执行命令A,结果正确.
2.接着1点击btn3:预计执行命令B,但是没有达到预期结果.使用串口检测设备并联到RS-232线路上.发现此时没有任何消息发送出来.
3.此时接2再点击btn4->btn1->btn3:执行命令B.显示结果正确.
4.接3点击btn2 :预计执行命令A,但同样没有任何显示.
总结上面操作得出现象结论:每次要发送一个命令之前必须重新打开一次串口,才能成功发送命令.那位能告诉我这是为什么?非常着急.谢谢大家!
我在VC里是这么做的 PurgeComm(hComm, PURGE_RXCLEAR);
把spcomm的属性中所有为true的 改成false;