1. android串口通信如何發送16進制給給下位機
已解決,發送串口幀數據時,對於16進制數據定義,直接用byte[]數組就行了,不需要用Array.fill函數;
2. 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
3. 如何使用android studio實現串口通信
找兩根帶驅動程序的U裝RS485的線,分別接在兩電腦上並安裝好驅動程序。(在計算機硬體管理器中查看是COM幾口) 兩根U裝RS485的線A、B對接起來,形成迴路即可通訊 可從網上下載一個串口調試工具,在一端發數據,在另一台電腦的串口一端接收到其發過來的數據。