Projet-Voilier-3/driver/Driver_GPIO.h
2023-04-07 14:24:09 +02:00

64 lines
2.5 KiB
C
Raw Permalink Blame History

#ifndef DRIVER_GPIO_H
#define DRIVER_GPIO_H
#include "stm32f10x.h"
typedef struct
{
GPIO_TypeDef * GPIO ;
char GPIO_Pin ; //numero de 0 a 15
char GPIO_Conf ; // voir ci dessous
} MyGPIO_Struct_TypeDef ;
#define In_Floating 0x4
#define In_PullDown 0x8
#define In_PullUp 0x8
#define In_Analog 0x0
#define Out_Ppull 0x2
#define Out_OD 0x6
#define AltOut_Ppull 0xA
#define AltOut_OD 0xE
/**
*************************************************************************************************
* @brief Fonction d'initialisation pour les GPIO
* @param -> Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le pin, le port et la conf du GPIO
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr );
/**
*************************************************************************************************
* @brief Fonction pour lire l'<27>tat de la GPIO
* @param : Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le pin et le port
* @return : Renvoie 0 ou autre chose diff<66>rent de 0
*************************************************************************************************
*/
int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour set le pin voulu
* @param -> Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Set ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour reset le pin voulu
* @param -> Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Reset ( GPIO_TypeDef * GPIO , char GPIO_Pin );
/**
*************************************************************************************************
* @brief Fonction pour toogle le pin voulu
* @param -> Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le pin et le port
* @Note ->
*************************************************************************************************
*/
void MyGPIO_Toggle ( GPIO_TypeDef * GPIO , char GPIO_Pin ) ;
#endif