import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.friendlyarm.AndroidSDK.HardwareControler;
public class TestActivity extends Activity {
int fd;
int select;
int read;
byte[] buf = new byte[20];
private TextView result;
private Button myBtn;
String str = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
result = (TextView)findViewById(R.id.resultTextView);
fd = HardwareControler.openSerialPort("/dev/s3c2410_serial1", 9600, 8, 1);
//查询信息
myBtn = (Button)findViewById(R.id.Button01);
myBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if( fd != -1 )
{
select = HardwareControler.select(fd, 1, 0); //哪位大哥能给小弟解释一下这个函数啊?后面两个数,是不是表示1秒又0毫秒呀?
if( select == 1 )
{
read = HardwareControler.read(fd, buf, 20);
if( read != 0 && read != -1)
{
str = buf.toString();
}
else
{
str = "无数据可读,read失败";
}
}
else if(select == 0)
{
str = "无数据可读";
}
}
else
{
str = "打开串口失败!";
}
result.setText(str);
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
HardwareControler.close(fd);
}
程序的结构总是select=0,可是我的确给串口发了信息了,通过超级终端和串口调试助手都试过了。
谢谢各位!!