Difference between revisions of "Fitlet GPIO SDK for Windows"
(→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: | ||
− | |||
− | |||
− | |||
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.
- include "stdafx.h"
- include "windows.h"
- 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; }