打开输入和输出的串行端口
语法
用法
result  = Open Com( options , As[#] filenum  )
参数
options 
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,数据位= 5 | 1.5 | 
| 波特率<= 110,数据位>= 6 | 2 | 
| 波特率>110 | 1 | 
 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:”
 方言差异
与QB差别
- 在QB中,语法为OPEN“COMx:[baudrate][,parity, [data_bits, [stop_bits, [extended_options]]]]”FOR INPUT | OUTPUT | RANDOM AS [#]n 
 
- 在QB中,仅支持“COM1:”和“COM2:”.在FreeBASIC中,可以使用任何正确配置的串行端口。
 
 
 参考