93 #include "stm32f4xx.h"
94 #include "stm32f4xx_gpio.h"
109 #define GPIO_PIN_0 ((uint16_t)0x0001)
110 #define GPIO_PIN_1 ((uint16_t)0x0002)
111 #define GPIO_PIN_2 ((uint16_t)0x0004)
112 #define GPIO_PIN_3 ((uint16_t)0x0008)
113 #define GPIO_PIN_4 ((uint16_t)0x0010)
114 #define GPIO_PIN_5 ((uint16_t)0x0020)
115 #define GPIO_PIN_6 ((uint16_t)0x0040)
116 #define GPIO_PIN_7 ((uint16_t)0x0080)
117 #define GPIO_PIN_8 ((uint16_t)0x0100)
118 #define GPIO_PIN_9 ((uint16_t)0x0200)
119 #define GPIO_PIN_10 ((uint16_t)0x0400)
120 #define GPIO_PIN_11 ((uint16_t)0x0800)
121 #define GPIO_PIN_12 ((uint16_t)0x1000)
122 #define GPIO_PIN_13 ((uint16_t)0x2000)
123 #define GPIO_PIN_14 ((uint16_t)0x4000)
124 #define GPIO_PIN_15 ((uint16_t)0x8000)
125 #define GPIO_PIN_ALL ((uint16_t)0xFFFF)
134 #define GPIO_Pin_0 ((uint16_t)0x0001)
135 #define GPIO_Pin_1 ((uint16_t)0x0002)
136 #define GPIO_Pin_2 ((uint16_t)0x0004)
137 #define GPIO_Pin_3 ((uint16_t)0x0008)
138 #define GPIO_Pin_4 ((uint16_t)0x0010)
139 #define GPIO_Pin_5 ((uint16_t)0x0020)
140 #define GPIO_Pin_6 ((uint16_t)0x0040)
141 #define GPIO_Pin_7 ((uint16_t)0x0080)
142 #define GPIO_Pin_8 ((uint16_t)0x0100)
143 #define GPIO_Pin_9 ((uint16_t)0x0200)
144 #define GPIO_Pin_10 ((uint16_t)0x0400)
145 #define GPIO_Pin_11 ((uint16_t)0x0800)
146 #define GPIO_Pin_12 ((uint16_t)0x1000)
147 #define GPIO_Pin_13 ((uint16_t)0x2000)
148 #define GPIO_Pin_14 ((uint16_t)0x4000)
149 #define GPIO_Pin_15 ((uint16_t)0x8000)
150 #define GPIO_Pin_All ((uint16_t)0xFFFF)
302 #define TM_GPIO_SetPinLow(GPIOx, GPIO_Pin) ((GPIOx)->BSRRH = (GPIO_Pin))
311 #define TM_GPIO_SetPinHigh(GPIOx, GPIO_Pin) ((GPIOx)->BSRRL = (GPIO_Pin))
321 #define TM_GPIO_SetPinValue(GPIOx, GPIO_Pin, val) ((val) ? TM_GPIO_SetPinHigh(GPIOx, GPIO_Pin) : TM_GPIO_SetPinLow(GPIOx, GPIO_Pin))
330 #define TM_GPIO_TogglePinValue(GPIOx, GPIO_Pin) ((GPIOx)->ODR ^= (GPIO_Pin))
339 #define TM_GPIO_SetPortValue(GPIOx, value) ((GPIOx)->ODR = (value))
348 #define TM_GPIO_GetInputPinValue(GPIOx, GPIO_Pin) (((GPIOx)->IDR & (GPIO_Pin)) == 0 ? 0 : 1)
357 #define TM_GPIO_GetOutputPinValue(GPIOx, GPIO_Pin) (((GPIOx)->ODR & (GPIO_Pin)) == 0 ? 0 : 1)
365 #define TM_GPIO_GetPortInputValue(GPIOx) ((GPIOx)->IDR)
373 #define TM_GPIO_GetPortOutputValue(GPIOx) ((GPIOx)->ODR)
398 void TM_GPIO_Lock(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
TM_GPIO_Mode_t
GPIO Mode enumeration.
Definition: tm_stm32f4_gpio.h:166
uint16_t TM_GPIO_GetFreePins(GPIO_TypeDef *GPIOx)
Gets bit separated pins which were not used at in library or were deinitialized.
Definition: tm_stm32f4_gpio.h:169
void TM_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Deinitializes pin(s)
TM_GPIO_OType_t
GPIO Output type enumeration.
Definition: tm_stm32f4_gpio.h:176
Definition: tm_stm32f4_gpio.h:185
Definition: tm_stm32f4_gpio.h:168
void TM_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, TM_GPIO_Mode_t GPIO_Mode, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed)
Initializes GPIO pins(s)
void TM_GPIO_SetPinAsAnalog(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Sets pin(s) as analog.
Definition: tm_stm32f4_gpio.h:187
Definition: tm_stm32f4_gpio.h:178
Definition: tm_stm32f4_gpio.h:167
void TM_GPIO_InitAlternate(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed, uint8_t Alternate)
Initializes GPIO pins(s) as alternate function.
TM_GPIO_PuPd_t
GPIO pull resistors enumeration.
Definition: tm_stm32f4_gpio.h:194
Definition: tm_stm32f4_gpio.h:196
uint16_t TM_GPIO_GetUsedPins(GPIO_TypeDef *GPIOx)
Gets bit separated pins which were used at least once in library and were not deinitialized.
Definition: tm_stm32f4_gpio.h:170
void TM_GPIO_Lock(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Locks GPIOx register for future changes.
Definition: tm_stm32f4_gpio.h:177
Definition: tm_stm32f4_gpio.h:197
Definition: tm_stm32f4_gpio.h:186
void TM_GPIO_SetPullResistor(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, TM_GPIO_PuPd_t GPIO_PuPd)
Sets pull resistor settings to GPIO pin(s)
uint16_t TM_GPIO_GetPortSource(GPIO_TypeDef *GPIOx)
Gets port source from desired GPIOx PORT.
void TM_GPIO_SetPinAsOutput(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Sets pin(s) as output.
uint16_t TM_GPIO_GetPinSource(uint16_t GPIO_Pin)
Gets pin source from desired GPIO pin.
void TM_GPIO_SetPinAsInput(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Sets pin(s) as input.
TM_GPIO_Speed_t
GPIO Speed enumeration.
Definition: tm_stm32f4_gpio.h:184
void TM_GPIO_SetPinAsAlternate(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
Sets pin(s) as alternate function.
Definition: tm_stm32f4_gpio.h:188
Definition: tm_stm32f4_gpio.h:195