关于串口接受字符串换行问题

jinzhuduan 2010-05-13 09:22:52
↑:68 88 00 00 00 00 00 68 01 02 53 C4 72 16


↑:68 88 00 00 00 00 00 68 01 02 64 E9 A8 16


↑:68 88 00 00 00 00 00 68 01 02 65 E9 A9 16


↑:68 88 00 00 00 00 00 68 01 02 66 E9 AA 16


↑:68 88 00 00 00 00 00 68 01 02 84 E9 C8 16


↑:68 88 00 00 00 00 00 68 01 02 85 E9 C9 16


↑:68 88 00 00 00 00 00 68 01 02 86 E9 CA 16


↑:68 10 00 00 00 00 00 68 01 04 33 B3 33 33 31 16


↑:68 03 00 00 00 00 00 68 01 04 33 B3 33 33 24 16
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了
...全文
1316 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvyanyurong 2011-09-05
  • 打赏
  • 举报
回复
前提是要把编辑框设置成多行吧
d419192480 2010-06-25
  • 打赏
  • 举报
回复

个人认为 换行的方式有两种:
1。发出字符串的函数在发出内容的后面 再发出 回车换行,接收端自动换行。
2。接收端根据你的规律来解析 接收到的字符,这里除非你的串口是 字符模式(相对于行模式)。

这两种方式不知道可行性怎么样?楼主可以试试,在这里告诉下结果,谢谢
jinzhuduan 2010-05-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zdingyun 的回复:]

VB code
Private Sub Command1_Click()
tj
End Sub

Private Sub tj()
Dim Entry, I
For I = 1 To 10 ' 计数值从 1 到 100。
If I Mod 3 = 0 Then
Entry = "↑:68 10 00 00 00 00 00 68 ……
[/Quote]
wo 我的那个↑:68 10 00 00 00 00 00 68...是一个变动的字符串,所以不能固定这个格式,你也看到了,所以你这样的固定输出可能不行
zdingyun 2010-05-17
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
tj
End Sub

Private Sub tj()
Dim Entry, I
For I = 1 To 10 ' 计数值从 1 到 100。
If I Mod 3 = 0 Then
Entry = "↑:68 10 00 00 00 00 00 68 01 04 33 B3 33 33 31 16" ' 创建输入项。
List1.AddItem Entry ' 添加该输入项。
Else
List1.AddItem ""
End If
Next I
End Sub
of123 2010-05-17
  • 打赏
  • 举报
回复

1 用 Split 函数将你的数据逐条分开。


2 循环,用 List1.AddItem 将分割开的行加入到 ListBox 中。
zdingyun 2010-05-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jinzhuduan 的回复:]
我的那个↑:68 10 00 00 00 00 00 68...是一个变动的字符串,所以不能固定这个格式,你也看到了,所以你这样的固定输出可能不行
[/Quote]
LZ:给出的代码仅是提供一种思路,别人又不知道你自己的代码是如何写的!
jinzhuduan 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zdingyun 的回复:]
引用楼主 jinzhuduan 的回复:

↑:68 10 00 00 00 00 00 68 01 04 33 B3 33 33 31 16


↑:68 03 00 00 00 00 00 68 01 04 33 B3 33 33 24 16
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了



引……
[/Quote]
我要怎么说,大伙才能明白呢?你有qq吗?加我29426977,先谢谢你了,麻烦你这么久
zdingyun 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 jinzhuduan 的回复:]

↑:68 10 00 00 00 00 00 68 01 04 33 B3 33 33 31 16


↑:68 03 00 00 00 00 00 68 01 04 33 B3 33 33 24 16
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了
[/Quote]

[Quote=引用 6 楼 jinzhuduan 的回复:]
你好,你说的很对,可是我箱在listbox中实现这个换行的功能,就是我出现上面的那种格式,我很想知道他们是如何实现这样的功能的,能不能附一些代码给我呢?xiexie
[/Quote]

[Quote=引用 10 楼 jinzhuduan 的回复:]
你好,你能仔细看看我发送字符的格式吗?就在最上面,他们每行是不一样的
[/Quote]

需要了解的是你实际发送的数据包的通信协议的约定,旁人是猜测不了的.此外你的串口监听单片机发出字符串的功能代码究竟是如何写的?
jinzhuduan 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zdingyun 的回复:]
引用 6 楼 jinzhuduan 的回复:
你好,你说的很对,可是我箱在listbox中实现这个换行的功能,就是我出现上面的那种格式,我很想知道他们是如何实现这样的功能的,能不能附一些代码给我呢?xiexie

可是我想在listbox中实现这个换行的功能
那就使用
AddItem 方法
用于将项目添加到 ListBox

AddItem 方法示例
本示例使用 Addltem……
[/Quote]
你好,你能仔细看看我发送字符的格式吗?就在最上面,他们每行是不一样的
zdingyun 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jinzhuduan 的回复:]
你好,你说的很对,可是我箱在listbox中实现这个换行的功能,就是我出现上面的那种格式,我很想知道他们是如何实现这样的功能的,能不能附一些代码给我呢?xiexie
[/Quote]
可是我在listbox中实现这个换行的功能
那就使用
AddItem 方法
用于将项目添加到 ListBox

AddItem 方法示例
本示例使用 Addltem 方法增加 100 项给一个列表框。要检验此示例,可将本例代码粘贴到一个带有被命名为 List1 的 ListBox 控件的窗体的声明部分,然后按 F5 键并单击该窗体。

Private Sub Form_Click ()
Dim Entry, I, Msg ' 声明变量。
Msg = "Choose OK to add 100 items to your list box."
MsgBox Msg ' 显示信息。
For I = 1 To 100 ' 计数值从 1 到 100。
Entry = "Entry " & I ' 创建输入项。
List1.AddItem Entry ' 添加该输入项。
Next I
Msg = "Choose OK to remove every other entry."
MsgBox Msg ' 显示信息。
For I = 1 To 50 ' 确定如何
List1.RemoveItem I ' 每隔一项
Next I ' 删除。
Msg = "Choose OK to remove all items from the list box."
MsgBox Msg ' 显示信息。
List1.Clear ' 清除列表框。
End Sub

jinzhuduan 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tiger_zhao 的回复:]
VB code
s = 接收字符串()
s = replace(s, "↑:", vbCrLf & "↑:")
[/Quote]
你好,能不能具体点呢?或者串口的代码 能给我点吗
jinzhuduan 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 veron_04 的回复:]
引用 3 楼 zdingyun 的回复:
引用楼主 jinzhuduan 的回复:
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了

依据你贴出的数据帧结构,每帧字节数有14或16两种,尾字节是0X16.你可按此设计算法来写接收代码,按2进制接收.


[/Quote]

y有没有关于这方面的代码呢?
jinzhuduan 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zdingyun 的回复:]
引用楼主 jinzhuduan 的回复:
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了

依据你贴出的数据帧结构,每帧字节数有14或16两种,尾字节是0X16.你可按此设计算法来写接收代码,按2进制接收.
[/Quote]你好,你说的很对,可是我箱在listbox中实现这个换行的功能,就是我出现上面的那种格式,我很想知道他们是如何实现这样的功能的,能不能附一些代码给我呢?xiexie
贝隆 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zdingyun 的回复:]
引用楼主 jinzhuduan 的回复:
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了

依据你贴出的数据帧结构,每帧字节数有14或16两种,尾字节是0X16.你可按此设计算法来写接收代码,按2进制接收.
[/Quote]
zdingyun 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 jinzhuduan 的回复:]
我现在已经实现了串口监听单片机发出字符串的功能,但是我想把这些字符串按照我上面写的格式给换行,有没有人能够帮我一下,谢谢了
[/Quote]
依据你贴出的数据帧结构,每帧字节数有14或16两种,尾字节是0X16.你可按此设计算法来写接收代码,按2进制接收.
chinaboyzyq 2010-05-14
  • 打赏
  • 举报
回复
用vbCrLf或vbNewLine去换行,想换几行加几个。
如:
debug.print "a a a a a" & vbnewline & vbnewline & "b b b b b b"

jinzhuduan 2010-05-14
  • 打赏
  • 举报
回复
难道没有人帮忙回答一下吗?
Tiger_Zhao 2010-05-14
  • 打赏
  • 举报
回复
s = 接收字符串()
s = replace(s, "↑:", vbCrLf & "↑:")

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧