#ifndef GPIODRIVER_H
#define GPIODRIVER_H
#include "stm32f10x.h"

typedef struct
{
	GPIO_TypeDef * GPIO;		//GPIO A,B,C,D...
	uint8_t GPIO_Pin;				//numero de 0 à 15
	uint8_t GPIO_Conf;			//voir ci dessous
} MyGPIO_Struct_TypeDef;

#define In_Floating		0x04
#define In_PullDown		0x08
#define In_PullUp			0xF8
#define In_Analog			0x00
#define Out_PullUp		0x01
#define Out_OD				0x05
#define AltOut_Ppull	0x09
#define AltOut_OD			0x0d

int GPIO2Int(GPIO_TypeDef * GPIOX);
void MyGPIO_Init(MyGPIO_Struct_TypeDef * GPIOStructPtr);
int MyGPIO_Read(GPIO_TypeDef * GPIO, uint8_t GPIO_Pin);
void MyGPIO_Set(GPIO_TypeDef * GPIO, uint8_t GPIO_Pin);
void MyGPIO_Reset(GPIO_TypeDef * GPIO, uint8_t GPIO_Pin);
void MyGPIO_Toggle(GPIO_TypeDef * GPIO, uint8_t GPIO_Pin);

#endif
