CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  Windows SDK/API

关于串口通信参数设置的问题.

楼主tmanje(大树)2006-07-02 17:47:38 在 Delphi / Windows SDK/API 提问

求教各位,先描述一下我的现象:  
  我的程序是用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

相关问题

关键词

得分解答快速导航

  • 帖主:tmanje

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo