正文
vb.net关闭串口就卡 如何关闭串口通信
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
VB.NET中,串口接收数大量数据时如果执行SerialPort.close动作,程序会卡...
对同一个串口的操作应该放在单个线程里vb.net关闭串口就卡,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行vb.net关闭串口就卡,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
清除数据接收区SerialPortDiscardOutBuffer() 清除数据发送区End IfTextBoxClear()‘清屏。
不知道你是不是用51单片机往串口发数据vb.net关闭串口就卡,是的话那是因为51的SBUF最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
下面的设备列表里有两项,双击MyEmulator,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。
与PC机串行口连接的是9芯D型插座,其所有引脚的定义及对应的信号电平均按照RS—232C标准规定连接和设计。本设计中只使用其中的3根信号线vb.net关闭串口就卡:发送数据(TXD),接收数据(RXD)和信号地(GND)。
VB.NET接收串口数据问题
不知道你是不是用51单片机往串口发数据,是的话那是因为51的sbuf最多存放8个字节,所以你发12个字节会分成两次发完。还有在接收的时候最好定义好通信协议,比如加一个侦头,一个侦尾,通过这两个字节的内容来接收数据。
你可以预先约定一个截止附,读取的字节统统放到缓存区里,直到读到截止附再处理、显示。
10年以前编辑过一个串口程序,已经忘的差不多了。你这个只是按钮事件往串口发数据,事件完了,不会检测接受到的数据。你应该加个时间事件,定期检测接收的到数据并显示。
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
关于串口通讯的问题:很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。
首先应该弄清楚串口发送和接受的数据是字符还是十六进制数据(字节)。假如是十六进制数据(字节),只要分别定义输出字节数组和输入字节数组。输出传完后,接收的数据就在输入字节数组。
用VB.net编写的串口测试小程序,用的时候有时会自己退出关闭,无提示...
先用打 Log 的方法确定闪退的大概位置,然后多放几个 Try,把错误抓住。
应该不会自动关闭---解决方案---用两个SerialPort 对象,分别打开两个串口,应该不会出现你这样的问题。MSDN:SerialPort.Open 方法每个 SerialPort 对象只能有一个打开的连接。
例四:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。
进口System.Data 进口System.IO 进口System.Data.OleDb CN作为新OleDb.OleDbConnection (供应商= Microsoft.Jet.OLEDB.0;数据源= C:\ ACCESS数据库的。
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。
跟踪,看看运行到Show没有。不能瞎猜,脑袋瓜里要有一套万能的思路,这样才能兵来将挡水来土掩,哈哈。还有呀,看看那个窗体加载的时候有没有可能Close,如果有这样的逻辑,form3也要设断点。
vb.net关闭串口就卡的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何关闭串口通信、vb.net关闭串口就卡的信息别忘了在本站进行查找喔。