20 #ifndef RTLIB_CORE_STM32F1_GPIO_H_
21 #define RTLIB_CORE_STM32F1_GPIO_H_
28 #include <libopencm3/stm32/gpio.h>
153 kNoJNTRST = AFIO_MAPR_SWJ_CFG_FULL_SWJ_NO_JNTRST,
238 kTIM5Ch4 = AFIO_MAPR_TIM5CH4_IREMAP,
249 kPD01 = AFIO_MAPR_PD01_REMAP,
259 kTIM4 = AFIO_MAPR_TIM4_REMAP,
267 kUSART2 = AFIO_MAPR_USART2_REMAP,
275 kUSART1 = AFIO_MAPR_USART1_REMAP,
283 kI2C1 = AFIO_MAPR_I2C1_REMAP,
291 kSPI1 = AFIO_MAPR_SPI1_REMAP,
301 kCAN1PA = AFIO_MAPR_CAN1_REMAP_PORTA,
312 kCAN1PB = AFIO_MAPR_CAN1_REMAP_PORTB,
322 kCAN1PD = AFIO_MAPR_CAN1_REMAP_PORTD,
440 kPTPPPS = AFIO_MAPR_PTP_PPS_REMAP,
461 kSPI3 = AFIO_MAPR_SPI3_REMAP,
482 kCAN2 = AFIO_MAPR_CAN2_REMAP,
515 kMisc = AFIO_MAPR2_MISC_REMAP,
525 kTIM12 = AFIO_MAPR2_TIM12_REMAP,
536 kTIM76DMA = AFIO_MAPR2_TIM76_DAC_DMA_REMAPE,
559 kTIM14 = AFIO_MAPR2_TIM14_REMAP,
571 kTIM13 = AFIO_MAPR2_TIM13_REMAP,
581 kTIM11 = AFIO_MAPR2_TIM11_REMAP,
591 kTIM10 = AFIO_MAPR2_TIM10_REMAP,
601 kTIM9 = AFIO_MAPR2_TIM9_REMAP,
612 kTIM1DMA = AFIO_MAPR2_TIM1_DMA_REMAP,
622 kCEC = AFIO_MAPR2_CEC_REMAP,
632 kTIM17 = AFIO_MAPR2_TIM17_REMAP,
642 kTIM16 = AFIO_MAPR2_TIM16_REMAP,
652 kTIM15 = AFIO_MAPR1_TIM16_REMAP
710 GPIO(
GPIO&& other) noexcept = default;
717 GPIO& operator=(
GPIO&& other) noexcept = default;
732 GPIO& operator=(const
GPIO&) = delete;
745 void Set(
bool state) const;
828 void InitRcc(
Port port)
const;
837 const Pinout& GetPinout()
const {
return pin_; }
847 #endif // defined(STM32F1)
849 #endif // RTLIB_CORE_STM32F1_GPIO_H_
unsigned Port
Type definition for MCU Port.
Definition: util.h:41
Ethernet PTP PPS Remapping.
ADC1 External Trigger Injected Conversion Remapping.
CAN1 RX/TX Port D Remapping.
TIM2 ETR/CH1-CH4 Partial Remapping (2).
SPI1 NSS/SCK/MISO/MOSI Remapping.
TIM6-TIM7 DAC to DMA Remapping.
TIM3 CH1-CH4 Full Remapping.
TIM3 CH1-CH2 Partial Remapping.
Output Mode at 10MHz max.
std::pair< Port, Pin > Pinout
Type definition for MCU Pinout.
Definition: util.h:49
Output Mode at 50MHz max.
bool Read() const
Reads the current logic state of the managed GPIO.
Definition: gpio.cpp:78
TIM3 No Remapping. (Default)
Use this GPIO as digital open-drain output.
NADV Connection Selection.
uint32_t AltFnMaps
Type definition for alternate function selection.
Definition: gpio.h:46
ADC2 External Trigger Injected Conversion Remapping.
TIM5 Channel 4 Internal Remapping.
USART3 No Remapping. (Default)
Mode mode
GPIO Output Speed.
Definition: gpio.h:678
PriRemap
Enumeration for the primary set of different alternate function remaps.
Definition: gpio.h:183
Disable both JTAG and SWD.
Disable JTAG but enable SWD.
SPI3 NSS/SCK/MISO/MOSI and I2S3 WS/CK/SD Remapping.
JTAGDisables
Enumeration for different Serial Wire JTAG states.
Definition: gpio.h:141
TIM1 BKIN/CH1N-CH3N Partial Remapping.
Use full JTAG capability.
static void SetPriAltFn(JTAGDisables swj_state, PriRemap map)
Configures one primary remap functionality.
Definition: gpio.h:798
Use full JTAG capability with JNTRST.
Use this GPIO as floating input.
Use this GPIO as analog input.
GPIO(const Config &config)
Conversion constructor.
Definition: gpio.cpp:32
SecRemap
Enumeration for the secondary set of different alternate function remaps.
Definition: gpio.h:503
Pinout pin
GPIO Pin to enable and initialize.
Definition: gpio.h:664
CAN1 RX/TX Port A Remapping.
Use this GPIO as digital push-pull output.
Ethernet MAC DV/RXD0-RXD3 Remapping.
TIM2 Internal Trigger 1 Remapping.
CAN1 RX/TX Port B Remapping.
Utility helpers for core library.
STM32F1xx-specific HAL implementation for GPIO pins.
Definition: gpio.h:41
void Reset() const
Resets the GPIO to its original configuration, i.e. when the RESET button is first pushed...
Definition: gpio.cpp:94
static void SetPriAltFn(JTAGDisables swj_state, AltFnMaps maps)
Configures the primary remap functionality of all GPIOs.
Definition: gpio.cpp:98
Use this GPIO as alternate function open-drain output.
TIM4 CH1/CH2/CH3/CH4 Remapping.
USART2 CTS/RTS/TX/RX/CK Remapping.
void Set(bool state) const
Sets new GPIO state.
Definition: gpio.cpp:82
ADC1 External Trigger Regulator Conversion Remapping.
ADC2 External Trigger Regulator Conversion Remapping.
TIM2 ETR/CH1-CH2 Partial Remapping (1).
USART3 TX/RX/CK/CTS/RTS Full Remapping.
Mode
Enumeration for different GPIO modes.
Definition: gpio.h:107
USART3 TX/RX/CK Partial Remapping.
TIM1 ETR/CH1-CH4/BKIN/CH1N-CH3N Full Remapping.
void Toggle() const
Toggles GPIO state. Logic High -> Logic Low and vice versa.
Definition: gpio.cpp:90
Configuration cnf
GPIO Mode.
Definition: gpio.h:671
TIM2 No Remapping. (Default)
TIM2 ETR/CH1-CH4 Full Remapping.
static void SetSecAltFn(AltFnMaps maps)
Configures the secondary remap functionality of all GPIOs.
Definition: gpio.cpp:102
Use this GPIO as alternate function push-pull output.
Use this GPIO as pull-up/pull-down input.
TIM1 No Remapping. (Default)
Configuration for GPIO.
Definition: gpio.h:658
static void SetSecAltFn(SecRemap map)
Configures one secondary remap functionality.
Definition: gpio.h:808
Miscellaneous Features Remapping.
Configuration
Enumeration for different GPIO configurations.
Definition: gpio.h:55