gpio_stm32.h
Go to the documentation of this file.00001
00036 #ifndef GPIO_STM32_H
00037 #define GPIO_STM32_H
00038
00039 #include <io/stm32.h>
00040
00045 enum
00046 {
00047 GPIO_MODE_AIN = 0x0,
00048 GPIO_MODE_IN_FLOATING = 0x04,
00049 GPIO_MODE_IPD = 0x28,
00050 GPIO_MODE_IPU = 0x48,
00051 GPIO_MODE_OUT_OD = 0x14,
00052 GPIO_MODE_OUT_PP = 0x10,
00053 GPIO_MODE_AF_OD = 0x1C,
00054 GPIO_MODE_AF_PP = 0x18,
00055 };
00056
00057
00062 enum
00063 {
00064 GPIO_SPEED_10MHZ = 1,
00065 GPIO_SPEED_2MHZ,
00066 GPIO_SPEED_50MHZ,
00067 };
00068
00069
00077 INLINE void stm32_gpioPinWrite(struct stm32_gpio *base, uint16_t pins, bool val)
00078 {
00079 if (val)
00080 base->BSRR |= pins;
00081 else
00082 base->BRR |= pins;
00083 }
00084
00091 INLINE uint16_t stm32_gpioPinRead(struct stm32_gpio *base, uint16_t pins)
00092 {
00093 return (base->IDR & pins);
00094 }
00095
00104 int stm32_gpioPinConfig(struct stm32_gpio *base, uint16_t pins, uint8_t mode, uint8_t speed);
00105
00106 #endif