赞
踩
普通的手机、平板上是没有串口的,在特定的需求下,手机、平板或其他设备想要与硬件设备进行数据操作时可以额外增加串口,然后通过串口进行信息交互。
下面介绍串口的基本配置:
工具:Android Studio
前提:使用谷歌的串口调试程序进行相关操作,在设备有串口的情况下进行调试操作。
首先先进行串口的相关申明与配置:
build.gradle的相关配置:
在项目中加入相关的配置文件:
箭头所指的就是文件夹需要加入到项目中去,上方分享链接中的others.rar中有上图相关的配置文件。
在需要调用串口的相关文件中
在串口调试中需要先获取当前设备的串口号:
获取相关的串口号:
- String[] entryValues = mSerialPortFinder.getAllDevicesPath();
-
- //打开串口号 、dev/ttymxc3 选择波特率 115200
-
- ComA.setPort(entryValues[5]);
-
- ComA.setBaudRate("115200");
-
- OpenComPort(ComA);
获取完成后再打开串口:
//打开串口相关操作
- private void OpenComPort(SerialHelper ComPort) {
-
- try {
-
- ComPort.open();
-
- } catch (SecurityException e) {
-
- ShowMessage("打开串口失败:没有串口读/写权限!");
-
- } catch (IOException e) {
-
- ShowMessage("打开串口失败:未知错误!");
-
- } catch (InvalidParameterException e) {
-
- ShowMessage("打开串口失败:参数错误!");
-
- }
-
- }

//显示消息
- private void ShowMessage(String sMsg) {
-
- Toast.makeText(this, sMsg, Toast.LENGTH_SHORT).show();
-
- }
-
- private class SerialControl extends SerialHelper {
-
- public SerialControl() {
-
- }
-
- @Override
-
- protected void onDataReceived(final ComBean ComRecData) {
-
- // DispQueue.AddQueue(ComRecData);//线程定时刷新显示(推荐)
-
- receiveDataOne(ComRecData);
-
- }
-
- }

//返回值可能为多段,所以接收到的数据有可能缺少开始的1~2位数(具体的数值是由发送方决定)(错误)
//上面的是错误的,真正决定传输速度的是波特率,波特率的值越大传输速率越快(具体原因不清楚,待补充)
- final String res = MyFunc.hexStr2Str(MyFunc.byteArrayToHexString(ComRecData.bRec));
-
- NursingBedActivity.this.runOnUiThread(new Runnable() {
-
- @Override
-
- public void run() {
-
- text.setText(res);
-
- }
-
- });
-
- Log.e("打印的结果是:", res);
-
- }

//拿到这些数据后可以进行相关操作
在需要关闭串口时调用:
- CloseComPort(ComA);//传入当前的串口号
-
- //关闭串口
-
- private void CloseComPort(SerialHelper ComPort) {
-
- if (ComPort != null) {
-
- ComPort.stopSend();
-
- ComPort.close();
-
- }
-
- Log.e("CloseComport", ComPort.getPort() + "");
-
- }

在开发初期自身调试的时候可以使用串口调试工具进行调试、自测:
调试工具:用于向设备发送串口数据、接收设备发送的串口数据
上方链接中最下方的程序就是串口调试程序。
有道云笔记链接:有道云
该链接中的内容包括本文章的所有内容,但是由于本人比较菜,内容会随时更新。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。