欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

安卓开发,安卓串口转USB通信

程序员文章站 2022-03-26 13:17:29
1.新建一个安卓项目。 2.引入jar包:CH34xUARTDriver.jar(下载后直接拖入项目的libs下就可以了) 3.右键点击jar包,导入项目中(到时会弹出一个框,直接点ok就可以了) 4.检查libs文件是否与图片一致 5.可以开始写入你的代码了。在MainActivity中就可以调用 ......

1.新建一个安卓项目。

安卓开发,安卓串口转USB通信

 

 2.引入jar包:ch34xuartdriver.jar(下载后直接拖入项目的libs下就可以了)

安卓开发,安卓串口转USB通信

 

 3.右键点击jar包,导入项目中(到时会弹出一个框,直接点ok就可以了)

安卓开发,安卓串口转USB通信

 

 4.检查libs文件是否与图片一致

安卓开发,安卓串口转USB通信

 

5.可以开始写入你的代码了。在mainactivity中就可以调用串口代码了。

//初始化,并判断手机是否支持
myapp.driver = new ch34xuartdriver(
        (usbmanager) getsystemservice(context.usb_service), this,
        action_usb_permission);
//initui();

if (!myapp.driver.usbfeaturesupported())// 判断系统是否支持usb host
{
    dialog dialog = new alertdialog.builder(mainactivity.this)
            .settitle("提示")
            .setmessage("您的手机不支持usb host,请更换其他手机再试!")
            .setpositivebutton("确认",
                    new dialoginterface.onclicklistener() {

                        @override
                        public void onclick(dialoginterface arg0,
                                            int arg1) {
                             system.exit(0);
                        }
                    }).create();
    dialog.setcanceledontouchoutside(false);
    dialog.show();
}

 6.打开连接,并初始化串口。

 public void myopen(view view){
        baudrate = 115200;
        databit = 8;
        stopbit = 1;
        parity = 0;
        flowcontrol = 0;
        if (!isopen) {
            retval = myapp.driver.resumeusblist();
            if (retval == -1)// resumeusblist方法用于枚举ch34x设备以及打开相关设备
            {
                toast.maketext(mainactivity.this, "打开设备失败!",
                        toast.length_short).show();
                myapp.driver.closedevice();
            } else if (retval == 0){
                if (!myapp.driver.uartinit()) {//对串口设备进行初始化操作
                    toast.maketext(mainactivity.this, "设备初始化失败!",
                            toast.length_short).show();
                    toast.maketext(mainactivity.this, "打开" +
                                    "设备失败!",
                            toast.length_short).show();
                    return;
                }
                toast.maketext(mainactivity.this, "打开设备成功!",
                        toast.length_short).show();
                myapp.driver.setconfig(baudrate, databit, stopbit, parity,flowcontrol);
                isopen = true;
                //openbutton.settext("close");
                //configbutton.setenabled(true);
                //writebutton.setenabled(true);
                //new mainactivity.readthread().start();//开启读线程读取串口接收的数据
            } else {

                alertdialog.builder builder = new alertdialog.builder(activity);
                builder.seticon(r.mipmap.ic_launcher);
                builder.settitle("未授权限");
                builder.setmessage("确认退出吗?");
                builder.setpositivebutton("确定", new dialoginterface.onclicklistener() {

                    @override
                    public void onclick(dialoginterface dialog, int which) {
                        // todo auto-generated method stub
//                      mainfragmentactivity.this.finish();
                        system.exit(0);
                    }
                });
                builder.setnegativebutton("返回", new dialoginterface.onclicklistener() {

                    @override
                    public void onclick(dialoginterface dialog, int which) {
                        // todo auto-generated method stub

                    }
                });
                builder.show();

            }
        } else {
            //openbutton.settext("open");
            //configbutton.setenabled(false);
            //writebutton.setenabled(false);
            isopen = false;
            try {
                thread.sleep(200);
            } catch (interruptedexception e) {
                // todo auto-generated catch block
                e.printstacktrace();
            }
            myapp.driver.closedevice();
            totalrecv = 0;
        }

    }
这样,你就可以开始与串口通信了。接收数据的方法就不详细写了,有很多巨人已经帮我们实现了。网上也有官方的案例,请大家自行前往啦。
 转自:https://www.cnblogs.com/jobyym/p/12679925.html