请教:如何用VB的winsock发送数据给单片机。
环境:
单片机,485接口接了一个485转网络的模块,模块有IP地址和端口号。
普通计算机
两者使用网线相连。
现在,能够直接使用winsock连接到模块,而且工作正常,但是,发送数据很麻烦
使用如下方式:
winsock1.senddata &H55
winsock1.senddata &HAA
winsock1.senddata &H1
.
.
.
一位一位的送数据,系统能正常工作,可是很麻烦。
请教达人:
如何把“55AA010101010101”这样的字符串,把55,AA,01,01转换为一位一位的发送出去?
问题点数:100、回复次数:6Top
1 楼mingtian2008(明天)回复于 2006-03-17 08:56:42 得分 30
看你上面的应该是两位一发,你可以这样
Dim strSend As String
Dim i As Integer
strSend = "55AA010101010101"
For i = 1 To Len(strSend) / 2
winsock1.senddata "&H" & Right(Left(strSend, (i * 2)), 2)
Next iTop
2 楼xhzg(中文)回复于 2006-03-17 11:28:46 得分 0
可是不行啊
这样就可以
winsock1.senddata &H55
winsock1.senddata &HAA
winsock1.senddata &H1
.
.
.
兄弟的方法,那边接不到数据,单片没有反应...Top
3 楼of123()回复于 2006-03-17 11:45:43 得分 30
Dim strData As String, bytArr() As Byte, i As Integer
strData = "55AA010101010101"
For i = 0 To Len(strData)\2 - 1
Redim Preserve bytArr(i)
bytArr(i) = Val("&H" & Mid(strData, i * 2 + 1, 2))
Next i
winsock.senddata bytArrTop
4 楼xhzg(中文)回复于 2006-03-17 12:18:31 得分 0
谢谢这位兄弟,我试验了你给的方法,可是片子就是不反应阿...
我上边的一个一个的发送的,就有反应...Top
5 楼yuhoujingling(雨后精灵)回复于 2006-03-18 12:07:00 得分 0
怎么发新帖子啊Top
6 楼jadeluo(秀峰)回复于 2006-03-18 12:25:27 得分 40
改成这样试试:
Const Delay = 0.1 '如果0.1的发送间隔还是不行话, 增大这个值
Dim strSend As String
Dim i As Integer, j As Single
strSend = "55AA010101010101"
For i = 1 To Len(strSend) / 2
winsock1.senddata "&H" & Right(Left(strSend, (i * 2)), 2)
j = Timer
Do While Timer - j < Delay
DoEvents
Loop
Next i
Top




