Main Content

fgetl (serial)

(将删除)读取设备中的 ASCII 文本行并丢弃终止符

serial 对象函数将在以后的版本中删除。请改用 serialport 对象函数。有关更新代码的详细信息,请参阅兼容性考虑

语法

tline = fgetl(obj)
[tline,count] = fgetl(obj)
[tline,count,msg] = fgetl(obj)

说明

tline = fgetl(obj) 从连接到串行端口对象 obj 的设备中读取一行 ASCII 文本,并将数据返回到 tline。该返回数据的文本行中不包含终止符。要包含终止符,请使用 fgets

[tline,count] = fgetl(obj) 将读取的值数返回到 count(包括终止符)。

如果读取操作失败,[tline,count,msg] = fgetl(obj) 会将一条警告消息返回到 msg

示例

在 Windows® 平台上,创建串行端口对象 s,将 s 连接到 Tektronix® TDS 210 示波器,使用 fprintf 函数写入 RS232? 命令。RS232? 指示该作用域返回串行端口通信设置。

s = serial('COM1');
fopen(s)
fprintf(s,'RS232?')

因为 ReadAsyncMode 属性的默认值为 continuous,因此数据将自动返回到输入缓冲区。

s.BytesAvailable
ans =
    17

使用 fgetl 读取早期写入操作返回的数据,并放弃终止符。

settings = fgetl(s)
settings =
9600;0;0;NONE;LF
length(settings)
ans =
    16

断开 s 与作用域的连接,并从内存和工作区中删除 s

fclose(s)
delete(s)
clear s

提示

能够从设备中读取文本之前,必须使用 fopen 函数将设备连接到 obj。已连接的串行端口对象的 open 属性值为 Status。如果尝试在 obj 未连接到设备时执行读取操作,将会返回错误。

如果不包含用作输出参数的 msg 并且读取操作失败,则会向命令行返回一条警告消息。

每次发出 fgetl 时,ValuesReceived 属性值将增加所读取的值的数目(包括终止符)。

注意

您无法使用超过 127 个字符的 ASCII 值。函数仅限于 127 个二进制字符。

使用 fgetl 完成读取操作的规则

使用 fgetl 进行的读取操作会屏蔽对 MATLAB® 命令行的访问,直至出现以下情况为止:

  • 已到达 Terminator 属性指定的终止符。

  • Timeout 属性指定的时间已过。

  • 输入缓冲区被填满。

注意

您无法使用超过 127 个字符的 ASCII 值。函数仅限于 127 个二进制字符。

版本历史记录

在 R2006a 之前推出

全部折叠

R2021a: serial 对象接口将被删除

将删除将此函数用于 serial 对象。要访问串行端口设备,请改为使用 serialport 对象及其函数和属性。

推荐的功能具有额外的能力和改进的性能。有关使用推荐功能的详细信息,请参阅Transition Your Code to serialport Interface

另请参阅

函数