我正在尝试写一些东西到串口/ dev / ttyACM0(STM32)。 Andorid将STM32视为/ dev / bus / usb / 001/002。
我已经通过usb连接手机Nexus 6p和Stm32。
我看到了Google USB HOST示例,所以我尝试做同样的事情。
我与stm和授予权限连接
UsbDeviceConnection connection = mManager.openDevice(mdevice);
String simpleText = "a";
byte[] DATA = simpleText.getBytes(Charset.forName("UTF-8"));
int TIMEOUT = 10;
尝试这个
UsbEndpoint endpoint = mdevice.getInterface(0).getEndpoint(0);
connection.claimInterface(mdevice.getInterface(0), true);
connection.bulkTransfer(endpoint, DATA, DATA.length, TIMEOUT);
还有我的Stm中的小程序,用于从序列中读取
#include "mbed.h"
#include "LCD_DISCO_L476VG.h"
LCD_DISCO_L476VG lcd;
Serial pc(USBTX, USBRX);
DigitalOut led_green(LED1);
char c;
uint8_t buff[1];
int main() {
lcd.Clear();
while(1) {
if(pc.readable()) {
buff[0] = pc.getc();
lcd.DisplayString(buff);
}
}
}
但STm32 lcd中没有显示任何内容。
权限:
permission granted for device UsbDevice[mName=/dev/bus/usb/001/002,mVendorId=1155,mProductId=14155,mClass=239,mSubclass=2,mProtocol=1,mManufacturerName=STMicroelectronics,mProductName=STM32 STLink,mVersion=2.0,mSerialNumber=066FFF485649785087165544,mConfigurations=[
UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=150,mInterfaces=[
UsbInterface[mId=0,mAlternateSetting=0,mName=ST-Link Debug,mClass=255,mSubclass=255,mProtocol=255,mEndpoints=[
UsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=64,mInterval=0]
UsbEndpoint[mAddress=1,mAttributes=2,mMaxPacketSize=64,mInterval=0]
UsbEndpoint[mAddress=130,mAttributes=2,mMaxPacketSize=32,mInterval=0]]
UsbInterface[mId=1,mAlternateSetting=0,mName=ST-Link mass storage,mClass=8,mSubclass=6,mProtocol=80,mEndpoints=[
UsbEndpoint[mAddress=131,mAttributes=2,mMaxPacketSize=64,mInterval=0]
UsbEndpoint[mAddress=3,mAttributes=2,mMaxPacketSize=64,mInterval=0]]
UsbInterface[mId=2,mAlternateSetting=0,mName=ST-Link VCP Ctr,mClass=2,mSubclass=2,mProtocol=1,mEndpoints=[
UsbEndpoint[mAddress=132,mAttributes=3,mMaxPacketSize=2,mInterval=255]]
UsbInterface[mId=3,mAlternateSetting=0,mName=ST-Link VCP Dat,mClass=10,mSubclass=0,mProtocol=0,mEndpoints=[
UsbEndpoint[mAddress=5,mAttributes=2,mMaxPacketSize=8,mInterval=0]
UsbEndpoint[mAddress=133,mAttributes=2,mMaxPacketSize=16,mInterval=0]]]]
Meybe这是错的?
UsbEndpoint endpoint = mdevice.getInterface(0).getEndpoint(0);
有什么建议吗? :)