求教关于C#serialPort串口控件使用后资源释放问题

    在使用C#serialPort制作的串口调试器过程中发现的问题,希望能够描述清楚也希望有人能知道为什么会这样,
   假设使用C#串口调试助手打开COM1之后再关闭com1之后直接使用com1口为单片机写程序,这样问题就来了,
只是能够正常打开串口但是却永远显示等待单片机响应,只有拔掉USB串口再重插或者使用网上下载的串口调试助手重新打开一次COM1在关闭才可以给单片机写入程序,不知道是什么问题,补充说明下如果不给单片机写程序的话只是使用串口测试收发那一切都正常,无论怎么打开关闭再打开都可以收发数据,
  个人水平有限不知道为什么只是感觉上是C#serialPort控件打开再关闭之后没有彻底释放资源还有占用,我能想到的关闭方法只有下面这些了 试过关闭代码如下:
                serialPort1n.Close();
        serialPort1n.Dispose();
        GC.Collect();
        GC.WaitForPendingFinalizers();
                    只是仍然是有问题,实际试了从网上下载的串口调试助手就没有我说的这个问题,下面是我打开串口的代码了:
                    serialPort1n.Open();//打开串口
                    if (serialPort1n.IsOpen)
                                            {
                                            }