一个串口通信问题(100分)

  • 主题发起人 主题发起人 sunwill
  • 开始时间 开始时间
怎么没有人回答我的问题了?我好无助!
 
比如:
const
CWM_COMMDATA = WMUSER + ...

procedure TCommThread.Create(CreateSuspended: Boolean; ParentHWnd: HWnd; CommPort: Integer);
begin
end;

在串口接收到数据后
PostMessage(ParentHWnd,CWM_COMMDATA,0,CommPort);
 
to pihome
谢谢你对我的问题的再次观注!你能不能留下联系方式(QQ或Email),
有问题我可以继续向您请教?
 
使用spcomm控件,静态使用一个,编写事件处理过程。
然后建立控件数组,动态创建多个控件,其事件处理指向静态控件的相应处理过程。
具体区别事件是由哪个串口产生的,可由该控件对象的ComName属性来区别,或在动态创建时
给Tag属性输以自定义的值来区别。
我做过类似的系统,不过实际串口数量不超过16个,但这样做系统可支持任意多个(看你的数组数量和定义的数量)。
 
pihome@pihome.net
[:)]
 
to pihome
谢谢您!

to hdfsun
你的方法很不错!但由于本人水平有限,象‘建立控件数组,动态创建多个控件,
其事件处理指向静态控件的相应处理过程。具体区别事件是由哪个串口产生的,
可由该控件对象的ComName属性来区别,或在动态创建时给Tag属性输以自定义的值
来区别’,我以前没这样做过,实现起来有点困难。你能不能把你的源代码(部分也可)
发给我参考一下!小弟不胜感激!我的email是sunhxun@21cn.com
 
每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,
必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。
 
多人接受答案了。
 
后退
顶部