當前位置:首頁 » 安卓系統 » 安卓如何自動連接串口

安卓如何自動連接串口

發布時間: 2024-05-26 03:57:20

⑴ 我想用Android手機與單片機進行串口通信,從而可以控制單片機,該如何實現呢

不過你還得注意的是手機的USB轉串口電平是TTL電平,所以你的單片機板子的串口也得是TTL,在就是分清楚交叉連接或者直連。

⑵ android串口消息

android串口消息連接的方法為:
1.模擬器可以使用PC的串口。
啟動模擬器並載入PC串口 命令如下。
運行 emulator @模擬器名稱 -qmu -serial COM1。
2.查看串口是否被載入。
啟動後使用 adb shell 命令打開命令行
cd dev 查看會發現ttyS0 ttyS1 ttyS2,其他ttyS2 就是我們載入上來的串口COM1
3.修改許可權
chmod 777 ttyS2
現在我們可以開發串口程序了。
4.串口程序實例
下載libserial_port.so ,放入libs/armeabi 目錄,可以自己創建此目錄
libserial_port.so 下載地址:
http://code.google.com/p/android-serialport-api/
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.util.Log;

public class SerialPort {

private static final String TAG = "SerialPort";

private FileDescriptor mFd;
private FileInputStream mFileInputStream;
private FileOutputStream mFileOutputStream;

public SerialPort(File device, int baudrate) throws SecurityException, IOException {

if (!device.canRead() || !device.canWrite()) {
try {
Process su;
su = Runtime.getRuntime().exec("/system/bin/su");
String cmd = "chmod 666 " + device.getAbsolutePath() + "n"
+ "exitn";
su.getOutputStream().write(cmd.getBytes());
if ((su.waitFor() != 0) || !device.canRead()
|| !device.canWrite()) {
throw new SecurityException();
}
} catch (Exception e) {
e.printStackTrace();
throw new SecurityException();
}
}

mFd = open(device.getAbsolutePath(), baudrate);
if (mFd == null) {
Log.e(TAG, "native open returns null");
throw new IOException();
}
mFileInputStream = new FileInputStream(mFd);
mFileOutputStream = new FileOutputStream(mFd);
}

public InputStream getInputStream() {
return mFileInputStream;
}

public OutputStream getOutputStream() {
return mFileOutputStream;
}

//JNI
private native static FileDescriptor open(String path, int baudrate);
public native void close();
static {
System.loadLibrary("serial_port");
}
}

####################################

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class PrintClass {

//輸入流
private static InputStream in;
//輸出流
private static OutputStream out;

private static final String PORT = "/dev/ttyS2";//串口

private SerialPort serialPort;

private void Connect()
{
try {
serialPort = new SerialPort(new File(PORT), 38400);

in = serialPort.getInputStream();
out = serialPort.getOutputStream();

} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public void CloseSerialPort()
{
try {
out.close();
in.close();
serialPort.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

⑶ 瀹夊崜鎵嬫満鐩戞祴涓嶅埌涓插彛璁懼

1銆侀栧厛錛屼笉鑳界敤鉶氭嫙鏈猴紝涓嶉』鐢ㄧ湡鏈
2銆佸彲浠ユ煡鎵懼懆鍥磋摑鐗欒懼囷紝褰撴悳緔㈠埌浣犺佽繛鎺ュ埌鐨勮摑鐗欒懼囷紝鍋滄discovering錛岀劧鍚庡氨鑷鍔ㄨ繛鎺ャ傛垨鑰呮槸錛屽傛灉浣犵『瀹氭墜鏈哄拰钃濈墮璁懼囧凡緇忛厤瀵規垚鍔熻繃錛岄偅涔熷彲浠ョ敤 getBundedDevice鎸囦護錛岃幏鍙栭厤瀵規垚鍔熺殑钃濈墮璁懼囷紝鍦ㄩ厤瀵規垚鍔熺殑钃濈墮璁懼囬噷鏌ユ壘鍒板悗瀹炵幇榪炴帴銆傝繖涓ょ嶆柟娉曞悗鑰呬細姣旇緝濂戒竴浜涳紝涓鑸鏃墮棿鐩稿樊3鍒4縐掋
榪欐牱閰嶅硅繛鎺ユ垚鍔熷悗灝卞彲浠ュ皾璇曡緭鍏ヨ緭鍑烘祦鏉ュ疄鐜版暟鎹鍙戦佹帴鏀朵簡

⑷ Android UART 串口通信

最近有項目需要實現windows機器和Android開發版進行UART串口通信,經過3天查找嘗試,特記錄一下最終方案,希望之後的同行少走彎路,最後在git上回開源我最終的方案希望大家支持。

Android 3.0.1
Gradle 4.1
ARM開發版 : RK3399
PC機器:Win10
開發機器:MAC 10.13.3

先上圖

由於 android-serialport-api 項目中的so使用較old的ndk編譯,所以在對於Android 6.0 以上版本兼容的時候會報錯 dlopen failed: "has text relocations" 。且使用的mk進行編譯,特升級為用cmake編譯。

升級 android-serialport-api

項目結構:

app對應原項目中的各個Activity, androidserial 是mole 對應編譯之前的so,還有API的封裝。可以直接引用androidserial,調用方法參考app目錄下的activity。

注意 關於許可權!

當接入開發板後如果發現 Error You do not have read/write permission to the serial port 需要root 許可權 ,在開發者模式中開啟root 許可權 adb和應用

使用一下命令開啟Android對串口的讀寫許可權

setenforce 0 : 關閉防火牆,有人說關鍵是這,但是我的環境不用關閉,只要給許可權就可以

注意 關於ttyS1 - 6 ttyS1 - 6 對應的是 UART 串口1-6 一般都是一一對應的。這個具體要看一下開發板的說明。

記錄的比較糙,還請見諒,如有問題請留言,我看到後肯定回復。項目主要看結構,剩下的都是復制黏貼的事。 git地址:https://github.com/braincs/AndroidSerialLibrary

⑸ 用手機串口助手,搜索,為什麼連不上

手機需要連接第三方手機助手傳輸數據,三星手機一般建議進行以下操作:
1.安卓系統手機需要開啟USB調試功能(設定-開發者選項-USB調試-勾選),然後與手機助手連接。
2.如果不能連接成功,可能是電腦中缺少手機驅動所導致,請在電腦中下載三星kies軟體後再次嘗試。

熱點內容
白糖期貨存儲多長時間 發布:2024-11-26 23:15:53 瀏覽:805
phpgettext 發布:2024-11-26 23:13:19 瀏覽:644
安卓微信的卡包在哪裡 發布:2024-11-26 23:13:18 瀏覽:203
黑群暉伺服器變成電腦主機 發布:2024-11-26 23:07:32 瀏覽:84
修壓縮機多少錢 發布:2024-11-26 23:06:41 瀏覽:827
chm加密 發布:2024-11-26 23:05:54 瀏覽:518
自動存儲盤進化史 發布:2024-11-26 22:58:35 瀏覽:108
網課搜題源碼 發布:2024-11-26 22:55:23 瀏覽:308
linux修改遠程埠 發布:2024-11-26 22:35:53 瀏覽:982
卡通農場伺服器怎麼連不上 發布:2024-11-26 22:26:54 瀏覽:195