数据传输从 Raspberry Pi 停止
Data Transmission Stop from Raspberry Pi
我正在尝试通过 GPIO 引脚 14(Tx) 和 15(Rx)[=] 建立通信 b/w raspberrypi(Raspbian) 和 PC(Microsoft XP) 用于 sending/receiving 数据...,RS-232 电平转换器用于将 GPIO 连接到 PC 串行 COM 端口并将电压从 3.3V 转换为 12V...
我在 raspberry 端安装了 minicom (Echo ON),在 PC 端安装了 Teraterm(ECHO OFF)。
无论我在 minicom 上输入什么,它都会成功出现在 Minicom 和 Teraterm 上,但是当我在 Teraterm 上尝试同样的事情时,它只出现在 Teraterm 上而不是在 minicom 上,并且还被 minicom 阻止 (/dev/ttyAMA0)。之后我无法将数据从 minicom 发送到 Teraterm。
但我又检查了一件事,非常惊讶的是,当将 GPIO PIN 14 和 15 短接在一起并开始在 minicom 上打字时……它只显示一个字符并在那之后停止……
我再次通过 closing/opening minicom 重复整个过程,再次它只显示字符然后停止。
你能告诉我为什么会这样吗?我该如何解决?
我刚从 this link 上看到有人也遇到了你的问题,但不完全是你所面临的问题。
发生这种情况是因为内核接管了控制台的控制权,所以从启动时断开控制台和内核的连接是非常重要的。
现在您可以按照以下步骤操作,相信您一定会摆脱这个烦恼...
通过这个命令开始编辑这个文件
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 重新启动)以确认内核输出不再进入串行端口。但是串行控制台仍然可用。所以编辑 /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
完成后,可以双向发送数据了!
我正在尝试通过 GPIO 引脚 14(Tx) 和 15(Rx)[=] 建立通信 b/w raspberrypi(Raspbian) 和 PC(Microsoft XP) 用于 sending/receiving 数据...,RS-232 电平转换器用于将 GPIO 连接到 PC 串行 COM 端口并将电压从 3.3V 转换为 12V... 我在 raspberry 端安装了 minicom (Echo ON),在 PC 端安装了 Teraterm(ECHO OFF)。
无论我在 minicom 上输入什么,它都会成功出现在 Minicom 和 Teraterm 上,但是当我在 Teraterm 上尝试同样的事情时,它只出现在 Teraterm 上而不是在 minicom 上,并且还被 minicom 阻止 (/dev/ttyAMA0)。之后我无法将数据从 minicom 发送到 Teraterm。
但我又检查了一件事,非常惊讶的是,当将 GPIO PIN 14 和 15 短接在一起并开始在 minicom 上打字时……它只显示一个字符并在那之后停止……
我再次通过 closing/opening minicom 重复整个过程,再次它只显示字符然后停止。
你能告诉我为什么会这样吗?我该如何解决?
我刚从 this link 上看到有人也遇到了你的问题,但不完全是你所面临的问题。
发生这种情况是因为内核接管了控制台的控制权,所以从启动时断开控制台和内核的连接是非常重要的。
现在您可以按照以下步骤操作,相信您一定会摆脱这个烦恼...
通过这个命令开始编辑这个文件
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 重新启动)以确认内核输出不再进入串行端口。但是串行控制台仍然可用。所以编辑 /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
完成后,可以双向发送数据了!