全然データが流れてこないと思ったら、ボーレートを設定するのを忘れていた。
PL-2303にコマンドで38400bpsに設定して、バルク転送で読み込むとGPSデータがNMEA形式で流れ込んできます。
PL-2303 Driver for BeOSのソースコードが参考になりました。ありがとうございました。
// pl2303.cpp 2011/10/14 #include "mbed.h" #include "USBHost.h" #include "Utils.h" #define PL2303_SET_LINE_CODING 0x20 u8 pl2303_buf[64]; void pl2303_Callback(int device, int endpoint, int status, u8* data, int len, void* userData) { //printfBytes("pl2303_bulk_Callback", data ,len); for (int i = 0; i < len; i++) { printf("%c", data[i]); } USBBulkTransfer(device, 0x83, pl2303_buf, sizeof(pl2303_buf), pl2303_Callback, userData); } int OnPL2303Insert(int device) { printf("PL-2303 inserted of %d\n",device); USBBulkTransfer(device, 0x83, pl2303_buf, sizeof(pl2303_buf), pl2303_Callback, (void*)0); u8 data[] = {0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x08}; // 38400bps,8bit USBControlTransfer(device, REQUEST_TYPE_CLASS | RECIPIENT_INTERFACE, PL2303_SET_LINE_CODING, 0, 0, data, sizeof(data)); return 0; }
---
0 件のコメント:
コメントを投稿