关于串口通信
我在做一个关于串口通信的程序,用的pcomm.dll,
所以需要create一个串口,然后打开,如代码:
ControlorComm := TSComCtrl.Create(zyAccessConfig.CtrlorPort);
ControlorComm.SetBaudRate(zyAccessConfig.CtrlBaud); //默认的波特率为9600
然后注册函数:
ControlorComm.RegisterIrq(ControlCommReceiveData);
ControlorComm.Open;
我想问的是,我想注册另外一个函数ConfigCommReceiveData;
我的操作是:
ControlorComm.close;
ControlorComm.RegisterIrq(ConfigCommReceiveData);
ControlorComm.Open;
但是这样导致之前用ControlCommReceiveData这个函数的功能失效了,
把close去掉就好了,这是为什么?
重新注册函数之前不应该先close上一个函数么?
[解决办法]
弄串口通信,为什么不用SPComm3.pas控件呢?既安装简单(即使仅引用不安装也行)又好用,它里面是使用多线程控制的,若感兴趣,留个邮箱,我给你邮过去。
[解决办法]
使用SPComm3.pas还有一个好处是:发布你的软件时,不必附带你那个DLL文件!!
[解决办法]
除了楼上说的spcomm,还有cport控件,都是简单好用强大的
pcomm这个串口注册是干嘛用,串口干嘛还要注册?
[解决办法]
PComm很好用的
PComm中 Irq回调函数有好几个,
不知道RegisterIrq在内部调用了哪个函数以及RegisterIrq是怎么实现的 所以不能给出更多的建议