35 lines
993 B
C
35 lines
993 B
C
#include "GPIO.h"
|
|
#include "stm32f1xx_ll_gpio.h"
|
|
|
|
void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outputType, uint32_t pullMode){
|
|
|
|
LL_GPIO_InitTypeDef init;
|
|
|
|
//Activation de l'horloge
|
|
if (GPIOx == GPIOA) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
|
|
else if (GPIOx == GPIOB) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB);
|
|
else if (GPIOx == GPIOC) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
|
|
else if (GPIOx == GPIOD) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOD);
|
|
|
|
//Configuration du PIN
|
|
LL_GPIO_StructInit(&init);
|
|
init.Pin = PINx;
|
|
init.Mode = mode;
|
|
//init.Speed = ;
|
|
init.OutputType = outputType;
|
|
init.Pull = pullMode;
|
|
LL_GPIO_Init(GPIOx, &init);
|
|
}
|
|
|
|
void GPIO_setPin(GPIO_TypeDef * GPIOx, uint32_t PINx, int output){
|
|
|
|
if (output) LL_GPIO_SetOutputPin(GPIOx, PINx);
|
|
else LL_GPIO_ResetOutputPin(GPIOx,PINx);
|
|
|
|
};
|
|
|
|
int GPIO_readPin(GPIO_TypeDef * GPIOx, uint32_t PINx){
|
|
|
|
return LL_GPIO_IsOutputPinSet(GPIOx, PINx);
|
|
|
|
}
|