【问】如何感应串口收到数据?(API版,不用Timer控件!!!)
请注意,这里是API社区!
问的就是用API编写的Comm控件里,如何实现OnComm事件
(用Timer控件的全部封杀!!!)
觉得WaitCommEvent比较合适,但听说要用到多线程。。。
那样的话,在IDE里就不能调试了吗?
不知能否有一些取巧的办法?
即不占用过多的系统资源,又能方便调试?
能否用段具体的代码来说说?
我还不会WaitCommEvent的用法呢,惭愧。。。。
[解决办法]
《_RS-232串口通信》里边讲的很详细。
[解决办法]
VB中使用MSCOMM控件,在其MsComm_OnComm写接收代码,不用TIMER控件:
Private Sub MsComm_OnComm()
Select Case Me.MSComm.CommEvent
Case comEvReceive
'写接收代码
End Select
End Sub
[解决办法]
要么在VB里开一个线程(不建议),要么用VC封装成DLL,由VB访问,用WaitCommEvent就可以判断出是否来数据,但是需要不断检测。总之,不需要时钟,那只能用线程了。
[解决办法]
注:采用VC封装的DLL要用回调的方式传入VB的函数指针。
[解决办法]
如果真能做到这些 .net版那个串口控件也不会长那样了
[解决办法]
为什么不用Mscomm,为什么不用时钟,我做项目,这两者都用,没有什么不妥。如果要求高性能,最好全部用VC做。
WaitCommEvent这个函数是个堵塞函数,负责监控你自己指定的信号(如数据接收,数据发送完毕等等事件)在线程中好使,我一般用WaitForSingleObject函数,这样超时一段时间即可返回。
[解决办法]
感觉还是Timer容易些,
请参考:可替代VB自带的Timer控件的Timer类
http://blog.csdn.net/modest/archive/2006/10/23/1346175.aspx
WaitCommEvent在vb里面要用多线程,否则会把自己堵死。
[解决办法]
我看还是用汇编来写吧.....
现在的WIN32汇编好象比较容易理解了.....
基本上都是API来API去的....
[解决办法]
楼上的监视程序写好了给我发一份。
好像用驱动方式写, 我找 了一个。 老蓝屏。
没辙。
我的邮箱 mysticboys@gmail.com