Foxtable(狐表)用户栏目专家坐堂 → 串口接收的问题


  共有2742人关注过本帖树形打印复制链接

主题:串口接收的问题

帅哥哟,离线,有人找我吗?
54292550
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:289 积分:4258 威望:0 精华:0 注册:2011/8/19 10:07:00
串口接收的问题  发帖心情 Post By:2015/11/21 22:35:00 [只看该作者]

在串口接收数据中用了下面两个命令,正常来说串口数据都有换行符或者结束符号,如果遇到特殊情况,串口数据没有换行符或者结束符就会报错,怎么能忽略掉这些信息不让报错呢?

ReadLine 读取输入缓冲区的字符,直到遇到换行符, 返回的内容不会包括换行符。
如果读取过程没有遇到换行符,将引发超时错误。

示例

Dim s As String
s = Ports(
"COM2").ReadLine()

ReadTo 读取输入缓冲区的字符,直到遇到指定的结束符,返回的内容不会包括此结束符。
如果读取过程没有遇到指定的结束符,将引发超时错误。

语法:

ReadTo(Value)

Value:指定的结束符

示例:

Dim s As String
s = Ports(
"COM2").ReadTo("|")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/22 14:28:00 [只看该作者]

方法一:try catch

 

http://www.foxtable.com/help/topics/2070.htm

 

方法二:用read以后,自己判断是否有换行符。

 

Read 从输入缓冲区读取一些字节,并将这些字节写入字节数组中指定的偏移量处。

语法:

Read(buffer, offset, count)

buffer: 字节数组,从输入缓冲区中读取的字节将写入此数组。
offset: 开始写入的偏移量。
count:  要读取的字节数。

示例

Dim cnt As Integer = Ports("COM2").BytesToRead
If
cnt > 0 Then '缓冲区是否有数据
    Dim
Val(cnt - 1) As Byte
   
Ports("COM2").Read(val,0,cnt)
End If


 回到顶部