我正在尝试通过 GPIO PINS 14(Tx)和15(Rx)建立通信b / w raspberrypi(Raspbian)和PC(Microsoft XP)来发送/接收数据... ,RS-232电平转换器用于连接GPIO到PC串口COM端口和3.3V到12V的电压转换...... 我在覆盆子一侧安装minicom(Echo ON)并在PC端安装Teraterm(ECHO OFF)。
无论我在minicom上输入什么,它都成功出现在Minicom和Teraterm上,但是当我在Teraterm上尝试相同的事情时,它只出现在Teraterm而不是minicom上并且还被minicom阻止(/ dev / ttyAMA0)。之后,我无法将数据从minicom发送到Teraterm。
但我只是检查了一件事,并且非常惊讶,当缩短GPIO PIN 14& 15在一起并开始在minicom上打字......它只是向我显示一个角色并在此之后停止......
我再次通过关闭/打开minicom重复整个过程,再次只显示角色然后停止。
你能指导我为什么会这样,我该如何解决?
答案 0 :(得分:1)
我刚从this link读到有人也面临着你的问题,但不完全是你面临的问题。
之所以发生这种情况是因为Kernel接管了控制台上的控件,所以断开控制台与内核的连接与启动是完全正常的非常重要。
现在你可以按照这些步骤,我相信你会摆脱这个麻烦......
通过此命令开始编辑此文件
sudo vi /boot/cmdline.txt
最初包含:
dwc_otg.lpm_enable=0 rpitestmode=1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
删除了涉及串口(ttyAMA0)的两个参数以获得以下内容:
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
重新启动(sudo reboot)以确认内核输出不再进入串行端口。但是串行控制台仍然可用。所以编辑了/ etc / inittab:
sudo vi /etc/inittab
注释掉以下内容:
2:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100
最后,重新启动并确认没有任何东西在接触串口了。然后,在Raspberry Pi上测试它安装的minicom:
sudo apt-get install minicom
然后跑了:
minicom -b 9600 -o -D /dev/ttyAMA0
之后,它可以向两个方向发送数据!