spcom的使用问题?没有人知道吗???为什么??请串口通讯高手支援!!! (100分)

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

shadowno

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做一个串口通信程序,用的是spcomm控件,可做到现在好像该控件不能完成我的需求:
分机调试设备:一台计算机用超级终端,另一台安装我的串口通讯程序,
结果:
当我在超级终端上输入数据时,我的串口通信程序接收完全正确,我的程序向超级终端发数据时,也时正确的(此时为按键输入,包括按住一个键延时放开),
但当我在超级终端上使用复制-》粘贴到主机时就产生错误,我程序中的接收数据完全不同,例如:我复制1234567890然后粘贴到主机,我程序中收到的数据却是:
1?S
草8N
?
共三行。
怎么会这样???????????????????????
 
你的那个三行是不是把收到的用字符串输出??
你用第三方的串口监视程序看一下数据是什么(一般可以用16进制表示)??
才好分析是哪里出问题了
不会是spcomm的问题,我一直用的好好的
 
我是以ASCII码的行驶收发数据的!
 
一般不会是spcomm的问题。
我串口一般用Comport2.63
 
串口通讯的波特率,数据位,停止位,校验位,流控制一般要求两端都一样。
还有如果只使用了三根线,则不能使用硬件流控制。
 
http://asp.6to23.com/wuqiu/mysoft/spcomm_example.rar
spcomm的使用例子
 
我以上设的是 波特率:19200,数据位:8。停止位:1 奇偶校验:none 流量控制:无
两台机器的设置相同,
下面我更改了参数:
波特率:19200,数据位:8。停止位:2 奇偶校验:none 流量控制:无
把停止位改成2位,就正确了。
在超级终端上复制-》粘贴也没问题了
怎么会这样,???????????????

问题是我是要和下位机通信下位机的设置是
波特率:19200,数据位:8。停止位:1 奇偶校验:none 流量控制:无
所以这还不是根本的办法,我该怎么办呀????



 
spcomm接收的可不是字符串,你需要处理一下,才能正常
给你一段接收代码,我程序中的
procedure TFrmMain.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
viewstring:string;
i:integer;
begin
Move(Buffer^,pchar(@ReceiveBuffer)^, bufferlength);

for i:=0 to bufferlength-1 do
begin
viewstring:=viewstring+inttohex(ReceiveBuffer,2)+' ';
end;
viewstring:='接收:'+viewstring;
MemoMSG.Lines.Add(viewstring);
MemoMSG.Lines.Add('');
if memoMSG.Lines.Count >500 then
memoMSG.Clear ;
viewstring:='';
MemoMSG.Invalidate;
End;
 
是有点麻烦。
试试在系统属性里更改串口的设置,或者改完后把超级终端重新启动一下。
按理来说,现在你能收得到字符了,那么程序就是没有问题的了呀。
再试试吧。
 
唉!命苦呀!
 
你试过用其他串口监视软件监视数据了吗??
 
什么监视软件???
 
就是看超级终端到底发了什么东西,
如果你没有,我弄一个给你
cook@sina.com
 
谢谢!
mhn2000@sina.com
 
没错,超级终端显示的是ASCII码,最好用专门的软件以16进制方式查看一下!
试试下面这个!
http://www.mcu51.com/list.asp?id=178
sscomV20 delphi版 (438K) windows界面的串口数据调试软件,绿色软件
希望能帮到你!

BTW:你写的程序是利用Modem的吗?如果是,可否指教?
我的帖子 http://211.101.4.25/delphibbs/dispq.asp?lid=1153872
 
怎么没有人回答了,都没遇到过类似的问题吗?
 
sorry!
http://asp.6to23.com/wuqiu/mysoft/spcomm_example.rar spcomm的使用例子
解压密码:www.lvyin.net
你是用什么方法给我留言?我一登陆就看到了?
 
还没解决,把你的代码贴出来让大家看看不就行了。
一直在那里说,大家又不知到是不是你的代码有问题。
 
后退
顶部