更新记录
1.0.0(2025-04-06)
- 获取所有串口
- 打开/关闭串口,收发数据
- 修改串口读写权限
平台兼容性
HbuilderX/cli最低兼容版本 |
3.6.8 |
uni-app
app-vue |
app-nvue |
app-android |
app-ios |
app-harmony |
? |
? |
? |
? |
? |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
uni-app x
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
? |
? |
? |
? |
? |
? |
? |
? |
? |
android串口通讯,支持uniapp、uniappX、vue2、vue3
开发文档
- 集成插件步骤请参考 https://www.cnblogs.com/wenrisheng/p/18323027
接口文档
import {
UTSSerialPort
} from "@/uni_modules/wrs-uts-sp"
let sp = new UTSSerialPort()
// 一个变量控制一个串口
// let sp1 = new UTSSerialPort()
// let sp2 = new UTSSerialPort()
// let sp3 = new UTSSerialPort()
sp.onCallback((resp) => {
this.showMsg(JSON.stringify(resp))
let opt = resp.opt
switch (opt) {
case "onOpenSuc": {
this.showMsg("串口打开成功")
}
break;
case "onOpenFail": {
this.showMsg("串口打开失败")
}
break;
case "onClose": {
this.showMsg("串口关闭")
}
break;
case "onDataReceived": {
let data = resp.data
this.showMsg("串口收到数据")
}
break;
default:
break;
}
})
// {
// "files": [{
// "canWrite": false,
// "root": "serial",
// "canRead": false,
// "canExecute": false,
// "name": "ttyS4",
// "path": "/dev/ttyS4"
// }, {
// "canWrite": false,
// "root": "serial",
// "canRead": false,
// "canExecute": false,
// "name": "ttyS1",
// "path": "/dev/ttyS1"
// }, {
// "canWrite": false,
// "root": "fiq-debugger",
// "canRead": false,
// "canExecute": false,
// "name": "ttyFIQ0",
// "path": "/dev/ttyFIQ0"
// }]
// }
let params = {}
// params.dir = "/proc/tty/drivers"; 默认获取的是/proc/tty/drivers路径下的所有串口
let resp = sp.getAllSerialport(params)
let files = resp.files
let params = {}
// 串口路径
params.path = "/dev/ttyS4" // 可以写死某个串口路径或者从sp.getAllSerialport(params)接口里选择一个串口
// 波特率,大部份是9600或115200
params.baudRate = parseInt(this.baudRate)
// 数据位,取值范围:5,6,7,8
params.dataBits = 8
// 校验位,值范围:0(不校验)、1(奇校验)、2(偶校验)、3(空校验)
params.parity = 0
// 停止位,取值范围:1、2
params.stopBits = 1
// 流控,值范围:0(不使用流控)、1(硬件流控RTS/CTS)、2(软件流控XON/XOFF)
params.flowCon = 0
sp.open(params)
sp.close()
let params = {}
// data为要发送的数据,十六进制数据
params.data = [0x00, 0xFF]
sp.sendData(params)
- 执行cmd命令
当串口没有读写权限时,可以实现使用如下接口修改串口的读写权限,有了读写权限后才能打开串口
let path = file.path
let params = {
cmd: "chmod 777 " + path + " \n exit\n",
waitFor: true
}
let cmdResult = sp.executeCmd(params)
root权限执行:
let path = file.path
let params = {
suPath: "/system/bin/su", // su命令路径,一般不需要指定
cmd: "chmod 777 " + path + " \n exit\n",
waitFor: true
}
let cmdResult = sp.executeCmd(params)