Private Sub Timer1_Timer()
Dim buf$
Timer1.Enabled = False
buf = Trim(MSComm1.Input) '将缓冲区内的数据读入buf变量中
If Len(buf) = 0 Then '判断缓冲区内是否存在数据
TextReceive.Text = ""
Else
TextReceive.Text = buf
End If
End Sub
以上代码可以吗
我不需要对串口进行设置了吧
还有获取的数据是电压值吗,还要进行什么转换吗?我刚接触串口方面的知识,不太明白获取数据后怎样转换成长度或重量的原理,请高手或研究过这方面的大侠谈谈,谢谢
13 个解决方案
#2
最好不使用 Timer 定时。MSComm 有自己的 OnComm 事件,可以在接收到数据时触发。
#3
如果是连接COM1串口,我能不能在源程序运行时COM1向pc返回数据时,编一个程序用MSComm1.Input进行获取
#4
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
#5
楼主问题解决了没有也不来吱个声。
#6
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
#7
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
#8
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
是232串口通信的,请说明白点,有点不懂,怎样用“电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,”
#9
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
请教了,万分谢谢
#10
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
请教了,万分谢谢
在电脑上找到超级终端的,以前没用过,请教一下怎样看他发送过来的数据
#11
在电脑上找到超级终端的,以前没用过,请教一下怎样看他发送过来的数据
————————————————————————————————————————————
在 开始-程序-附件-通讯-超级终端(有些系统安装时未安装,请你手动安装),打开后根据提示一步一步设置(这个不用教吧,既然你是搞通讯的,这些设置应该不会是问题),把com口、波特率(因为你不知道该表的波特率,所以可以从1200开始一个一个的试)数据位(一般是8位)设置好,打开串口,看仪表给你发送过来的是什么样的数据,只要这些设置好了,它肯定要发送数据过来的。
最后你根据它发送到缓冲区数据的格式,比如&12345,而12345是你想要的,你就可以把&作为取数前的判断条件,只要查找发送过来的数据中有&,则从它之后开始取数,数几位……
太啰嗦了……
#12
看你5点钟就起床了,真是个勤快人……
那技术问题应该不是问题。
那技术问题应该不是问题。
#13
谢谢楼上的热心回答,不过我还是不懂,我觉得超级终端类似串口助手',一样的当愿程序打开是串口是打开的,一样无法使用',而且如果是要发送某命令才回传数据我怎么解决,对不起,我刚学串口通信很菜,望请教
#1
#2
最好不使用 Timer 定时。MSComm 有自己的 OnComm 事件,可以在接收到数据时触发。
#3
如果是连接COM1串口,我能不能在源程序运行时COM1向pc返回数据时,编一个程序用MSComm1.Input进行获取
#4
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
#5
楼主问题解决了没有也不来吱个声。
#6
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
#7
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
#8
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
是232串口通信的,请说明白点,有点不懂,怎样用“电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,”
#9
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
请教了,万分谢谢
#10
如果原程序打开的时候,你的程序再去打开com口时肯定会失败。
你说对了,想想还有什么办法吗?还有个问题,此设备是通过232串口连接的智能仪表设备,能显示重量,怎样才能知道通信协议,发送指令得到数据呢?我不知道通信协议
那你要弄清楚该仪表是采用232通讯还是485通讯,如果是232的,你可以直接通过电脑自带的超级终端来看一下它发送数据的格式,你可以参考并自己在程序里取数,如果是485的话,肯定要该表的详细资料,因为485通讯的话是你要给它发送指令,然后仪表才返回相应的数据。
至于你说的该表的通讯协议,在菜单里可以查得到吧。
请教了,万分谢谢
在电脑上找到超级终端的,以前没用过,请教一下怎样看他发送过来的数据
#11
在电脑上找到超级终端的,以前没用过,请教一下怎样看他发送过来的数据
————————————————————————————————————————————
在 开始-程序-附件-通讯-超级终端(有些系统安装时未安装,请你手动安装),打开后根据提示一步一步设置(这个不用教吧,既然你是搞通讯的,这些设置应该不会是问题),把com口、波特率(因为你不知道该表的波特率,所以可以从1200开始一个一个的试)数据位(一般是8位)设置好,打开串口,看仪表给你发送过来的是什么样的数据,只要这些设置好了,它肯定要发送数据过来的。
最后你根据它发送到缓冲区数据的格式,比如&12345,而12345是你想要的,你就可以把&作为取数前的判断条件,只要查找发送过来的数据中有&,则从它之后开始取数,数几位……
太啰嗦了……
#12
看你5点钟就起床了,真是个勤快人……
那技术问题应该不是问题。
那技术问题应该不是问题。
#13
谢谢楼上的热心回答,不过我还是不懂,我觉得超级终端类似串口助手',一样的当愿程序打开是串口是打开的,一样无法使用',而且如果是要发送某命令才回传数据我怎么解决,对不起,我刚学串口通信很菜,望请教