我现在有一条线,一端是串口,连接到我的电脑上,另一端是PS/2口(键盘口),如何实现我向串口输出某个字符,在另外一台电脑上就能够显示出这个字符呢?????
以下是我做的测试程序,不过在另外一台电脑上显示的都是乱码!!!请各位大虾帮帮忙啊!!! Option Explicit
Private i As Integer
Private a As Variant
Private byteArray(1) As Byte
Private strSendData As StringPrivate Sub cmdSend_Click() strSendData = "61"
For i = 1 To Len(strSendData)
byteArray(i - 1) = CByte(Mid(strSendData, i, 1))
Next
MSComm.Output = byteArray
End SubPrivate Sub Form_Load()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm.InputLen = 0
' 打开端口。
MSComm.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm.InputMode = comInputModeBinary
'MSComm.InputMode = comInputModeText
End Sub
以下是我做的测试程序,不过在另外一台电脑上显示的都是乱码!!!请各位大虾帮帮忙啊!!! Option Explicit
Private i As Integer
Private a As Variant
Private byteArray(1) As Byte
Private strSendData As StringPrivate Sub cmdSend_Click() strSendData = "61"
For i = 1 To Len(strSendData)
byteArray(i - 1) = CByte(Mid(strSendData, i, 1))
Next
MSComm.Output = byteArray
End SubPrivate Sub Form_Load()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm.InputLen = 0
' 打开端口。
MSComm.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm.InputMode = comInputModeBinary
'MSComm.InputMode = comInputModeText
End Sub
byteArray = StrConv(strSendData, vbFromUnicode)
MSComm.Output = byteArray
到底是怎么回事啊???
而且MSComm.InBufferCount总是等于0,不知道这样对不对??
0:45
1:16
2:1E
3:26
4:25
5:2E
6:36
7:3D
8:3E
9:46
我不清楚ps/2接口的情况.
一般说:键盘是扫描码它分两次传输
你最好在第二台机器上用tc写一个键盘程序,用bioskey()来获取键值,int key;用printf("%d",key)显示
ps/2接口的工作模式跟com口的工作模式不一样的,com口有一个发射一个接收一个电源一个地线,而ps/2口却是一个数据端口,既可以发也可以收,并且还有一个时钟脉冲信息,通过时钟脉冲来控制数据流向的,所以从这个角度上讲,单纯的com口编程是不能满足ps/2口的需要的,你没有把ps/2口烧了已经是幸运了。如果确实想做这些,多找点ps/2工作模式的资料吧,最近就在做这样的东西,呵呵,一起努力吧