1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > android ftdi 从 Android FTDI串行通信开始_ftdi_开发99编程知识库

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

时间:2023-11-28 00:49:19

相关推荐

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值:

確保你得到了" 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"/>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。