成都网站建设设计

将想法与焦点和您一起共享

vb.net串口缓存区的简单介绍

VB与VB.NET串口及以太网通迅

关于串口通讯的问题:

成都创新互联公司是一家专业提供铁岭县企业网站建设,专注与成都网站建设、成都网站制作、成都h5网站建设、小程序制作等业务。10年已为铁岭县众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。

建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。

关于以太网通讯:

在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。

但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。

或者,干脆不用TCP,用UDP解决也可以。

vb.net2010十六进制读取串口的问题

不是很明白你的题意

strHex = strHex + [String].Format("{0:X2} "

这里的意思是把每个字节数据转换成了十六进制,每个字节占两个字符

如果你串口收到的4个字节数据:43,27,56,200

那么你的结果是:2B1B38C8

即receivebytes.Text="2B1B38C8"

不足两位的补0

如果你串口收到的4个字节数据:3,27,56,200

那么你的结果是:031B38C8

即receivebytes.Text="031B38C8"

VB串口通信mscomm中传输和接收缓冲区怎么理解

要把某个数字或者一段文字通过串行接口发送出去是一个很复杂的事。

要在铜线上严格按照通讯协议,以微秒级别的间隔发送高低电平是软件系统难以做到的。

所以,人们在串行接口芯片中预留了一些存储空间作为缓冲区。软件系统只负责将要发送的内容放进缓冲区,硬件系统只要发现缓冲区中有数据,就按照时钟晶振提供的精确时间间隔将数据转换为高低电平送到铜线上。

后来,由于硬件缓冲区很小(一般只有8个或16个字节),人们又通过软件方式在硬件缓冲区的上层再加一层软件缓冲区,其大小可以扩展至1024字节,甚至更高。这个就是MSComm控件里面的缓冲区了。

当你要发送一串数据时(比如200个),你可以直接送到MSComm里面,后面的操作全都不用管了。而实际上,MSComm会从其中按次序将16个字节送入硬件缓冲区,等硬件系统将数据发走后,再送16个…… 如此循环,直至全部发送完毕。接收缓冲区的作用与之类似。

VB.NET使用AxMSComm实现串口通信的发送读取问题?

上面的代码看不出问题,如果初始化串口控件时已经注册了AxMSComm1_OnComm,有数据接收应该能触发,至于为什么没有触发,要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发。

建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的,分别调试你的上位机和下位机。格西烽火串口助手能轻松的定制如你上面的发送数据。

vb.net serialport 如何从串口通信缓存区每次4个字节的数据,缓存区中的数据大于4个字节

你可以等全部获取后 用mid函数去截取字符串 再赋值

dim a()

redim a(len(s)\4))

for i = 1 to len(s) step 4

a(j)=mid(s,i,4)

j=j+1

next


本文名称:vb.net串口缓存区的简单介绍
标题URL:http://chengdu.cdxwcx.cn/article/hedjic.html