android ftdi,从 Android FTDI串行通信开始_ftdi_开发99编程知识库

如果你仍然需要它: 這裡代碼僅用於由UART發送的"正在讀取"ftdi值,你需要使用uController發送UART數據。

如果要發送,請將UART數據作為十六進位代碼發送 0x23,0x31,0x32,0x33,0x23,0x31,0x32,0x33,0x23,0x31,0x32,0x33, 你將得到 #123#123#123,代碼將分開它並顯示它,簽出XML文件。 ascii值:

0475a83698cbf65be1547b1c32ded255.png

確保你得到了" ftdriver.jar",只需按下Ctrl+Shift+O代碼后按,並且 FTDI deriver會在導入時改變。 右鍵單擊 project-> properties-> Java Build Path-> 添加 jars 。 如果你的" ftdriver.jar"還沒有在那裡的話。

更改rbuf大小,我發送 3浮點數,每一個都是 8位元組長 8 *3+3(for ( # ) = 24 +3=27

更改為byte[] rbuf = new byte[12]

因為:#123#123#123 -12位元組長度

重要:將UART波特率設置為 115200或者將Java代碼更改為波特率。 在代碼 BAUD115200 。

Java:package com.yourpackage.yourpackage;

import java.io.UnsupportedEncodingException;

import jp.ksksue.driver.serial.FTDriver;

import android.app.Activity;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.usb.UsbManager;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class FTDI extends Activity{

//[FTDriver] Object

FTDriver mSerial;

//[FTDriver] Permission String

private static final String ACTION_USB_PERMISSION ="jp.ksksue.tutorial.USB_PERMISSION";

Button btnRead;

TextView Monitor,Monitor2,Monitor3;

TextView val,val2,val3;

TextView indicator;

StringBuffer mText1 = new StringBuffer();

int i,len;

String Text=null, d1=null, d2=null, d3=null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.ftdisub);

btnRead = (Button) findViewById(R.id.btnRead);

Monitor = (TextView)findViewById(R.id.onitor);

Monitor2 = (TextView)findViewById(R.id.onitor2);

Monitor3 = (TextView)findViewById(R.id.onitor3);

val = (TextView)findViewById(R.id.dec);

val2 = (TextView)findViewById(R.id.dec2);

val3 = (TextView)findViewById(R.id.dec3);

indicator = (TextView)findViewById(R.id.indicator);

//[FTDriver] Create Instance

mSerial = new FTDriver((UsbManager)getSystemService(Context.USB_SERVICE));

//[FTDriver] setPermissionIntent() before begin()

PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);

mSerial.setPermissionIntent(permissionIntent);

//[FTDriver] Open USB Serial

if(mSerial.begin(FTDriver.BAUD115200)) {

btnRead.setEnabled(true);

Toast.makeText(this,"connected", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this,"cannot connect", Toast.LENGTH_SHORT).show();

}

}

@Override

public void onDestroy() {

super.onDestroy();

//[FTDriver] Close USB Serial

mSerial.end();

}

public void onReadClick(View view) throws UnsupportedEncodingException {

//[FTDriver] Create Read Buffer

byte[] rbuf = new byte[27];//1byte 4096 byte

//[FTDriver] Read from USB Serial

len = mSerial.read(rbuf);

for(i=0; i

mText1.append((char) rbuf[i]);

}

Text = mText1.toString();//Text=string with the buffer value.

String[] Splited = Text.split("#");

Long r = Long.parseLong(Splited[1], 16);

Float f1 = Float.intBitsToFloat(r.intValue());

d1 = f1.toString();

val.setText(d1);

Long r2 = Long.parseLong(Splited[2], 16);

Float f2 = Float.intBitsToFloat(r2.intValue());

d2 = f2.toString();

val2.setText(d2);

Long r3 = Long.parseLong(Splited[3], 16);

Float f3 = Float.intBitsToFloat(r3.intValue());

d3 = f3.toString();

val3.setText(d3);

String[] Fields = {d1,d2,d3};

Monitor.setText(Splited[1]);

Monitor2.setText(Splited[2]);

Monitor3.setText(Splited[3]);

rbuf = null;

}

}

xml:<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/btnRead"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="onReadClick"

android:text="Read"/>

android:id="@+id/dec"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="value"/>

android:id="@+id/dec2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="value"/>

android:id="@+id/dec3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="value"/>

android:id="@+id/indicator"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="index"/>

android:id="@+id/onitor"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="1"/>

android:id="@+id/onitor2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="2"/>

android:id="@+id/onitor3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="3"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值