大家好!以下是我的POS顾客显示器调用代码,可就是没有任何显示,但最后一行关闭端口倒是有效果的,客显全暗了'**功能描述:客显单价指令调用
'**全局变量:
'**调用模块:
'**日    期:2010-01-22 14:28:23
'**修 改 人:
'**日    期:
'**版    本:V1.0.0
'*************************************************************************
Private Sub cmdPrice_Click()
    Dim FileNo     As Long
    Dim i As Long
    FileNo = FreeFile()
    Open "COM1" For Output As #FileNo
    '显示单价
    Print #FileNo, Chr(27) & "@"                                '初始化
    Print #FileNo, Chr(27) & "CLR"                              '清空显示
    Print #FileNo, Chr(27) & "Q" & "C" & "总计" & "CR"          '显示单价
    Print #FileNo, Chr(27) & "Q" & "A" & "12.10" & "CR"          '显示金额
    Print #FileNo, Chr(27) + "S" + "2"                                 '单价灯亮
    DoEvents
    Close #FileNo
End Sub

解决方案 »

  1.   

    你确定接口格式是字符串 "CLR"、"CR",而不是单个字符 Chr(12)、vbCr?
      

  2.   

    这个我也不清楚,我是第一次做POS机开发,这个也是网上找的例子
    顾客显示器都是DIY-LED8的,三无产品,包装箱里什么都没有啊,郁闷
      

  3.   

    LZ:打开COM口的代码似乎缺少了波特率数据位等的设置.Open "Com1:9600,n,8,1" For Output As #1
        '.........
    Close #1输出到屏幕的语句是:
    Open "SCRN" For Output As #1
        '......
    Close #1
      

  4.   

    哦,我试一下啊,不过,顾客显示器端口应该是COM2
      

  5.   

    Dim FileNo     As Long
        Dim i As Long
        Dim cPort As String
        If Len(g_WindowPort) = 0 Then Exit Sub
        cPort = g_WindowPort & ":9600,n,8,1"
        FileNo = FreeFile()
        
        Open cPort For Output As #FileNo
        '显示总计
        Open "SCRN" For Output As #FileNo
        Print #FileNo, Chr(12)                                          '//清除顾显
        Print #FileNo, Chr(27) + Chr(81) + Chr(65) + CStr(Format(iSumMoney, "0.00")) + vbCr '//显示信息
        Print #FileNo, Chr(27) + Chr(115) + Chr(50)                     '//总计灯亮
        '关闭端口
        Close #FileNo
    以上代码正确吗?
      

  6.   

    我在6楼仅是纠正BASIC打开串口设备语句必须要有通信参数,能否有用,仅供参考.
    产品谁提供,就向他要必要的资料或DEMO代码.
      

  7.   

    谁提供一下通用的DIY-LED8顾客显示器的显示代码?
      

  8.   

    LZ:你代码的运行环境是WINDOWS及VB6吗?
      

  9.   

    是的,WIndows XP 加VB6
      

  10.   

    LZ:那得使用MSCOMM控件来实现串口通信.
      

  11.   

    Option Explicit
        Dim iSumMoney
    Private Sub Command1_Click()
        MSComm1.Output = Chr(12) '//清除顾显
        MSComm1.Output = Chr(27) + Chr(81) + Chr(65) + CStr(Format(iSumMoney, "0.00")) + vbCr '//显示信息
        MSComm1.Output = Chr(27) + Chr(115) + Chr(50) '//总计灯亮
    End SubPrivate Sub Form_Load()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1" '假定波特率是9600,数据位8位,停止位1位,无校验位
        MSComm1.PortOpen = True
    End Sub
    再问:POS机的运行环境是啥?
      

  12.   

    将 "CLR"、"CR" 换成  Chr(12)、vbCr 试试。
      

  13.   


    POS机的运行环境是Windows XP
      

  14.   


    那就是使用类似我在19楼的代码,关键是你那个POS机显示屏所需要的通信指令是啥?
    这可以通过那些好的机器的串口输出中用串口调试助手来获得.
    只能这么认为,不显示的屏硬件有问题.
      

  15.   

    想知道具体通信,用串口监视软件啊.要不简单的,把能正常显示的计算机的com口,连接到另外一个计算机2的com口,2,3脚电线交叉...自己在计算机2上做个vb程序接收,看看发来的数据.以前做过一个软件的远程显示端的分析,就用了2个计算机,..