作者JingTeng (爱恨惹是非)
看板Visual_Basic
标题[.NET] 拒绝存取通讯埠
时间Mon Dec 14 21:21:43 2009
最近在使用Serial Port时遇到了一个问题,
找了很久都还没有办法解决,
所以想请教一下各位下面的问题,
我使用的线材为USB转RS232之线材,
当我执行我的介面时且COM Port也已经连上,
然後执行过程中我突然将USB转RS232拔掉後再将整个介面关掉後,
就会跳出一视窗显示拒绝存取通讯埠,
请问一下这是我哪没注意到吗???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.57.116.14
1F:→ nobody1:要防呆呀 不然就别一直开开关关的 12/14 21:37
2F:→ nobody1:While (Environment.TickCount-i<2000 And _isReceiviing) 12/14 21:52
3F:→ nobody1:Application.DoEvents() 12/14 21:52
4F:→ nobody1:塞一点时间给他 12/14 21:52
我并没有做任何传送接收的动作,
只是在连上Serial Port後将线材拔除,
然後直接将程式关闭下来,
就会出现此现象,好像跟Delay没关系
※ 编辑: JingTeng 来自: 61.57.116.14 (12/14 23:30)
5F:→ nobody1:serial还没有open? 那就随便插拔也没关系吧 12/15 00:37
6F:→ nobody1:连上了的话要缓冲区要动一动才知道有没资料进来 12/15 00:38
7F:→ nobody1:不管有没有资料没进来都是在"等" 插不插上电脑也不会知道 12/15 00:39
8F:→ nobody1:猜猜看 你一定没试我说的东西对吧~ XD 12/15 00:42
请教一下nobody1,这个_isReceiving该怎麽使用?
使用情况是SerialPort1已经Open了,
然後将线材拔出後将Form关闭所出现的问题,
因为我不知道该怎麽使用_isReceiving,
所以我直接在Form_Closing里加上Delay,
结果也是没办法解,
请问该怎麽做呢???
9F:→ OPOQ:有可能是因为要关闭程式 会执行到serial port 的close 12/15 10:33
10F:→ OPOQ:但执行close 时 rs232 却已经被拔掉了 12/15 10:33
是的,但我的情况是只要线材一拔除,
Serial Port就会变关闭,
即使再去close仍然无法解决此问题,
有没有高手能帮忙阿???
谢谢
※ 编辑: JingTeng 来自: 61.57.116.14 (12/15 20:36)
11F:推 mraaa:我自己试是发现...如果Open了没有Close就把程式结束掉... 12/16 01:06
12F:→ mraaa:他并不会自动关闭..因此当你下次在执行程式要Open的时候就会 12/16 01:07
13F:→ mraaa:出错.... 12/16 01:07
14F:→ nobody1:_isReceiviing是自己设的变数 用意在说明close时要等一下 12/16 10:00
15F:→ nobody1:google一下罗 ^^ 12/16 10:02