
正文
vb.net串口无消息 vbnet串口控件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.NET中用mscomm控件编写串口通信软件数据无法接收
1、vb.net串口无消息你吧顺序弄错了,前面串口都已经打开了,后面再设置的参数有些是无效的。收不到数据的原因是PortOpen=True时,RThreshold还未设置,很可能是默认的0,所以收不到数。
2、输出传完后,接收的数据就在输入字节数组。其vb.net串口无消息他的就是串口属性设置的问题了,你也应该懂得。
3、10年以前编辑过一个串口程序,已经忘的差不多了。你这个只是按钮事件往串口发数据,事件完了,不会检测接受到的数据。你应该加个时间事件,定期检测接收的到数据并显示。
4、MSDN,Input 属性vb.net串口无消息:返回并删除接收缓冲区中的数据流。
5、不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
6、单片机发送字串最好用一个特殊符号开始比如!,结束时用一个特殊符号结束比如$,数据在两个标记之中!n1n2n3n..$。
相关问答
Q1: VB串口通信接收不到数据
1、你吧顺序弄错了,前面串口都已经打开了,后面再设置的参数有些是无效的。收不到数据的原因是PortOpen=True时,RThreshold还未设置,很可能是默认的0,所以收不到数。
2、虽然搞不懂你那个程序是怎么设计的,但是针对于VB死机的情况,建议你检查一下运行过程中变量的赋值、循环语句、timer控件及函数 的调用部分,反正也是用源码运行的,建议你跟踪一下,看看程序是在哪里死掉的。
3、Output = Chr(send3) 这句有问题。
4、Private Static Sub show_s(Term As Control, data As String)显示模块,用于显示从串口返回的数据 Dim TermSize, i As Integer TermSize = Len(Term.text) 过滤/处理退格符。
5、我觉得你很有可能是接收数据和处理数据写在一个函数或过程里的,这样如果处理数据工作量很大的时候会漏掉接收数据的。建议把接收数据和处理数据分在两个地方,接收归接收,处理归处理。
6、我估计是接收到数据后,你中断了,数据还是接收中……这个速度很快很快,但是你的代码没有处理了,于是缓冲溢出了或者怎么了,等到你执行语句,读到的都不知是什么东西了。
Q2: vb.net+判断串口发送是否空?
vb6判断数据库字段为空值的方法是:if isnull(x1) then ...vb6判断字符串是空串的方法是:if x2= then ...强调一下x1在vb6下必须是varint变量,才能装入数据库的空值NULL。
Win32_SerialPort, // 串口 Win32_SerialPortConfiguration, // 串口配置 Win32_SoundDevice, // 多媒体设置,一般指声卡。
说明 如果变量是数组,则 IsArray 返回 True;否则返回 False。对于包含数组的 variant 表达式来说,IsArray 尤为有用。 IsDate 函数 返回 Boolean 值,指出一个表达式是否可以转换成日期。
不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
要看看你的接收方是否已经收到你的发出指令,是否已经有响应数据回发。建议分开调试,用一个通用的串口助手,如格西烽火串口助手之类的,分别调试你的上位机和下位机。格西烽火串口助手能轻松的定制如你上面的发送数据。
无论是发送还是接收时都做一次赋值dt=datetime.now;然后加一个定时器,间隔比如10秒,定时器每次触发时都计算出datetime.now-dt的TotalSeconds,就可以得到空闲的时间,然后你根据这个时间就可以做判断了。
Q3: vb.net串口类程序,串口打不开
1、代码拼写和ComboBox控件的事件使用有误。
2、倒数第二行,改为MSCommPortOpennbsp;=nbsp;True,纯粹拼写错误。
3、对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
4、那是因为COM组件的COMPort设置为1了,也就是COM组件只能进行COM1进行通讯。你使用USB to SerialPort转接口的话,会虚拟一个新的COM端口,而这个端口的端口号不是1,所以就出错了。
5、那也就说明可以利用这个报警检测是否已经连接设备。在程序了加上错误捕获,可以改为提示连接设备。在exe文件中,出错时如果没有设置错误捕获,一旦出错,就会自动退出的。具体你看一下VB中的错误处理部分的编程。
Q4: 用VB.net编写的串口测试小程序,用的时候有时会自己退出关闭,无提示...
1、先用打 Log 的方法确定闪退的大概位置,然后多放几个 Try,把错误抓住。
2、应该不会自动关闭---解决方案---用两个SerialPort 对象,分别打开两个串口,应该不会出现vb.net串口无消息你这样的问题。MSDNvb.net串口无消息:SerialPort.Open 方法每个 SerialPort 对象只能有一个打开的连接。
3、完整的模块 进口System.Data 进口System.IO 进口System.Data.OleDb CN作为新OleDb.OleDbConnection (供应商= Microsoft.Jet.OLEDB.0;数据源= C:\ ACCESS数据库的。
4、应用程序没有检查内存分配失败 程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。
5、跟踪,看看运行到Show没有。不能瞎猜,脑袋瓜里要有一套万能的思路,这样才能兵来将挡水来土掩,哈哈。还有呀,看看那个窗体加载的时候有没有可能Close,如果有这样的逻辑,form3也要设断点。
6、对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
Q5: VB.NET串口接收不到数据
1、vb.net串口无消息你这个只是按钮事件往串口发数据vb.net串口无消息,事件完了,不会检测接受到的数据。你应该加个时间事件,定期检测接收的到数据并显示。
2、不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
3、假如是十六进制数据(字节),只要分别定义输出字节数组和输入字节数组。输出传完后,接收的数据就在输入字节数组。其vb.net串口无消息他的就是串口属性设置的问题了,你也应该懂得。
关于vb.net串口无消息和vbnet串口控件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





