串口数据捕获(200分以上) (50分)

  • 主题发起人 yanghai0437
  • 开始时间
Y

yanghai0437

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样监视已经打开的串,就是串口数据捕获.
当有程序从串口发送数据时我可以得到
 
You can use PortMon
 
你是想做程序收数据呢
还是只想看看
只想看看用超级终端都行了
想自己做程序我推荐用spcomm
 
绝对高难的问题,好像串口只能被“独占”方式发开,只能在外部数据来源上动点脑筋了。
 
to qdshen:
PortMon是要收费的1450RMB,我现在不打算用这个
to chenzheng770101:
mscomm可能不行,被其他程序占用后mscomm就不能打开了。
to t365:
spcomm可以打开已经被其他程序占用的端口吗?
 

有兴趣。
 
方法:
1.用汇编监视端口,API函数都要求独占串口
2.在串口上并联一根线接到另一个串口上
 
to wang_junfan:
1、汇编代码你有吗
2、我不想用其它外设
 
to yanghai0437:
PortMon好像是免费的啊?!
我Mail一个给你得了,要不要?
 
to qdshen:
谢谢,我已经有portmon,但是我是想自己编程实现他的功能,如果你有好的方法
请告诉我。
 
监视com1
var
flag:byte;
begin
asm
mov flag,00h
mov dx,3fdh
in al,dx
and al,01h
cmp al,01h
jne @com_in1
mov flag,01h
@com_in1:
end;
end;
flag为1则收到数据
若com2将3fdh改成2fdh即
 
收数据:
var
k:byte;
begin
asm
mov dx,3f8h
in al,dx
mov k,al
end;
end;
若com2将3f8h改成2f8h即可
 
http://www.sysinternals.com

Using Portmon

free
for 98/nt/2k
good
 
to wingerk
那个网站我去了,portmon没有源代码
to wang_junfan
in al,dx//在NT下这一句不能通过,Error:privileged instruction
好像是说我没有特权。

 
NT下我也没有什么办法,因为NT下直接操作端口需要特权,我不会VXD,
还是试试用其他办法,或者从串口上并一根线连到计算机上的另一个串口
然后读另一个串口的数据。
 
to yanghai
我没用过PortMan,我是直接用CreateFile来和串口通讯的,以前我回答过串口通讯方面
的问题,还帖过Delphi的代码,你到“网络通讯”里面的已答帖子里去找吧。如果没找到,
写信给我,我把代码给你。
 
to:吕雪松
我刚才查看了所有通讯/网络的贴,没有是关于我的问题的,
我想应该是wang_junfan说的要用到VXD驱动程序才行,可是我
不会写,不知道你能不能教我.
 
这个问题超~超~超级难
用汇编也也不行,我以前试过。
改VXD驱动程序也不行。
甚至换到dos下面也不行,
linux下面也不行。

哪位大大又解决的办法,请贴出来

 
顶部