USB-001-SERでRTS信号トグル実験 |
|
FTDI社のFT8U232AMを使用したUSB-SERIAL変換基板(USB-001-SER)で、D2XXダイレクドライバを用い、RTS信号をトグルする実験をしてみました。 |
波形にてしめします。約2mSから3mSかかっています。 クリックして拡大 |
以下にテスト用のソースを示します。ソースがすべて正しいとは限らないかもしれません。 |
// usb001s1.cpp : USB-001-SERでDXXダイレクトドライバを用いて、RTSなどの信号を制御する例 // #include "stdafx.h" #include "Ftd2xx.h" //FTDI社供給ヘッダファイル /** USB-001操作関数 **/ int USB_001_opn( void ); /* 使用開始 */ int USB_001_setRTS( int dt ); /* RTS信号制御 1/0 */ int USB_001_setDTR( int dt ); /* DTR信号制御 1/0 */ int USB_001_readCTS( void ); /* CTS信号読み込み 1/0 */ int USB_001_readDSR( void ); /* DSR信号読み込み 1/0 */ int USB_001_close( void ); /* 使用終了 */ FT_HANDLE USB_001_han; /* D2XX操作用ハンドル変数 */ int USB_001_opn( void ) /* 使用開始 */ { FT_STATUS st; st = FT_Open( 0, &USB_001_han ); if( st == FT_OK ){ return 1; }else{ return 0; } } int USB_001_setRTS( int dt ) /* RTS信号制御 1/0 */ { FT_STATUS st; if( dt == 0 ){ st = FT_SetRts( USB_001_han ); }else{ st = FT_ClrRts( USB_001_han ); } if( st == FT_OK ){ return 1; }else{ return 0; } } int USB_001_setDTR( int dt ) /* DTR信号制御 1/0 */ { FT_STATUS st; if( dt == 0 ){ st = FT_SetDtr( USB_001_han ); }else{ st = FT_ClrDtr( USB_001_han ); } if( st == FT_OK ){ return 1; }else{ return 0; } } int USB_001_readCTS( void ) /* CTS信号読み込み 1/0 */ { FT_STATUS st; DWORD mstat; st = FT_GetModemStatus( USB_001_han, &mstat ); if( mstat & 0x0000010 ){ return 1; }else{ return 0; } } int USB_001_readDSR( void ) /* DSR信号読み込み 1/0 */ { FT_STATUS st; DWORD rxb, txb, mstat; st = FT_GetModemStatus( USB_001_han, &mstat ); if( mstat & 0x0000020 ){ return 1; }else{ return 0; } } int USB_001_close( void ) /* 使用終了 */ { return( FT_Close( USB_001_han ) ); } void USB_test( void ) /* test */ { char k; int owari; int dt; int i; int stat; owari = 0; while(owari == 0){ if (USB_001_opn() /* 使用開始 */ != 1 ){ printf( "open error! \n " ); break; } dt = 1; for(i=0;i<1000;i++){ USB_001_setRTS( i & 1 ); /* RTS信号制御 1/0 */ } owari = 1; USB_001_close(); /* 使用終了 */ } } int main(int argc, char* argv[]) { printf("--Start--\n"); USB_test(); /* test */ printf("--End--\n"); return 0; } |
メールでのご質問はこちらへどうぞ |