Open Com
 
打开输入和输出的串行端口

语法

Declare Function Open Com ( byref options As String, As filenum As Integer ) As Integer

用法

result = Open Com( options , As[#] filenum )

参数

options
A 包含用于控制端口的选项。
filenum
要绑定到端口的文件编号。

返回值

成功返回零(0),否则返回非零错误代码。

说明

该命令打开PC的串行端口,允许使用正常的文件命令Print #Input #Get #,...发送和接收数据

主要参数是一个String,至少描述了要打开的通信端口。它有格式:

"Comn : [ baudrate ][ , [ parity ][ , [ data_bits ][ , [ stop_bits ][ , [ extended_options ]]]]]"

其中,
n
Com端口打开。"1""2""3""4"等某些平台将支持更多的串行端口,这取决于操作系统的配置方式。n 未提供"COM:""COM:"将映射到"COM1:",除非在"COM:"映射到"/dev/modem"
baudrate
"300"(默认),"1200",...等
parity
"N"(无),"E"(偶数,默认),"O"(奇数),"S"(空格),"M"(标记),"PE"(QB-quirk:
data_bits
"5""6""7"(默认)或"8".
stop_bits
"1", "1.5" or "2".(default value depends on baud rate and data bits, see table below)

条件默认停止位数
波特率<= 110,数据位= 51.5
波特率<= 110,数据位>= 62
波特率>1101

extended_options
杂项选项。(See table below)

选项行动
'CSn'设置CTS持续时间(以ms为单位)(n >= 0),0 =关闭,默认= 1000
'DSn'设置DSR持续时间(以ms为单位)(n >= 0),0 =关闭,默认= 1000
'CDn'设置载波检测持续时间(以ms为单位)(n >= 0),0 =关闭
'OPn'设置“打开超时”(以ms为单位)(n >= 0),0 =关闭
'TBn'设置“发送缓冲区”大小(n >= 0),0 =默认值取决于平台
'RBn'设置“接收缓冲区”大小(n >= 0),0 =默认,取决于平台
'RS'抑制RTS检测
'LF'以ASCII模式进行通信(将LF添加到每个CR) - Win32不支持此函数
'ASC'与“LF”相同
'BIN'LF的相反,它将永远奏效
'PE'启用“奇偶校验”检查
'DT'关闭后保持DTR有效
'FE'错误地丢弃无效字符
'ME'忽略所有错误
'IRn'COM的IRQ号(仅在DOS上支持(?))


除COM端口外的所有项目都是可选的。 波特率,奇偶校验,data_bits,stop_bits的顺序是固定的。 任何跳过的固定项(波特率等)都必须为空。

例子

Open Com "COM1:9600,N,,2" As 1

打开COM1 9600波特,无奇偶校验,7个数据位和2个停止位。

Open Com "COM1:115200" As 1

使用115200波特,“偶数”奇偶校验,7个数据位和1个停止位打开COM1。

平台差异

  • 在Windows平台“COM:”映射到“COM1:”
  • 在Linux平台上
“COM:”映射到“/ dev / modem”
“COM1:”映射到“/ dev / ttyS0”
“COM2:”映射到“/ dev / ttyS1”
“/ dev / xyz:”映射到“/ dev / xyz”
  • DOS串行驱动程序是实验性的,可以访问COM端口1到4
它使用以下基础io和IRQ作为默认值:
COM1 - &H3F8 - IRQ4
COM2 - &h2f8 - IRQ3
COM3 - &h3e8 - IRQ4
COM4 - &h2e8 - IRQ3
由于fbc-0.18.4,可以使用“IR n 协议选项指定备用IRQ,其中n 3 7 .
目前不支持:IRQ在从站PIC,备用的基本I / O地址,超时和大多数错误,如QB中检测到的,硬件流控制,FIFO。
“COM:”映射到“COM1:”
方言差异

  • -lang qb 方言中,支持旧的语法OPEN“COMx:... ”。

与QB差别

  • 在QB中,语法为OPEN“COMx:[baudrate][,parity, [data_bits, [stop_bits, [extended_options]]]]”FOR INPUT | OUTPUT | RANDOM AS [#]n
  • 在QB中,仅支持“COM1:”“COM2:”.在FreeBASIC中,可以使用任何正确配置的串行端口。

参考