我现在有一条线,一端是串口,连接到我的电脑上,另一端是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

解决方案 »

  1.   

    这样转为字节数组:Private byteArray() As Byte
    byteArray = StrConv(strSendData, vbFromUnicode)
    MSComm.Output = byteArray
      

  2.   

    不行啊!!不知道怎么回事???发过去的东西,有时根本没有反映,有时显示乱码!!
    到底是怎么回事啊???
    而且MSComm.InBufferCount总是等于0,不知道这样对不对??
      

  3.   

    我这里有个16进制键盘中断码,不知道对各位是否有帮助?
    0:45
    1:16
    2:1E
    3:26
    4:25
    5:2E
    6:36
    7:3D
    8:3E
    9:46
      

  4.   

    这样作是不对的.
    我不清楚ps/2接口的情况.
    一般说:键盘是扫描码它分两次传输
    你最好在第二台机器上用tc写一个键盘程序,用bioskey()来获取键值,int key;用printf("%d",key)显示
      

  5.   

    本来以为能看到点不清楚的东西,原来都不是很清楚。
    ps/2接口的工作模式跟com口的工作模式不一样的,com口有一个发射一个接收一个电源一个地线,而ps/2口却是一个数据端口,既可以发也可以收,并且还有一个时钟脉冲信息,通过时钟脉冲来控制数据流向的,所以从这个角度上讲,单纯的com口编程是不能满足ps/2口的需要的,你没有把ps/2口烧了已经是幸运了。如果确实想做这些,多找点ps/2工作模式的资料吧,最近就在做这样的东西,呵呵,一起努力吧