android如何读取串口数据

aloie 2011-04-29 10:46:41
模拟器上可以模拟吗?
或者用java如何读取?
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongge2 2014-01-04
  • 打赏
  • 举报
回复
import com.friendlyarm.AndroidSDK.HardwareControler; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; public class MapGuider_Activity extends Activity{ private int serial_fd=0; private byte[] serial_RevBuf=new byte[100]; private byte[] serial_SendBuf="fsjajd".getBytes(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.mapguider); serial_fd=HardwareControler.openSerialPort("/dev/s3c2410_serial1", 115200, 8, 1); if(serial_fd!=-1) { System.out.println("打开串口成功"); HardwareControler.write(serial_fd, serial_SendBuf); lac_handler.post(RevicePosDataThread); } else { System.out.println("指定的串口不存在或在其它进程中已被打开"); } } @Override protected void onDestroy() { // TODO Auto-generated method stub HardwareControler.close(serial_fd); System.out.println("关闭串口"); lac_handler.removeCallbacks(RevicePosDataThread); super.onDestroy(); } Handler lac_handler =new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); } }; Runnable RevicePosDataThread =new Runnable() { int err=0; String s; public void run() { // TODO Auto-generated method stub while(true) { //Looper.prepare(); err=HardwareControler.select(serial_fd, 1, 0); if(err==1)//有数据可读 { HardwareControler.read(serial_fd, serial_RevBuf, 10); s=new String(serial_RevBuf); System.out.println("接收到串口数据"+s); } else if(err==0) //无数据可读 { System.out.println("没有接收到串口数据"); } else //出错 { System.out.println("接收到串口数据出错"); } try { Thread.sleep(2); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; }
aloie 2011-04-30
  • 打赏
  • 举报
回复
看上去挺复杂的,我应该看写什么方面的资料??
念茜 2011-04-30
  • 打赏
  • 举报
回复
1.linux下对串口的常规操作
2.Jni
念茜 2011-04-29
  • 打赏
  • 举报
回复
模拟器我没有用过不知道,但是那东西应该模拟不出个串口来吧??

java只能写应用层,底层可用linux c 实现

fd=open(device,权限);
bytes=read(fd,buf,n);

封装相应接口传递给java

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧