板子掉电后串口不工作,STM32正常工作?复位后正常

2019-07-21 00:46发布

       做了一批STM32F105的板子,二十来块。现在发现一部分板子(另外一些正常工作)掉电之后再次上电串口没有数据输出,输入也没反应,单片机正常工作(设定了DA)。按复位键之后正常工作,串口可发送可接收。
        程序开头加了延时。
        串口那里的输出波形也正常。
        串口终端使用了丁丁的,超级终端,labview等测试。
        希望大神给个方向~~~PL3202的接线和原子的板子一样~

        重新下完程序,则正常运行。断电之后出现上述情况~~~
        还会偶尔出现摁一下复位键之后串口数据停止传送,再按一次则恢复正常~~
那些不正常的板子,上电之后,打开串口调试助手,然后调试助手提示串口被占用。之后重新打开一次串口助手就可以了!!产品是要把板子封起来的,不能按到复位键的~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
雨思小米粥
1楼-- · 2019-07-21 02:37
回复【4楼】正点原子:
---------------------------------
是ST串口的BUG
咱们论坛里面有帖子,
http://www.openedv.com/posts/list/40061.htm
745021926
2楼-- · 2019-07-21 03:06
串口不正常的时候看程序有没飞掉,如果没飞掉,再查查波形,还有你的发送部分看有没有被中断打断
jermy_z
3楼-- · 2019-07-21 08:02
我觉得是TTL转USB 有问题
正点原子
4楼-- · 2019-07-21 10:44
我也觉得是你的PL2303可能有问题。做自发自收测试下。
雨思小米粥
5楼-- · 2019-07-21 14:00
回复【4楼】正点原子:
---------------------------------
这是其他地方网友的回答,虽然还没解决,还是贴上来大家一起看看吧~~~(我尝试一下,但是不确定该怎么操作)
作者:levinxia
这个问题,我遇到过的。叫了ST的技术支持来了两次。最后找到办法解决了。
UART接收有时候会出现错误。导致UART中断一直进去。实际上并没有UART数据接收。
这种情况下,我们的解决办法就是修改软件:
在UART中断里面,加上一句话。在接收中断里面,增加读取UART缓冲控制。
1、正常有UART数据接收时,肯定会是有读取UART缓冲操作。这个地方没有问题。
2、如果没有接收中断,也没有发送中断。也没有错误中断的情况下,将UART缓冲读取一次。数据直接丢掉就行了。
3、每种错误信息都去判断。在判断的处理中。也读取一次UART缓冲。
通过以上三个操作。问题就能解决。
雨思小米粥
6楼-- · 2019-07-21 15:55
回复【6楼】雨思小米粥:
---------------------------------
按照这个修改就好了!!

一周热门 更多>