https://github.com/kongqw/AndroidSerialPort

https://github.com/dovginka/SerialPortLibs (亲测可用)

我稍微作了一下封装:

public void open(View view){
        Log.e(TAG, "open: ");
        if(serialIoManager == null){
            try {
                SerialUtil serialUtil = SerialUtil.INIT;
                serialUtil.init("dev/ttyS3",115200, 1);
                serialIoManager = new SerialIoManager(serialUtil, true);
                serialIoManager.setListener(this);
                Toast.makeText(this, "打开串口成功", Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    public void close(View view){
        Log.e(TAG, "close: " );
        if(serialIoManager != null){
            serialIoManager.stopMe();
            Toast.makeText(this, "关闭串口成功", Toast.LENGTH_SHORT).show();
        }
    }
    
    public void send(View view){
        String sendData = et_send_data.getText().toString();
        if(!sendData.isEmpty()){
            try {
                serialIoManager.syncWrite(sendData.getBytes("UTF-8"));
                Toast.makeText(this, "发送数据成功", Toast.LENGTH_SHORT).show();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
    }
    
    @Override
    public void responseData(final byte[] data) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                try {
                    tv_rec.setText(new String(data,"UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    @Override
    public void sendData(byte[] data) {
    
    }
    
    @Override
    public void onRunError(Exception e) {
        Log.e(TAG, "onRunError: ");
        Toast.makeText(this, "异常:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }


分类: 串口

0 条评论

发表回复

您的电子邮箱地址不会被公开。