我正在使用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秒才回复。
发布于 2015-05-13 12:37:20
你能举个你的代码的例子吗?我怀疑您正在使用INPUT#n,但也许您应该使用INPUT$(x)。我找到了一个这里的例子,参见下面的代码
a$ = ""
DO
IF LOC(1) THEN a$ = a$ + INPUT$(1, 1)
LOOP UNTIL INSTR(a$, "OK")发布于 2016-08-27 04:21:10
此代码示例演示如何在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
ENDhttps://stackoverflow.com/questions/30207874
复制相似问题