
正文
vb.net串口卡顿 vb串口通信
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.NET开发的窗体程序为什么会卡?
控件多vb.net串口卡顿了vb.net串口卡顿,电脑必然会慢vb.net串口卡顿,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。
所谓的“上位机传数据”,是指系统收到端口信息后,触发你代码中相应对象的事件,然后在事件处理代码中把数据写到窗体上的。
DoEvents语句用的太多了,每次循环都会刷新,这跟不上计算的速度,比如说可以每100次循环执行一次DoEvents。
“卡死”是一个非常主观的描述,如果你要让主线程杀掉卡死的线程,那么你必须给“卡死”做出准确的定义。
可以考虑使用Cache(缓存)技术,对于不经常变化的数据可以采用静态Cache,对于可能经常被修改的数据可以采用数据库依赖的通知Cache更新技术。
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
相关问答
Q1: vb.net串口发送端不停发送接收端怎么处理
1、不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
2、所以在传输前要先做好每个数据段的控制,通常的做法就是在每次发送数据前先发送数据的长度给接收端,然后再发送数据。
3、send(0) = &H93send(1) = &H93send(2) = &H93send(3) = &H93MSCommOutput = send End Sub 这样才发送4字节指令,此外从MSCommRThreshold = 34看是设置接收字节长度为34字节。
4、VB0可使用MsComm控件实现串口通信。按通信协议和数据帧规约接收和处理数据。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
Q2: VB.NET中,串口接收数大量数据时如果执行SerialPort.close动作,程序会卡...
1、对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
2、清除数据接收区SerialPortDiscardOutBuffer() 清除数据发送区End IfTextBoxClear()‘清屏。
3、不知道你是不是用51单片机往串口发数据,是的话那是因为51的SBUF最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
4、下面的设备列表里有两项,双击MyEmulator,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。
Q3: 使用vb.net接收大量串口数据时,界面卡顿
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
卡顿主要原因:控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。
不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
Object, e As EventArgs) Handles ButtonClickIf SerialPortIsOpen ThenSerialPortDiscardInBuffer() 清除数据接收区SerialPortDiscardOutBuffer() 清除数据发送区End IfTextBoxClear()‘清屏。
Q4: vb.net串口类程序,串口打不开
代码拼写和ComboBox控件的事件使用有误。
倒数第二行,改为MSCommPortOpennbsp;=nbsp;True,纯粹拼写错误。
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
那是因为COM组件的COMPort设置为1了,也就是COM组件只能进行COM1进行通讯。你使用USB to SerialPort转接口的话,会虚拟一个新的COM端口,而这个端口的端口号不是1,所以就出错了。
建议查看USB转串口的驱动,USB转串口很多时候兼容性并不太好,你如果使用PCI转串口的肯定没有问题。
关于vb.net串口卡顿和vb串口通信的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







