第一篇:

Android串口通信(基于Tiny6410平台)

http://blog.chinaunix.net/uid-26153556-id-3088837.html

第二篇:

Tiny210(Android)串口收发测试通过

Tiny210搭载Android2.3.1系统,Android程序实现对板子上的串口的读写。首先将友善之臂的非开源的libfriendlyarm-hardware.so文件导入工程:在源码文件夹下新建libs文件夹,在里面新建armeabi文件夹,拷贝libfriendlyarm-hardware.so到armeabi里面,然后在eclipse的工程目录上右击点Refresh;然后添加HardwareControler.java:新建名为com.friendlyarm.AndroidSDK的Package包,新建HardwareControler.java文件,然后将代码拷进去;最后写自己的Android应用程序。注意:路径不能有一点错误,因为友善之臂提供的是静态库,所以必须按照他们给定的路径来。

下面是读写串口的程序。

工程目录为:


Java主程序代码:
package com.android.zxw;

import java.util.Arrays;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.os.Bundle;

import android.os.Handler;

import android.util.Xml.Encoding;

import android.view.KeyEvent;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import com.friendlyarm.AndroidSDK.HardwareControler;


public class Zxw2Activity extends Activity {

private TextView fdText;

private EditText senddata;

private EditText data1;

private Button openSerial;

private Button closeSerial;

private Button sendSerial;

private int fd;

Handler handler=new Handler();

Handler sendHandler=new Handler();

Runnable runnable=new Runnable(){

@Override

public void run()

{

ReadSerial();

//handler.postDelayed(this, 3000);

handler.post(this);

}

};

Runnable sendrunnable=new Runnable(){

@Override

public void run()

{

SendSerial();

//handler.postDelayed(this, 3000);

handler.post(this);

}

};

/**

*接收函数

*/

public void ReadSerial(){

//data1.setText(null);

//System.out.println(fd);

int m=HardwareControler.select(fd,2,20);

// System.out.println("a");

//System.out.println(m);

if(m==1)

{

byte[] buf =new byte[10];

try {

Thread.sleep(90);

} catch(InterruptedException e) {

//TODO Auto-generated catch block

e.printStackTrace();

}

int n=HardwareControler.read(fd, buf, buf.length);

// System.out.println("b");

//System.out.println(n);

System.out.println(Arrays.toString(buf));

data1.setText(data1.getText() + " " + Arrays.toString(buf));

}

}

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

fdText=(TextView) findViewById(R.id.fdText);

senddata=(EditText) findViewById(R.id.data);

data1=(EditText) findViewById(R.id.data1);

openSerial = (Button) findViewById(R.id.openSerial);

closeSerial = (Button) findViewById(R.id.closeSerial);

sendSerial = (Button) findViewById(R.id.sendSerial);

/**

* 软件运行就直接打开串口

*/

//TODO Auto-generated method stub

fd=HardwareControler.openSerialPort("/dev/s3c2410_serial3",115200,8,1);

fdText.setText(Integer.toString(fd));

handler.post(runnable);

sendHandler.post(sendrunnable);

// System.out.println("启动串口线程");

fdText.setText(fdText.getText() + "打开线程");


closeSerial.setOnClickListener(new Button.OnClickListener(){

@Override

public void onClick(View v) {

//TODO Auto-generated method stub

handler.removeCallbacks(runnable);

HardwareControler.close(fd);

fdText.setText("关闭串口");

}

});

/**

* 发送按钮

*/

sendSerial.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

SendSerial();

}

});

}

/**

* 发送函数,直接调用友善之臂提供的函数接口

* 我这里将(EditText)senddata中的内容变字符串再变bytes[]

* 接收到的结果有点不对

*/

public void SendSerial(){

HardwareControler.write(fd,senddata.gettext().toString().getBytes());

}

}

接收发送正常。

更多相关文章

  1. C语言函数以及函数的使用
  2. Android在SDcard建文件夹(在Android中移动文件必用)
  3. H5 Web网页通过JS(JavaScript)脚本调用Android本地原生方法函数
  4. 关于Android初级逻辑思考(续)——android文件夹讲解
  5. Android多国语言文件夹命名
  6. android 安卓创建文件夹
  7. android 回调函数二:应用实例
  8. Android通过串口与PC通信

随机推荐

  1. Android控件开发之TextView
  2. Android(安卓)Gradle 指南
  3. Maven Android(安卓)Plugin
  4. Android开发系列(一)
  5. Android横竖屏总结(转)
  6. Android(安卓)Activity去除标题栏和状态
  7. Android中使用XmlPullParse解析xml文件
  8. android textView加边框
  9. 【Android(安卓)Api 翻译1】Android(安卓
  10. 2013.04.03——— android 图片缓存之二L