CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

请教:如何用VB的winsock发送数据给单片机。

楼主xhzg(中文)2006-03-16 22:18:02 在 VB / 网络编程 提问

环境:  
      单片机,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

相关问题

  • 请教:如何用VB的winsock发送数据给单片机。
  • 单片机以十六进制方式接受数据,winsock该如何发送数据?
  • 单片机通信数据不正确
  • 单片机如何保存数据,供PC机查看?
  • 如何向单片机发送大于128的字符数据
  • 如何向单片机发送大于128的字符数据
  • 单片机串口通信,收不到第二个数据
  • 在VB中使用VB与单片机实现MODEM通信的问题?
  • mscom如何通过modem接受从单片机发来的数据?
  • 如何使pc机从串口读取单片机数据并显示之??

关键词

  • winsock
  • 数据
  • 模块
  • strsend
  • senddata
  • bytarr
  • 发送
  • aa010101010101
  • strdata
  • dim

得分解答快速导航

  • 帖主:xhzg
  • mingtian2008
  • of123
  • jadeluo

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo