請先看『使用說明』
IO Device:F75113 SMbus under Linux(64bit)
From LEXWiKi
Contents |
The Sample code source you can download from
Source file: Linux_F75113_SMBUSv1.0L_src.tar.gz
Binary file for x64: Linux_F75113_SMBUSv1.0L_bin.tar.gz
We do the demo test with a test tool which DIx connect to DOx with Relay.
How to use this Demo Application
1. Press the "Test" button to test CIO1 function
2. Press the "C2test" button to test CIO2 function
3. Press the "C3test" button to test CIO3 function
4. Press the "C4test" button to test CIO4 function
If the next picture appears
MB no SMBus or the drive placement is wrong
Drive the location for the next picture
F75113 GPIO Picture
Introduction
F75113 driver connection
hinstLib = LoadLibrary(L"Fintek.dll"); if (hinstLib == NULL) { if(Application->MessageBoxW(L"Load fail Fintek.dll,Continued?",L"Error",16+4)==IDNO) { Application->Terminate(); } return; }
GPIO Status Register Write
SETINT2PROC ProcAdd; char *endptr; char Numbers[] = "0x20"; char Value[] = "0xF0"; ProcAdd = (SETINT2PROC) GetProcAddress(hinstLib, "GPIO_SMBus_W"); if (NULL != ProcAdd) { if (! (*ProcAdd)( strtol(Numbers, &endptr, 16), strtol(Value, &endptr, 16))) { ShowMessage("Write Fail"); } }
GPIO Status Register Read
GETINT2PROC ProcAdd1; int datatest; char NRtest[] = "0x22"; ProcAdd1 = (GETINT2PROC) GetProcAddress(hinstLib, "GPIO_SMBus_R"); if (NULL != ProcAdd1) { if (! (*ProcAdd1)( strtol(NRtest, &endptr, 16), &datatest)) { ShowMessage("Read Fail"); } }
GPIO Comparison
if( data == 0xF0 ) { ((CStatic *)GetDlgItem(IDC_LED_DO0))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green))); ((CStatic *)GetDlgItem(IDC_LED_DO1))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green))); ((CStatic *)GetDlgItem(IDC_LED_DO2))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green))); ((CStatic *)GetDlgItem(IDC_LED_DO3))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green))); if( data2 == 0x01 ) { ((CStatic *)GetDlgItem(IDC_LED_DI0))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Green))); ((CStatic *)GetDlgItem(IDC_LED_DI1))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red))); ((CStatic *)GetDlgItem(IDC_LED_DI2))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red))); ((CStatic *)GetDlgItem(IDC_LED_DI4))->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_Red))); } ..... }
F75113 driver delete
char N9[] = "0x10"; char V9[] = "0x00"; ProcAdd = (SETINT2PROC) GetProcAddress(hinstLib, "GPIO_SMBus_W"); if (NULL != ProcAdd) { if (! (*ProcAdd)( strtol(N9, &endptr, 16), strtol(V9, &endptr, 16))) { ShowMessage("Write Fail"); } } if (hinstLib != NULL) { FreeLibrary(hinstLib); }