串口通訊程序 打開時有問題。
查看/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,把數據寫在裏面再發送出去,我目前就是這樣寫數據的。讀數據的程序你可以在http://www.arm9home.net/read.php?tid-12758.html
這個帖子裏看。
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);
}
};