更新记录
1.0.0(2025-08-23)
初始版本1.0.0: 1、支持设置波特率、数据位、校验位、停止位,DTR、RTS 2、此库通过 USB 接口类型而不是固定的 VID+PID 检测 CDC/ACM 设备,因此 CDC/ACM 设备通常不再需要自定义探测器。 3、支持带有特定驱动程序的USB转串口转换芯片: FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD Prolific PL2303 Silabs CP2102, CP210* Qinheng CH340, CH341A 一些其他设备特定的驱动程序: GsmModem 设备,例如基于 Unisoc 的 Fibocom GSM 调制解调器 Chrome OS CCD(封闭式调试) 以及实现通用 CDC/ACM 协议的设备,例如: Qinheng CH9102 Microchip MCP2221 Arduino using ATmega32U4 Digispark using V-USB software USB ...
平台兼容性
uni-app(4.07)
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
√ | √ | - | - | √ | √ | √ | - | - |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
- | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.07)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
- | - | 5.0 | - | - | - |
使用前先导入插件方法如:
import { init, openDevice, closeDevice, sendData, setReadCallbacks, isConnected, release, setConnectionStateListener } from '../../uni_modules/usb-serial-normal'
功能方法列表:
1、初始化方法:init(config : UTSJSONObject):void
const config = {
targetProductName: "LOLIN-S2-MINI",
baudRate: 115200
// 其他参数可以安全地省略
};
// 其他参数可以省略,会使用默认值,按需传入
init(config);
注:必须在使用任何其他函数之前调用此初始化函数。
-
@param config - 一个包含配置信息的 UTSJSONObject 对象。
-
- targetProductName (string, 必需,目标设备的 Product Name)
-
- baudRate (number?, 可选, 默认 115200,波特率)
-
- dataBits (number?, 可选, 默认 8,数据位)
-
-
stopBits(number?, 可选, 默认 1,停止位)
-
parity(number?, 可选, 默认 0,校验位)
-
dtr(boolean?, 可选, 默认 true,DTR信号)
-
rts(boolean?, 可选, 默认 false,RTS信号)
*/
-
2、连接设备:openDevice(callback : (result : UTSJSONObject) => void)
openDevice((result) => {
console.log("Connection attempt result:", result);
});
3、监听设备连接状态:setConnectionStateListener(onStateChanged : (state : string, message : string) => void)
setConnectionStateListener((state, message) => {
console.log(`Connection state changed: ${state}, Message: ${message}`);
this.connectionStatus = state;
console.log(`状态: ${state} - ${message}`);
});
注:状态有三种:
CONNECTED,//已连接
DISCONNECTED,//断开连接
CONNECTING//连接中
4、读取usb串口数据:setReadCallbacks(onData : (data : UTSJSONObject) => void, onError : (error : UTSJSONObject) => void)
setReadCallbacks(
(data) => {
console.log("Data received:", data);
console.log(`收到数据: ${JSON.stringify(data)}`);
},
(error) => {
console.error("Error received:", error);
console.log(`发生错误: ${JSON.stringify(error)}`);
}
);
5、发送数据至usb串口:sendData(data : string) : boolean
const success = sendData("Hello from Vue!");
console.log(success ? "消息已发送" : "消息发送失败");
6、获取当前连接状态:isConnected() : boolean
const success = isConnected();
console.log(success ? "已连接" : "未连接");
7、关闭连接:closeDevice() : void
直接调用
closeDevice()
8、释放所有资源:release() : void
直接调用
release()
注意:当你确定不再使用USB功能时(例如页面销毁或应用退出),调用此方法后,如需再使用usb串口,必须再次初始化开始。