关于串口通信参数设置的问题.
求教各位,先描述一下我的现象:
我的程序是用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,但同样没有任何显示.
总结上面操作得出现象结论:每次要发送一个命令之前必须重新打开一次串口,才能成功发送命令.那位能告诉我这是为什么?非常着急.谢谢大家!
问题点数:100、回复次数:13Top
1 楼chenylin(陈SIR)回复于 2006-07-02 22:36:16 得分 0
试一下:
if Comm1.SendDataEmpty then Comm1.WriteCommData(...);
Top
2 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 03:17:25 得分 0
你是不是485构成的网络。。如果是,注意一下匹配电阻。消除毛刺信号。Top
3 楼tmanje(大树)回复于 2006-07-03 12:41:17 得分 0
"你是不是485构成的网络。。如果是,注意一下匹配电阻。消除毛刺信号。"
不是,PC通过232接一台设备.Top
4 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2006-07-03 12:56:30 得分 0
>>No Flow Conctrol
检查是不是终止位 没写对?Top
5 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 13:07:26 得分 0
btn1:startcomm
btn2:发送命令A;
btn3:发送命令B;
btn4:stopcomm
点完btn1后,连续点btn2发送命令A是否都可以得到正确得结果呢?Top
6 楼tmanje(大树)回复于 2006-07-03 15:50:04 得分 0
//------------------------------------------------------------
btn1:startcomm
btn2:发送命令A;
btn3:发送命令B;
btn4:stopcomm
点完btn1后,连续点btn2发送命令A是否都可以得到正确得结果呢?
//-------------------------------------------------------------
连续点btn2可以,但是点了btn3后再点btn2就不行了!
而且连续点btn3也是不行的Top
7 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-03 18:46:43 得分 0
在更换命令发送时,把发送得缓冲区清空一次试试。。。
你可以先用系统自带得超级终端试验一下,首先确定是那里得问题。是程序得问题,还是设置得问题,还是线路得问题,或者是设备得问题。Top
8 楼solokey(争取在2008年成为低级程序员)回复于 2006-07-03 23:13:02 得分 0
No Flow Conctrol
没有流量控制..不知道说的软件流量控制,还是硬件流量控制.
rs232的线是怎么接的? 2,3,5还是接全了?Top
9 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-05 02:15:01 得分 0
你发送任一命令后,用sleep延时一下,再试试。Top
10 楼xjjrocker(了无痕)回复于 2006-07-18 14:50:29 得分 0
哈哈,我也遇到过,都解决了;我记得是Outx_CtsFlow和Outx_DsrFlow设为false;DtrControl设为DtrEnable,应该就可以了。你说的那样绝对可以实现,如果你实现不了,一定是参数的问题.Top
11 楼wildhorsetlj(tianye`)回复于 2006-07-18 15:10:52 得分 0
遇到的情况和解决方案与xjjrocker类似Top
12 楼FigoZhu(谢慕安)回复于 2006-07-19 18:16:21 得分 0
原来是这样啊。
接分。Top
13 楼tianxueshan(tianxueshan)回复于 2006-07-20 17:39:31 得分 0
老谢。你怎么到哪都在接分啊。^_^Top




