SPCOMM控件的BUG?(50分)

  • 主题发起人 主题发起人 soit
  • 开始时间 开始时间
S

soit

Unregistered / Unconfirmed
GUEST, unregistred user!
我用SPCOMM这个控件做与单片机通讯的实验时,发现每当单片机发送十六进制数11和13时,计算机端口好象死掉了,需重新运行该程序或执行
comm1.stopcomm;
comm1.startcomm;
才恢复正常,请问这是怎么一回事?有什么解决办法吗?
 
我用过spcomm没发现这种情况。你再查查程序。
 
SPCOMM 中以 13 和 11 做 XOFFCHAR 和 XONCHAR
我估计和此有关
 
11,13 is hex number (ctrl-s,ctrl-q)
 
那这个问题怎么解决呢?十万火急,谁能帮我,我再多给50分
我的程序使用SPCOMM做的,不可能换控件了
 
把相关的程序代码贴上来看看吧。
 
你可以修改XONCHAR 和 XOFFCHAR 的值试试
将 #17 和 #19 改为其他值

 
改为其他值,那么在接受这些值时,还不是会死掉端口?
单片机发送#11和#13不会有问题
我用SPCOMM接受时,在RECIEVEDATA事件中用下列代码
setlength(recmsg,bufferlength);
move(buffer^,pchar(recmsg)^,bufferlength);
 
我的意思是改为其他不常用的字符.
另: 你也可在单片机方面编程.(不一定非要用到XON/XOFF协议的)
上述的程序没问题.不过我是用
MOVE(BUFFER^,RECMSG[1],BUFFERLENGTH);

 
单片机发来的是它对某个仪表的读数,每个数字都可能碰到
另:单片机上的程序不是我编的,我对汇编语言一直是敬而远之。也没学好。
有没有其他变通的办法呢?
 
把OUTX_XONXOFFFLOW 的值改为FALSE 试试.
 
guo_qpeter,另外50分,找“SOIT给guo_qpeter分”这个问题。

 
接受答案了.
 

Similar threads

D
回复
0
查看
778
DelphiTeacher的专栏
D
D
回复
0
查看
818
DelphiTeacher的专栏
D
后退
顶部