嵌入式开发板调试中的串口问题
问题提出
在开发板调试过程中,遇到过一个很奇怪的问题,串口突然疯狂打印乱码,整个console变得无法控制,但是通过telnet进行网络连接后,查看ps,并没有异常的进程。
给出推论
不断的寻找该原因,完全无法找到。
查看.bash_history发现该问题,在history中有执行乱码命令,非常奇怪,因为执行了该命令,代表这串口输出的数据实则是信号输入,然后串口进行的一个回显,也就是说这个打印的乱码其实是类似于我们输入进去的信号。
结论验证
推出这一结论之后,就可能尝试验证这一想法,就是通过检测txd、rxd的信号,示波器测试之后发现,txd和txd的信号一模一样,也就是说产生了自激振荡样式的问题,串口由一个信号产生振荡,自己的输出又成了自己的输入,疯狂的陷入了一个死循环,但是Linux系统又是没有死掉的,不过是疯狂的进入串口中断,造成一点点的系统卡顿。
至此得出了这一难题的结论,硬件方面不知道为何导致了两个IO口产生了串扰,导致自激振荡的产生。希望存在该问题的朋友能在此处找到答案。