如何处理android手机的串口?
实际上我对串口一无所知。但我看到了一个发送at命令的示例:如何处理android手机的串口?,android,unix,serial-port,at-command,Android,Unix,Serial Port,At Command,实际上我对串口一无所知。但我看到了一个发送at命令的示例: echo -e "AT" > /dev/smd0 什么是/dev/smd0以及为什么有时会将其替换为/dev/ttyS0 /dev/smd0和/dev/ttyS0是。这些文件提供了一个文件I/O操作接口,用于处理一些底层的东西,如串口、硬盘和内存等硬件资源,或处理过程信息、随机数输入、终端屏幕输出等非硬件资源 设备文件有两种风格,字符和块。串行端口是字符设备,您可以验证c是否为ls-l输出的第一个字符: $ ls -l /dev
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桌面计算机上用于串行端口的设备名称,对应于DOS/Windows中的COM1
(在使用linux的早期,您可能偶尔会遇到对该名称的引用)。对于移动电话的虚拟USB串行接口,使用/dev/ttyACM0
和/dev/ttyACM1
。其他一些设备使用/dev/ttyUSB0。对于Android,有几种不同的设备文件名在使用,/dev/smd0
就是其中之一。您的手机可能会使用其他手机,因此您必须检查您应该专门为您的手机使用什么
位于“>/dev/smd0的命令echo-e”没有意义。
-e
选项启用反斜杠转义字符的解释,但由于以下字符串不包含此类字符,因此它仅相当于“>/dev/smd0处的echo”
但是,当向调制解调器发送AT命令时,命令行应仅以\r
终止,而不以其他方式终止。这是法律规定的
因此,将命令“AT”发送到调制解调器的正确命令应该是
echo -n -e "AT\r" > /dev/smd0
但是,即使将AT命令正确发送到调制解调器,您也必须从调制解调器读回响应。在执行此操作时(通过运行一系列shell命令)多次关闭和(重新)打开设备文件不是一个好方法,因此我建议您使用我的程序,该程序专门用于命令行通信:
$ echo AT | atinout - /dev/smd0 -
AT
OK
$
或
这样,您将正确执行所有调制解调器通信
使用c4droid
打开.c文件
将第173行修改为printf(“输出版本…\n”)。。。是版本号吗
现在用c4droid编译代码
从c4droid目录cp data/data/com.n0n3m4.droidc/files/temp/sdcard检索文件
请不要重复您自己的问题,谢谢您的通知。是的,他们很接近,因为我在做一个项目,他们都与这个项目有关。但在这个问题上,我要问的是关于手机系统的信息,在连接的问题上,我要问的是我在项目中遇到的一个问题的解决方案。这是问题中的具体问题。然而,当你看到答案时,你会感觉到不同。我如何在android上实现你的c代码。通过JNI移植C代码是否有用?
$ echo AT > input.txt
$ atinout input.txt /dev/smd0 output.txt
$ cat output.txt
AT
OK
$