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


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

主题:串口接收数据问题

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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
串口接收数据问题  发帖心情 Post By:2019/9/17 12:49:00 [只看该作者]


此主题相关图片如下:qq截图20190917124303.png
按此在新窗口浏览图片

如上图, 用十进制 接收数据

 

想取"+"开始的数据,但怎么也判断不到“+” 是为什么啊。

 

Dim s As String=Ports("COM3").ReadExisting
Dim head As Integer = s.IndexOf("+")

If head>=0 Then
    ...

end if

 

这里head 返回总是-1

 


---------------

我复制了一组数据

+00000001B
+00000001B
+00000001B+0
0000001B+00000
001B+00000001B
+00000001B
+00000001B
+00000001B
+00000001B
+00000001B
+00000001B+0
  十六进制为


  00  02  2B  30  30  30  30  36  30  30  31  44  03

 厂家给的说明是

 

 


此主题相关图片如下:qq截图20190917125013.png
按此在新窗口浏览图片
[此贴子已经被作者于2019/9/17 12:51:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/17 13:44:00 [只看该作者]

Dim s As String=Ports("COM3").ReadExisting
msgbox(s) ‘显示什么内容?


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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2019/9/17 13:55:00 [只看该作者]

---------------------------
地磅.Form
---------------------------
+00000001B+00000001B+00000001B
---------------------------
确定  
---------------------------

 循环


此主题相关图片如下:qq截图20190917135216.png
按此在新窗口浏览图片

 

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

上述显示 好像没啥规律  12 ,36 等值

[此贴子已经被作者于2019/9/17 13:57:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/17 14:12:00 [只看该作者]

Dim s As String=Ports("COM3").ReadExisting
msgbox(Asc(s(0)))
msgbox(Asc(s(10)))
msgbox(Asc(s(11)))

上面分别显示什么?

Dim s As String=Ports("COM3").ReadExisting
s = s.replace(chr(2),"").s.replace(chr(3),"|")
msgbox(s)
dim sr() as string = s.split("|")
msgbox(sr.length)

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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2019/9/17 14:21:00 [只看该作者]

Dim s As String=Ports("COM3").ReadExisting
msgbox(Asc(s(0)))
msgbox(Asc(s(10)))
msgbox(Asc(s(11)))

 

 

2

66

3

 

 

Dim s As String=Ports("COM3").ReadExisting
s = s.replace(chr(2),"").s.replace(chr(3),"|")
msgbox(s)
dim sr() as string = s.split("|")
msgbox(sr.length)
 
有报错

---------------------------
错误
---------------------------
编译错误:“s”不是“String”的成员。

 

错误代码:s = s.replace(chr(2),"").s.replace(chr(3),"|")
---------------------------
确定  
---------------------------
是不是应该s.replace(chr(2),"") & s.replace(chr(3),"|")

[此贴子已经被作者于2019/9/17 14:22:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/17 14:52:00 [只看该作者]

s = s.replace(chr(2),"").replace(chr(3),"|")

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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2019/9/17 15:07:00 [只看该作者]

---------------------------
地磅.Form
---------------------------
+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|
---------------------------
确定  
---------------------------
 长度 16

想读取第一个+ 后截取后7位  但总是找不到+

[此贴子已经被作者于2019/9/17 15:24:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/17 15:27:00 [只看该作者]

dim sr() as string = s.split("|")
msgbox(sr.length)
for each s1 as string in sr
msgbox(s1)
next

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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2019/9/17 15:33:00 [只看该作者]

地磅.Form
---------------------------
9.N7+00000001B|+00000001B|+00000001B|+00000001B|+00000001B|
---------------------------
确定  
---------------------------

---------------------------
地磅.Form
---------------------------
9.N7+00000001B
---------------------------
确定  
---------------------------
---------------------------
地磅.Form
---------------------------
+00000001B
---------------------------
确定  
---------------------------

 

有个空的

是循环显示 通常显示的是 +00000001B


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


加好友 发短信
等级:三尾狐 帖子:742 积分:7255 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2019/9/17 15:43:00 [只看该作者]

需要把每一帧都这样处理吗? 直接找+ 第一次出现的位置去截取怎么找不到啊

 

Dim s As String=Ports("COM3").ReadExisting
MessageBox.Show(s)
 MessageBox.Show(s.IndexOf(chr(43)))

 

试了下 采用这样的办法可以找到 +

[此贴子已经被作者于2019/9/17 15:51:15编辑过]

 回到顶部