主题 : 6410串口读写问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 72881
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2012-06-29
最后登录: 2012-08-03
楼主  发表于: 2012-07-05 22:40

 6410串口读写问题

根据论坛里各位大侠的程序代码,进行串口的数据读取操作,但是为什么每次运行程序都会报错啊?就是“程序意外终止”!!!
我是个初学者,真的一点也不明白,恳请各位能够帮帮我!万分感谢!
PS:会不会是因为我的串口没有接数据,只是在模拟呢?

源代码
package my.practice.readSerial;



import android.app.Activity;
import android.content.DialogInterface;

import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

import com.friendlyarm.AndroidSDK.HardwareControler;


public class ReadSerial2Activity extends Activity {
    /** Called when the activity is first created. */
    int fd;
    HardwareControler seri = new HardwareControler();
    Handler handler=new Handler();
    Runnable updateThread=new Runnable(){
      public void run(){
        EditText myView=(EditText)findViewById(R.id.commucation_window);
        fd=HardwareControler.openSerialPort("/dev/s3c2410_serial2", 115200, 8, 1);
        int fuck=HardwareControler.select(fd,0,100);
        if(fuck==1)
       {
            System.out.println("1234");
            System.out.println("5678");
            String str2="123#";
            byte[] str1=str2.getBytes();
            //byte[] str1=new byte[300];
            int len = HardwareControler.read(fd, str1, 300);
            String str = new String(str1,0,len);
            myView.setText(str);
            handler.postDelayed(updateThread, 3000);
                                }
    }
};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        fd = HardwareControler.openSerialPort("/dev/s3c2410_serial2",115200, 8, 1);
        Button showButton=(Button)findViewById(R.id.showButton);
        class showButtonListener implements OnClickListener{
            public void onClick(View v){
                handler.post(updateThread);
            }
        }
        showButton.setOnClickListener(new showButtonListener());
}  ;}
级别: 新手上路
UID: 72881
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2012-06-29
最后登录: 2012-08-03
1楼  发表于: 2012-07-05 22:41
package my.test.read3;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.friendlyarm.AndroidSDK.HardwareControler;

public class Read3Activity extends Activity {
    private Button send;
    private Button clear;
    EditText sendEditText;
    TextView readTextView;
    private int fd;
    byte[] buf= new byte[300];
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        readTextView=(TextView)findViewById(R.id.text);
        sendEditText=(EditText)findViewById(R.id.editText);
        send=(Button)findViewById(R.id.send);
        clear=(Button)findViewById(R.id.clear);
        fd = HardwareControler.openSerialPort("/dev/s3c2410_serial2",9600, 8, 1);//打开串口
        if (fd != -1) {
            Toast.makeText(this, "success", 2000).show();
        } else {
            Toast.makeText(this, "wrong", 2000).show();
        }  
        readTextView.setMovementMethod(ScrollingMovementMethod.getInstance());
        new readThread().start();
        
        send.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                HardwareControler.write(fd, sendEditText.getText().toString().getBytes());
            }
        });
        clear.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
               sendEditText.setText("");    
            }
        });    
        }
        Handler handler = new Handler() {
        public void handleMessage(Message msg) {
                switch (msg.arg1) {
                case 0:
                    int len = HardwareControler.read(fd, buf, 30);    
                    String string = new String(buf, 0, len);
                    //readTextView.setText(string.toCharArray(),0,len);                        
                    readTextView.append(string+"/n");                                      
                    new readThread().start();//处理完消息后立即开启监听线程
                    break;
                case 1:
                    HardwareControler.setLedState(1, 0);
                    new readThread().start();
                    break;
                default:
                    break;
                }
            }
        };
        class readThread extends Thread//读取串口信息线程
        {        
            public void run()
            {
                Message msg = new Message();
              
                if (HardwareControler.select(fd,5,0)==1) {            
                    msg.arg1 = 0;      
                    HardwareControler.setLedState(0, 1);
                }
                else {
                    msg.arg1 =1;
                    HardwareControler.setLedState(1, 1);
                }
                handler.sendMessage(msg);
                }
        }
            
    
}

这一份也是同样的问题啊
级别: 新手上路
UID: 72881
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2012-06-29
最后登录: 2012-08-03
2楼  发表于: 2012-07-05 22:42
不知道大家在用自己写的串口读写程序进行调试的时候有没有出现这个问题???

“程序意外终止”!!!
急啊!求助!万分感谢啊!
级别: 新手上路
UID: 72881
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2012-06-29
最后登录: 2012-08-03
3楼  发表于: 2012-07-05 22:50
07-05 14:44:39.956: E/AndroidRuntime(367): java.lang.UnsatisfiedLinkError: openSerialPort
出现的错误提示!