Difference between revisions of "Fitlet GPIO SDK for Windows"

From fit-PC wiki
Jump to: navigation, search
(Installation)   (change visibility)
Line 4: Line 4:
 
== Installation ==
 
== Installation ==
 
Installation
 
Installation
 +
* Download the GPIO driver to the fitlet.
 +
*Run the fitlet_GPIO_Driver_1.0.exe in Administrator mode and follow the on-screen instructions.
 +
 +
== API ==
 +
*The driver will install the GPIO.dll file to the C:\Windows\System\ folder.
 +
*The GPIO.dll exposes the following functions:
  
Download the GPIO driver to the fitlet. Run the fitlet_GPIO_Driver_1.0.exe in Administrator mode and follow the on-screen instructions.
 
The driver will install the GPIO.dll file to the C:\Windows\System\ folder. The GPIO.dll exposes the following functions:
 
  
===============================================
 
 
Name:  GPIO_Config
 
Name:  GPIO_Config
  
Line 27: Line 30:
 
               FALSE - configuraqtion failed                 
 
               FALSE - configuraqtion failed                 
 
               TRUE -  configuration succeeded     
 
               TRUE -  configuration succeeded     
===============================================
+
 
 +
 
 
Name:  GPIO_Set
 
Name:  GPIO_Set
  
Line 42: Line 46:
 
             FALSE - configuration failed                 
 
             FALSE - configuration failed                 
 
             TRUE -  configuration succeeded     
 
             TRUE -  configuration succeeded     
===============================================
+
 
 +
 
 
Name:  GPIO_Get
 
Name:  GPIO_Get
  
Line 53: Line 58:
  
 
Return:  GPIO input pin value (0 – low, 1 - high)
 
Return:  GPIO input pin value (0 – low, 1 - high)
===============================================
 
  
  
 +
== Sample Application ==
 
The following example demonstrates the simple control of a GPIO pins.
 
The following example demonstrates the simple control of a GPIO pins.
  

Revision as of 15:13, 2 November 2015

fitlet GPIO SDK for Windows

Installation

Installation

  • Download the GPIO driver to the fitlet.
  • Run the fitlet_GPIO_Driver_1.0.exe in Administrator mode and follow the on-screen instructions.

API

  • The driver will install the GPIO.dll file to the C:\Windows\System\ folder.
  • The GPIO.dll exposes the following functions:


Name: GPIO_Config

Definition: BOOL GPIO_Config(UINT8 gpioNum,

                                            UINT8 gpioDir,
                                            UINT8 gpioPullUp,

UINT8 gpioPullDown)

Description: Confgure the GPIO pin

Arguments:

 gpioNum -       GPIO number (1-9)
 gpioDir -          GPIO direction (0 – input, 1 – output)
 gpioPullUp -     GPIO pull-up (0 – disabled, 1 – enabled)
 gpioPullDown - GPIO pull-down (0 – disabled, 1 – enabled)

Return: GPIO pin configuration status

             FALSE - configuraqtion failed                 
             TRUE -  configuration succeeded    


Name: GPIO_Set

Definition: BOOL GPIO_Set(UINT8 gpioNum,

                                        UINT8 gpioValue)

Description: Set the value of GPIO output pin

Arguments:

 gpioNum -   GPIO number (1-9)
 gpioValue - GPIO output pin value (0 – low, 1 – high)

Return: GPIO output pin configuration status

            FALSE - configuration failed                 
            TRUE -  configuration succeeded    


Name: GPIO_Get

Definition: UINT8 GPIO_Get(UINT8 gpioNum)

Description: Get the value of the GPIO input pin

Arguments:

 gpioNum - GPIO number (1-9)

Return: GPIO input pin value (0 – low, 1 - high)


Sample Application

The following example demonstrates the simple control of a GPIO pins.

  1. include "stdafx.h"
  2. include "windows.h"
  3. include "stdio.h"

int _tmain(int argc, _TCHAR* argv[]) { typedef BOOL (WINAPI* LPGPIO_CONFIG)(UINT8, UINT8, UINT8, UINT8); typedef BOOL (WINAPI* LPGPIO_SET)(UINT8, UINT8); typedef UINT8 (WINAPI* LPGPIO_GET)(UINT8);

HINSTANCE hDLL; LPGPIO_CONFIG GPIO_Config; LPGPIO_SET GPIO_Set; LPGPIO_GET GPIO_Get;

// Load the GPIO DLL hDLL = LoadLibrary(TEXT("C:\\Windows\\System\\GPIO"));

// Obtain the exported functions of the GPIO DLL if (hDLL != NULL) { GPIO_Config = (LPGPIO_CONFIG)GetProcAddress(hDLL, "GPIO_Config"); if (!GPIO_Config) { printf("GetProcAddress GPIO_Config error: %d\n", GetLastError()); FreeLibrary(hDLL); return -1; }

GPIO_Set = (LPGPIO_SET)GetProcAddress(hDLL, "GPIO_Set"); if (!GPIO_Set) { printf("GetProcAddress GPIO_Set error: %d\n", GetLastError()); FreeLibrary(hDLL); return -1; }

GPIO_Get = (LPGPIO_GET)GetProcAddress(hDLL, "GPIO_Get"); if (!GPIO_Get) { printf("GetProcAddress GPIO_Get error: %d\n", GetLastError()); FreeLibrary(hDLL); return -1; }

} else printf("LoadLibrary error: %d\n", GetLastError());

// Configure GPIO1 as output with pull-up enabled and pull-down disabled if (!(GPIO_Config(1, 1, 1, 0))) { FreeLibrary(hDLL); printf("GPIO_Config Error\n"); return 0; }

// Configure GPIO2 as input with pull-up enabled and pull-down disabled if (!(GPIO_Config(2, 0, 1, 0))) { FreeLibrary(hDLL); printf("GPIO_Config Error\n"); return 0; }

   // Set GPIO1 output pin to HIGH

printf("Set GPIO1 - 1\n"); if (!(GPIO_Set(1, 1))) { FreeLibrary(hDLL); printf("GPIO_Set Error\n"); return 0; } Sleep(100); // read the GPIO2 printf("Get GPIO2 - %d\n\n", GPIO_Get(2));

   // Set GPIO1 output pin to LOW

printf("Set GPIO1 - 0\n"); if (!(GPIO_Set(1, 0))) { FreeLibrary(hDLL); printf("GPIO_Set Error\n"); return 0; } Sleep(100); // Read the GPIO2 printf("Get GPIO2 - %d\n\n", GPIO_Get(2));

FreeLibrary(hDLL);

return 0; }