通过usb串口发送接收数据

USB通信使用系统api,USB转串口通信使用第三方库usb-serial-for-android,
串口通信使用Google官方库android-serialport-api。x

引入包后在本地下载的位置:C:\Users\Administrator\.gradle\caches\modules-2\files-2.1

在 Android 中,可以通过 USB 转串口适配器连接串口设备,并通过串口发送和接收数据。以下是一种常见的实现方式:

确认设备权限和支持:

1.在 AndroidManifest.xml 文件中添加 权限,以获取 USB 主机支持。
添加 权限,以获取 USB 设备权限。

2.获取 USB 设备列表:

使用 UsbManager 类的 getDeviceList() 方法获取已连接的 USB 设备列表。选择你需要连接的 USB 转串口适配器。
3.请求 USB 权限:

使用 UsbManager 类的 requestPermission() 方法向用户请求 USB 设备权限,并注册 BroadcastReceiver 监听权限授权结果。在广播接收器中处理权限授权结果。
4.打开和配置串口连接:

使用 UsbDeviceConnection 类的 open() 方法打开 USB 设备连接。
使用 UsbDeviceConnection 接口中的 setBaudRate()、setDataBits()、setStopBits()、setParity() 等方法配置串口参数。
5.发送数据:

创建 UsbDeviceConnection 对象后,通过 UsbDeviceConnection 的 bulkTransfer() 方法向串口发送数据。将要发送的数据作为字节数组传递给 bulkTransfer() 方法。
 



怎么样查看android设备上连接的串口
要查看 Android 设备上连接的串口设备,可以使用下面的步骤:

1.确保你的设备已经获取了相应的权限和功能支持。

在 AndroidManifest.xml 文件中添加 权限,以获取 USB 主机支持。
添加 权限,以获取 USB 设备权限。
2.使用 UsbManager 类获取连接的 USB 设备列表:
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap deviceList = usbManager.getDeviceList();
3.遍历设备列表,检查设备是否是串口设备:
for (UsbDevice device : deviceList.values()) {
    if (usbManager.hasPermission(device)) {
        // 检查设备是否是串口设备
        if (UsbSerialDevice.isSupported(device)) {
            // 设备是串口设备,可以进行相应的操作
            String deviceName = device.getDeviceName();
            int vendorId = device.getVendorId();
            int productId = device.getProductId();
            // 在这里处理找到的串口设备信息
        }
    }
}
4.处理找到的串口设备信息:

deviceName 是串口设备的名称,用于表示设备节点路径。
vendorId 是设备的供应商 ID。
productId 是设备的产品 ID。
 

现在,串口的话,遇到的问题就是用usb的线连接才能查看连接到androdi设备上的串口,但是又不知道到底哪个才是,拔掉的话又无法用命令进行控制。
所以,应该是可以通过写一个串口的android程序进行判断的,比如先把程序拷进板子里,然后打印出串口设备,然后通过usb连接线再次执行程序,肯定会与前一次有所差异,这样就能确定在android设备中是哪个串口了。
串口能的话,那么两个板子之间进行串口通信应该是没有什么问题了。


    

你可能感兴趣的:(android,android)