sos ...!! 串口通讯问题!!!分数不够可以再加。(100分)

  • 主题发起人 主题发起人 ggscw
  • 开始时间 开始时间
[:D]daidxt@etang.com
 
其他部分基本完工。。。就差通讯了。。。!! help
 
接受数据,分析,查看命令号,做相应的工作
 
行素 ,具体一点点可以吗? 我是这方面的菜鸟(第一个串口程序)

如:我想采集--显示 我输入的xxxx编号设备的数据。。。。

我需要知道下位机的具体那些资料???
目前只知道几个命令格式:$xxxxc 清除存储数据
$xxxxa 从计算机串口读取存储的全部数据
$xxxxb 从无线电台读取存储的全部数据
$xxxxd 读取当前的数据
$xxxxe 停止读取存储数据
$xxxxg 按设定的存储采样周期读取数据

 
《delphi串口通信编程》有没有电子版的
 
怎么没人说话???

问题太简单。。。不会吧,大家都是高手!!!!!!!

还是。。。。。。。。也不太可能啊!
 
一般来说,可以直接调用WIN32 API函数直接编程控制串口读写,可以设置以同步或异步
方式读写数据,同步读写比较简单,而异步读写则涉及到多线程以及线程同步
 
楼主,命令格式:$xxxxzyyyy的Z是字符了,X,Y等都是什么数据类型知道吗?如果不知道就要自己分析了
你可以用“串口调试助手”这个程序,里面有16进制显示功能,可以帮你分析收到的数据是什么。
这个程序你可以在网上找到的,不行的话我发给你。
还有就是实时性要求高吗,如果不高可以用SPCOMM这个控件。我最近也在做串口编程,SPCOMM的实时性
不好,我做的是86字节一组的数据,0。1秒传一组,SPCOMM承受不了,0。3秒传一组就稳定了。CPORT实时性挺好,
但我也是今天刚用,还不怎么会,一会还要问别人。
还有就是我劝你还是立足于自己,DFW上熟悉串口编程的人看来不多,回答问题的多数是人云亦云,根本就
没做过或者没验证过的东西就帖上来了,象上面那个SPCOMM的例子是张海航编的,网上到处都是,其中
move(buffer^,pchar(@rbuf^),bufferlength)是错的,总有人引用却不知修正,说明他们根本没用过这个控件,
楼上“chenxz”的答案是对的。
 
seagod007,谢谢以后请多指教。。。。。

我已经开始自己调试了(买了本书),因为下位机的设备没有,我现在直接短接串口。。。!

看来真的如你所言,论坛中的大富翁都对底层的东西不感兴趣。。。。。
 
向串口写数据
MSCOMM1.OUTPUT := '$xxxxzyyyy';
 
to seagod007
你的想法错误了!spcomm控件可以快速的发送接收数据,只是你对其中的参数了解不多罢了。
不信的话,你可以试试这个程序:
这是一个小巧而功能强大、齐全的多串口调试工具.是单片机通讯开发、工业串口
控制的最佳助手。

这个程序就是以spcomm控件为基础修改完善后作出来的。

MultiComWatch
下载地址:
华军软件园:http://www.onlinedown.net/mcom.htm
http://bj.onlinedown.net/mcom.htm
http://sz.onlinedown.net/mcom.htm
天空软件园:http://www.skycn.com/soft/9280.html
视点软件园:http://www.citytea.com/download/list.Asp?id=854
99软件站: http://www.99soft.com/soft/6820.htm
中国软件: http://www.downme.net/soft_detail.php?nbr=21235
 
function ReadPort(Port:WORD):BYTE;

procedure WritePort(Port:WORD;ConByte:BYTE);

function ReadPort(Port:WORD):BYTE;

var

B:BYTE;

begin

ASM

MOV DX, Port;

IN AL, DX;

MOV B, AL;

END;

Result:=B;

end;

procedure WritePort(Port:WORD;ConByte:BYTE);

begin

ASM

MOV DX, Port;

MOV AL, ConByte;

OUT DX, AL;

END;

end;
希望以上函数能给你启发…………
 
后退
顶部