2011-12-17 61 views
8

任何人都知道如何在Android中設置與controlTransfer的奇偶校驗?設置奇偶校驗與控制傳輸方法

我無法在任何地方找到這個方法參數的解釋 - 只是參考文獻中的一些通用信息。我發現

一個例子說:

conn.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0); //data bit 8, parity none, stop bit 1, tx off 

但我需要改變的奇偶校驗。任何人有想法?

非常感謝!

+0

PLZ更新它,如果你找到答案..... – yokks 2012-07-01 10:26:35

回答

15

您可以定義位組合來創建您自己的配置(奇偶校驗,停止位&數據位)。

conn.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0); 

第一參數 - 0x40的 - 請求設置或獲取控制數據

#define FTDI_SIO_SET_DATA_REQUEST_TYPE 0x40 

第二參數 - 0×04 - 數據的類型來設置或獲取

#define FTDI_SIO_RESET  0 /* Reset the port */ 
#define FTDI_SIO_MODEM_CTRL  1 /* Set the modem control register */ 
#define FTDI_SIO_SET_FLOW_CTRL 2 /* Set flow control register */ 
#define FTDI_SIO_SET_BAUD_RATE 3 /* Set baud rate */ 
#define FTDI_SIO_SET_DATA 4 /* Set the data characteristics of the port */ 
#define FTDI_SIO_GET_MODEM_STATUS 5 /* Retrieve current value of modern status register */ 
#define FTDI_SIO_SET_EVENT_CHAR 6 /* Set the event character */ 
#define FTDI_SIO_SET_ERROR_CHAR 7 /* Set the error character */ 

第三參數 - ×0008 - 數據位8,奇偶校驗無,停止位1,關閉tx - 實際數據是否通過。

第三個參數是可以從常量下面定義來形成一個16位數據:

Bits 0 to 7 -- Number of data bits 

Bits 8 to 10 -- Parity 
      0 = None 
      1 = Odd 
      2 = Even 
      3 = Mark 
      4 = Space 
Bits 11 to 13 -- Stop Bits 
      0 = 1 
      1 = 1.5 
      2 = 2 
Bit 14 
      1 = TX ON (break) 
      0 = TX OFF (normal state) 
Bit15 -- Reserved 


#define FTDI_SIO_SET_DATA_REQUEST  FTDI_SIO_SET_DATA 

#define FTDI_SIO_SET_DATA_PARITY_NONE (0x0 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_ODD (0x1 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_EVEN (0x2 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_MARK (0x3 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_SPACE (0x4 << 8) 
#define FTDI_SIO_SET_DATA_STOP_BITS_1 (0x0 << 11) 
#define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11) 
#define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11) 
#define FTDI_SIO_SET_BREAK    (0x1 << 14) 

對於波特率:

* Value Baud Rate speed 
* 0×2710 300 
* 0×1388 600 
* 0x09C4 1200 
* 0x04E2 2400 
* 0×0271 4800 
* 0×4138 9600 
* 0x80D0 14400 
* 0x809C 19200 
* 0xC04E 38400 
* 0×0034 57600 
* 0x001A 115200 
* 0x000D 230400 
* 0×4006 460800 
* 0×8003 921600 
*/ 

請參考以下鏈接更多細節:

http://read.pudn.com/downloads181/sourcecode/embed/842049/usb/serial/ftdi_sio.h__.htm

http://www.mev.co.uk/pages/Support/USB-Baud-Spoof.html

+0

謝謝yokks !!!這些信息不容易找到。這真的幫助我克服了與目標USB設備通信的最後障礙。 – 2014-02-14 18:01:42