1

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

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

[编辑]

    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 秒。

4

2 回答 2

1

你能举一个你的代码的例子吗?我怀疑你正在使用INPUT#n,但也许你应该使用INPUT$(x). 我在这里找到了一个示例,请参见下面的代码

a$ = ""
DO
IF LOC(1) THEN a$ = a$ + INPUT$(1, 1)
LOOP UNTIL INSTR(a$, "OK")
于 2015-05-13T12:37:20.193 回答
0

此代码示例演示在 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
于 2016-08-27T04:21:10.950 回答