在spcomm控件中,读写串口数据只能在OnReceiveData事件中接收,现在我有一个读卡设备,设备协议如下:
上位机PC通过发送控制命令给设备,设备去检查是否有卡,如果有卡则根据命令的要求读取卡上相应的扇区,并返回结果。我按下面的做法却遇到了问题,先把卡放在读卡设备上,发送命令控制命令,最后发现命令是已经传给设备了,但是设备返回给我一个错误码(没有读到卡)。而如果用MSCOMM做的话,处理方法是这样的,先把卡放在设备上,然后发送控制命令,但是因为MSCOMM没有接收事件,所以是自己写了一个循环去等待数据的到来并读取,这样做的话却是好的,不知道是什么原因?大家都来帮分析分析呢,是我的SPCOMM哪里设置不正确还是这样的方法思路不可行?

解决方案 »

  1.   

    你说的  都不成立  mscomm在OnComm 这个事件里能接收数据。
    spcomm 
    在这里发送Comm1.WriteCommData(bufer,length(bufer))
    你搜索一下  很多的  ,完全能够解决你所说的问题 的。关键可能你发送的东西不对 。才导致这样的结果
      

  2.   

    spcomm的接收事件工作原理是:只要缓冲区里面有数据他就会触发!
      

  3.   

    现在问题已经搞定了,而且已经全部读懂了SPCOM的源码并自己用API实现了一个类似但是是同步方式的串口控件,谢谢各位的帮助!