【问题标题】:Qbasic reading comport reply without newline没有换行符的Qbasic阅读comport回复
【发布时间】:2015-05-13 07:05:11
【问题描述】:

我正在使用 QBasic 阅读设备回复。问题是 qbasic 在输出数据之前等待换行符或 CHR$(13) 但我的设备回复没有 CHR$(13) (例如:“OK”)所以 qbasic 挂起等待换行符。

即使没有换行符,我如何才能获得回复或阅读报告?这可能吗?

[编辑]

    CLS
     OPEN "com2:9600,n,8,1,BIN,cs,ds,rs" FOR RANDOM AS #1
    param$ ="Some data"
     PRINT #1, param$
      DO WHILE b$ <> "*CLOSE*"
       INPUT #1, b$
       PRINT b$
     LOOP

这是我的代码,但在该代码中它无法读取 *CLOSE*,因为在 *CLOSE* 之后没有换行符。

另一件事是设备在回复前延迟了 5 秒。

【问题讨论】:

    标签: reply qbasic


    【解决方案1】:

    您能举一个您的代码示例吗?我怀疑您使用的是INPUT#n,但也许您应该使用INPUT$(x)。我找到了一个example here,见下面的代码

    a$ = ""
    DO
    IF LOC(1) THEN a$ = a$ + INPUT$(1, 1)
    LOOP UNTIL INSTR(a$, "OK")
    

    【讨论】:

    • 我简单使用`INPUT #1, data$ PRINT data$ `
    【解决方案2】:

    此代码示例演示如何在 Basic 中访问调制解调器。

    REM Reset modem source:
    CLS
    OPEN "COM2:9600,N,8,1,BIN,CS,DS,RS" FOR RANDOM AS #1
    Reset$ = "ATZ" + CHR$(13) + CHR$(10)
    PRINT #1, Reset$;
    Inp$ = ""
    DO
        IF LOC(1) THEN
            Inp$ = Inp$ + INPUT$(1, 1)
            IF INSTR(Inp$, "OK") THEN
                PRINT "Modem reset."
                EXIT DO
            END IF
        END IF
    LOOP
    END
    

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多