windows如何读取安卓串口数据读取

windows如何读取安卓串口数据读取,第1张

1、安装串口监控软件:安装串口监控软件,如RealTerm, Putty等,可以实现对安卓串口数据的读取;

2、使用串口工具:Windows系统提供的串口工具Device Manager,可以实现与安卓设备的通讯;

3、使用安卓串口库调用:通过安卓串口库调用,从安卓串口中读取数据;

4、使用三方SDK:第三方软件开发工具,比如M2MGO SDK,也可以从安卓串口中读取数据。

代码如下:

import com.friendlyarm.AndroidSDK.HardwareControler

import android.app.Activity

import android.os.Bundle

import android.os.Handler

import android.os.Looper

import android.os.Message

public class MapGuider_Activity extends Activity{

private int serial_fd=0

private byte[] serial_RevBuf=new byte[100]

private byte[] serial_SendBuf="fsjajd".getBytes()

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState)

setContentView(R.layout.mapguider)

serial_fd=HardwareControler.openSerialPort("/dev/s3c2410_serial1", 115200, 8, 1)

if(serial_fd!=-1)

{

System.out.println("打开串口成功")

HardwareControler.write(serial_fd, serial_SendBuf)

lac_handler.post(RevicePosDataThread)

}

else

{

System.out.println("指定的串口不存在或在其它进程中已被打开")

}

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

HardwareControler.close(serial_fd)

System.out.println("关闭串口")

lac_handler.removeCallbacks(RevicePosDataThread)

super.onDestroy()

}

Handler lac_handler =new Handler(){

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

super.handleMessage(msg)

}

}

Runnable RevicePosDataThread =new Runnable()

{

int err=0

String s

public void run() {

// TODO Auto-generated method stub

while(true)

{

//Looper.prepare()

err=HardwareControler.select(serial_fd, 1, 0)

if(err==1)//有数据可读

{

HardwareControler.read(serial_fd, serial_RevBuf, 10)

s=new String(serial_RevBuf)

System.out.println("接收到串口数据"+s)

}

else if(err==0) //无数据可读

{

System.out.println("没有接收到串口数据")

}

else //出错

{

System.out.println("接收到串口数据出错")

}

try {

Thread.sleep(2)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

}

}

我这边也在做Android和硬件设备的串口通信。

我的通信方式很简单,我这边发送数据,接收数据(接收数据的内容中有标识位让我判断这次接收到的数据的相应处理动作)

读数据的时候我做的是一个清空的办法,每一次读取数据,如果读到的数据准确则进行处理,如果有误就清空了在读。

如果说接收的数据要对应上发送的数据,你可以在Android这边发送数据后不在发送数据只读取,并开启一个计时器,当这段时间内么有接收到返回值就继续你的发送和读取功能


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6775299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存