自己用C#写了一个上位机,运行打开串口单片机死机。

2019-07-20 13:19发布

  求原子哥给看一下,我用的是探索者F4,自己用C#写了 一个上位机,类似于串口调试助手,但调试的时候,打开串口(用的串口1,232串口)时单片机会直接卡死。灯也不闪了。大家给看看吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
balabala
2019-07-20 16:24
本帖最后由 balabala 于 2016-5-17 13:44 编辑

今天我也遇到了这个问题,同样也郁闷了很久。最后查了一下一键下载电路找到了原因。电路如下:

1.png

这个板子为了下载方便,设计了这个下载电路。这就造成了一种安全隐患——可以通过串口直接控制板子的复位和下载方式。我觉得这是不合理的地方,应该用个跳线帽来选择是否需要一键下载电路。
所以我们的板子不是卡死了,而是在串口握手之后就把板子给一直复位了。
解决办法也很简单:
1.从硬件上断开芯片RESET,BOOT和CH340的链接,不推荐使用这种方法。
2.软件上禁止RTS好DTR的使用。以VS2010环境下C#语言为例,在开启串口之前将这两个引脚禁止,代码如下:
                    PublicData.sp1.RtsEnable = false;       //禁止RTS引脚
                    PublicData.sp1.DtrEnable = false;       //禁止DTR引脚
                    PublicData.sp1.Open();                    //打开串口

之所以网上大部分的例程都不好使,是因为这两个引脚一般人都不管它。用串口这么久,我到现在也不知道这俩货到底是干什么用的。然而偏偏这里又用到了,不仔细琢磨还真不一定能发现是这里的问题。



一周热门 更多>