实际上我对串口一无所知。但是我看到了一个发送命令的示例:
echo -e "AT" > /dev/smd0
什么是/ dev / smd0以及为何有时用/ dev / ttyS0替换它。
/dev/smd0
并且/dev/ttyS0
是设备文件。这些文件是虚拟文件,提供文件I / O操作界面,用于处理一些基础事物,例如串行端口,硬盘和内存之类的硬件资源,或过程信息,随机数输入,终端屏幕之类的非硬件资源输出等
设备文件分为两种:字符和块。串行端口是字符设备,您可以将其验证c
为输出中的第一个字符ls -l
:
$ ls -l /dev/ttyS0
crw-rw----. 1 root dialout 4, 64 Apr 7 00:25 /dev/ttyS0
$
/dev/ttyS0
是linux台式计算机上用于串行端口的设备名称,与COM1
DOS / Windows中的相对应(在/dev/cua
使用linux的早期,您可能偶尔会遇到对此的引用)。用于/dev/ttyACM0
和手机的虚拟USB串行接口/dev/ttyACM1
。其他一些设备使用/ dev / ttyUSB0。对于Android,有几个不同的设备文件名正在使用,其中/dev/smd0
之一是。您的手机可能会使用另一部手机,因此您必须检查专门用于手机的内容。
该命令echo -e "AT" > /dev/smd0
没有意义。该-e
选项启用对反斜杠转义字符的解释,但是由于以下字符串不包含此类字符,因此等效于just echo "AT" > /dev/smd0
。
但是,当将AT命令发送到调制解调器时,命令行仅应以\r
其他命令终止。这是V.250要求的。
因此,将命令“ AT”发送到调制解调器的正确命令应该是
echo -n -e "AT\r" > /dev/smd0
但是,即使可以将AT命令正确地发送到调制解调器,也必须回读调制解调器的响应。在执行此操作时多次关闭和(重新)打开设备文件(您可以通过运行一系列shell命令来完成)不是一个好方法,因此,我建议您在atinout中使用我的程序,这特别是编写用于命令行AT命令通信:
$ echo AT | atinout - /dev/smd0 -
AT
OK
$
或者
$ echo AT > input.txt
$ atinout input.txt /dev/smd0 output.txt
$ cat output.txt
AT
OK
$
这样,您将正确执行所有调制解调器通信。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句