SPCOMM的接收过程如何在需要时触发/调用(50分)

  • 主题发起人 主题发起人 天空4567
  • 开始时间 开始时间

天空4567

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个多个设备通过通讯来协调工作的模块里,其一个过程中需要N次读串口,本希望每次读取的数据都需要进行计算和存储。
比如,在该模块里,读串口过程我调用了20次,可当我断点跟踪调试时,却发现,每次调用并不读数,当20次读过程都执行完毕后,程序才跳入ReceiveData()过程,然后,该过程执行一遍就读一次串口,一共也是20个数据。
所以,调用读串口过程,实际上只是往串口缓存里写。每个数据之间以'#13#10'结束。
显然,ReceiveData()过程的触发机制不符合我的需要。我需要每次调用读过程后都能直接把数据从接收缓冲区里取出来。
我该怎么办?
 
SPCOMM可以控制的。。
 
读出来判断一下格式是否是你需要的,是你需要的再进行处理可以吗?
 
读出来的是浮点格式的字符串,因使该串口总有不需要的数值产生,可SPCOMM是自动触发接收过程的。
怎样才能实现在需要时才启动串口的接收过程,并在启动前清空通讯缓存?
 
启动接受 SPCOMM.Start.
如果结果不对,你可以使用在SPCOMM的接收数据进行识别,
如果不需要可以临时关闭他。
spcomm.stop.
如果不想关闭,看数据是不是你要的数据在接收里判断啊。。。
onrecieveData事件控制。。
 
你的意思我看不明白。
 
不管串口传来的什么数据,是你需要的还是不需要的,前提是你必须把数据接收过来判断一下,也就是必须触发接收过程;
 
谢谢。请看我的题目是否说清楚了。急
 
用线程来实现串口的数据接收。因为SPCOMM和窗体在一个线程里,所以会等你串口写过程执行完毕后才启动onreceivedata()过程。
 
看看我的帖子,就在你下面,里面有源码,可以解决你的问题
可谁来解决我的问题啊?
 
谢谢各位。我已经解决了。结了。
 
多人接受答案了。
 
后退
顶部