串口通讯程序 打开时有问题。
查看/etc/mdev.conf 文件,及相关资料《Mini2440 Linux移植开发实战指南.pdf》的文件系统启动过程分析,发现原来串口文件名发生了变化。
参考资料:
“。。。。可 以 看 到 , 原 本 串 口 驱 动 注 册 的 设 备 名 是 s3c2410_serial0, s3c2410_serial1 和
s3c2410_serial2,而 mdev 则会在/dev 目录下对应生成 ttySAC0, ttySAC1 和 ttySAC2 以符合
应用程序对于串口设备名称的习惯。同样的,/dev/sdcard 和/dev/udisk 永远分别指向 SD 卡和
U 盘的第一个分区。。。“
有误导的文章:
。。。
这个程序很简单,就是打开串口,直接把数据传出去。我这是直接通过String str="123#"写的,你也可以先建个控件EditText,把数据写在里面再发送出去,我目前就是这样写数据的。
package com.lab2;
import Android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import com.friendlyarm.AndroidSDK.HardwareControler;
public class Lab2 extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private Button myButton;
HardwareControler seri = new HardwareControler();
String str="123#";
byte[] str1=str.getBytes();
int fnum;
@SuppressWarnings("static-access")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton=(Button)findViewById(R.id.send);
myButton.setOnClickListener(this);
fnum=seri.openSerialPort("/dev/s3c2410_serial2", 19200, 8, 1);}
public void onClick(View v) {
switch (v.getId()) {
case R.id.send:
seri.write(fnum, str1);}
}
}
Timer timer = new Timer();
final Handler handler = new Handler(){
public void handleMessage(Message msg){
EditText readdisplay = (EditText) findViewById(R.id.readdisplay);
switch(msg.what){
case 1:{
readdisplay.setText(readserial.toString());
}
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask(){
public void run(){
Message message = new Message();
message.what = 1;
readserial = serial.ComRd(0, 50, 600);
handler.sendMessage(message);
}
};