21 #ifndef STM32F1xx_LL_GPIO_H
22 #define STM32F1xx_LL_GPIO_H
35 #if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG)
49 #define GPIO_PIN_MASK_POS 8U
50 #define GPIO_PIN_NB 16U
56 #if defined(USE_FULL_LL_DRIVER)
67 #if defined(USE_FULL_LL_DRIVER)
99 } LL_GPIO_InitTypeDef;
114 #define LL_GPIO_PIN_0 ((GPIO_BSRR_BS0 << GPIO_PIN_MASK_POS) | 0x00000001U)
115 #define LL_GPIO_PIN_1 ((GPIO_BSRR_BS1 << GPIO_PIN_MASK_POS) | 0x00000002U)
116 #define LL_GPIO_PIN_2 ((GPIO_BSRR_BS2 << GPIO_PIN_MASK_POS) | 0x00000004U)
117 #define LL_GPIO_PIN_3 ((GPIO_BSRR_BS3 << GPIO_PIN_MASK_POS) | 0x00000008U)
118 #define LL_GPIO_PIN_4 ((GPIO_BSRR_BS4 << GPIO_PIN_MASK_POS) | 0x00000010U)
119 #define LL_GPIO_PIN_5 ((GPIO_BSRR_BS5 << GPIO_PIN_MASK_POS) | 0x00000020U)
120 #define LL_GPIO_PIN_6 ((GPIO_BSRR_BS6 << GPIO_PIN_MASK_POS) | 0x00000040U)
121 #define LL_GPIO_PIN_7 ((GPIO_BSRR_BS7 << GPIO_PIN_MASK_POS) | 0x00000080U)
122 #define LL_GPIO_PIN_8 ((GPIO_BSRR_BS8 << GPIO_PIN_MASK_POS) | 0x04000001U)
123 #define LL_GPIO_PIN_9 ((GPIO_BSRR_BS9 << GPIO_PIN_MASK_POS) | 0x04000002U)
124 #define LL_GPIO_PIN_10 ((GPIO_BSRR_BS10 << GPIO_PIN_MASK_POS) | 0x04000004U)
125 #define LL_GPIO_PIN_11 ((GPIO_BSRR_BS11 << GPIO_PIN_MASK_POS) | 0x04000008U)
126 #define LL_GPIO_PIN_12 ((GPIO_BSRR_BS12 << GPIO_PIN_MASK_POS) | 0x04000010U)
127 #define LL_GPIO_PIN_13 ((GPIO_BSRR_BS13 << GPIO_PIN_MASK_POS) | 0x04000020U)
128 #define LL_GPIO_PIN_14 ((GPIO_BSRR_BS14 << GPIO_PIN_MASK_POS) | 0x04000040U)
129 #define LL_GPIO_PIN_15 ((GPIO_BSRR_BS15 << GPIO_PIN_MASK_POS) | 0x04000080U)
130 #define LL_GPIO_PIN_ALL (LL_GPIO_PIN_0 | LL_GPIO_PIN_1 | LL_GPIO_PIN_2 | \
131 LL_GPIO_PIN_3 | LL_GPIO_PIN_4 | LL_GPIO_PIN_5 | \
132 LL_GPIO_PIN_6 | LL_GPIO_PIN_7 | LL_GPIO_PIN_8 | \
133 LL_GPIO_PIN_9 | LL_GPIO_PIN_10 | LL_GPIO_PIN_11 | \
134 LL_GPIO_PIN_12 | LL_GPIO_PIN_13 | LL_GPIO_PIN_14 | \
143 #define LL_GPIO_MODE_ANALOG 0x00000000U
144 #define LL_GPIO_MODE_FLOATING GPIO_CRL_CNF0_0
145 #define LL_GPIO_MODE_INPUT GPIO_CRL_CNF0_1
146 #define LL_GPIO_MODE_OUTPUT GPIO_CRL_MODE0_0
147 #define LL_GPIO_MODE_ALTERNATE (GPIO_CRL_CNF0_1 | GPIO_CRL_MODE0_0)
155 #define LL_GPIO_OUTPUT_PUSHPULL 0x00000000U
156 #define LL_GPIO_OUTPUT_OPENDRAIN GPIO_CRL_CNF0_0
164 #define LL_GPIO_MODE_OUTPUT_10MHz GPIO_CRL_MODE0_0
165 #define LL_GPIO_MODE_OUTPUT_2MHz GPIO_CRL_MODE0_1
166 #define LL_GPIO_MODE_OUTPUT_50MHz GPIO_CRL_MODE0
171 #define LL_GPIO_SPEED_FREQ_LOW LL_GPIO_MODE_OUTPUT_2MHz
172 #define LL_GPIO_SPEED_FREQ_MEDIUM LL_GPIO_MODE_OUTPUT_10MHz
173 #define LL_GPIO_SPEED_FREQ_HIGH LL_GPIO_MODE_OUTPUT_50MHz
178 #define LL_GPIO_PULL_DOWN 0x00000000U
179 #define LL_GPIO_PULL_UP GPIO_ODR_ODR0
189 #define LL_GPIO_AF_EVENTOUT_PIN_0 AFIO_EVCR_PIN_PX0
190 #define LL_GPIO_AF_EVENTOUT_PIN_1 AFIO_EVCR_PIN_PX1
191 #define LL_GPIO_AF_EVENTOUT_PIN_2 AFIO_EVCR_PIN_PX2
192 #define LL_GPIO_AF_EVENTOUT_PIN_3 AFIO_EVCR_PIN_PX3
193 #define LL_GPIO_AF_EVENTOUT_PIN_4 AFIO_EVCR_PIN_PX4
194 #define LL_GPIO_AF_EVENTOUT_PIN_5 AFIO_EVCR_PIN_PX5
195 #define LL_GPIO_AF_EVENTOUT_PIN_6 AFIO_EVCR_PIN_PX6
196 #define LL_GPIO_AF_EVENTOUT_PIN_7 AFIO_EVCR_PIN_PX7
197 #define LL_GPIO_AF_EVENTOUT_PIN_8 AFIO_EVCR_PIN_PX8
198 #define LL_GPIO_AF_EVENTOUT_PIN_9 AFIO_EVCR_PIN_PX9
199 #define LL_GPIO_AF_EVENTOUT_PIN_10 AFIO_EVCR_PIN_PX10
200 #define LL_GPIO_AF_EVENTOUT_PIN_11 AFIO_EVCR_PIN_PX11
201 #define LL_GPIO_AF_EVENTOUT_PIN_12 AFIO_EVCR_PIN_PX12
202 #define LL_GPIO_AF_EVENTOUT_PIN_13 AFIO_EVCR_PIN_PX13
203 #define LL_GPIO_AF_EVENTOUT_PIN_14 AFIO_EVCR_PIN_PX14
204 #define LL_GPIO_AF_EVENTOUT_PIN_15 AFIO_EVCR_PIN_PX15
214 #define LL_GPIO_AF_EVENTOUT_PORT_A AFIO_EVCR_PORT_PA
215 #define LL_GPIO_AF_EVENTOUT_PORT_B AFIO_EVCR_PORT_PB
216 #define LL_GPIO_AF_EVENTOUT_PORT_C AFIO_EVCR_PORT_PC
217 #define LL_GPIO_AF_EVENTOUT_PORT_D AFIO_EVCR_PORT_PD
218 #define LL_GPIO_AF_EVENTOUT_PORT_E AFIO_EVCR_PORT_PE
227 #define LL_GPIO_AF_EXTI_PORTA 0U
228 #define LL_GPIO_AF_EXTI_PORTB 1U
229 #define LL_GPIO_AF_EXTI_PORTC 2U
230 #define LL_GPIO_AF_EXTI_PORTD 3U
231 #define LL_GPIO_AF_EXTI_PORTE 4U
232 #define LL_GPIO_AF_EXTI_PORTF 5U
233 #define LL_GPIO_AF_EXTI_PORTG 6U
241 #define LL_GPIO_AF_EXTI_LINE0 (0x000FU << 16U | 0U)
242 #define LL_GPIO_AF_EXTI_LINE1 (0x00F0U << 16U | 0U)
243 #define LL_GPIO_AF_EXTI_LINE2 (0x0F00U << 16U | 0U)
244 #define LL_GPIO_AF_EXTI_LINE3 (0xF000U << 16U | 0U)
245 #define LL_GPIO_AF_EXTI_LINE4 (0x000FU << 16U | 1U)
246 #define LL_GPIO_AF_EXTI_LINE5 (0x00F0U << 16U | 1U)
247 #define LL_GPIO_AF_EXTI_LINE6 (0x0F00U << 16U | 1U)
248 #define LL_GPIO_AF_EXTI_LINE7 (0xF000U << 16U | 1U)
249 #define LL_GPIO_AF_EXTI_LINE8 (0x000FU << 16U | 2U)
250 #define LL_GPIO_AF_EXTI_LINE9 (0x00F0U << 16U | 2U)
251 #define LL_GPIO_AF_EXTI_LINE10 (0x0F00U << 16U | 2U)
252 #define LL_GPIO_AF_EXTI_LINE11 (0xF000U << 16U | 2U)
253 #define LL_GPIO_AF_EXTI_LINE12 (0x000FU << 16U | 3U)
254 #define LL_GPIO_AF_EXTI_LINE13 (0x00F0U << 16U | 3U)
255 #define LL_GPIO_AF_EXTI_LINE14 (0x0F00U << 16U | 3U)
256 #define LL_GPIO_AF_EXTI_LINE15 (0xF000U << 16U | 3U)
281 #define LL_GPIO_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
289 #define LL_GPIO_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
344 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
384 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
422 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
460 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
496 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
533 register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&GPIOx->
CRL) + (Pin >> 24)));
634 WRITE_REG(GPIOx->
LCKR, ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU));
666 return (
READ_BIT(GPIOx->
LCKR, ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU)) == ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU));
725 return (
READ_BIT(GPIOx->
IDR, (PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU) == ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU));
777 return (
READ_BIT(GPIOx->
ODR, (PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU) == ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU));
806 WRITE_REG(GPIOx->
BSRR, (PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU);
835 WRITE_REG(GPIOx->
BRR, (PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU);
865 uint32_t pinmask = ((PinMask >> GPIO_PIN_MASK_POS) & 0x0000FFFFU);
866 WRITE_REG(GPIOx->
BSRR, ((odr & pinmask) << 16u) | (~odr & pinmask));
1006 #if defined (AFIO_MAPR_USART3_REMAP)
1154 #if defined(AFIO_MAPR_TIM4_REMAP)
1189 #if defined(AFIO_MAPR_CAN_REMAP_REMAP1)
1263 #if defined(AFIO_MAPR_TIM5CH4_IREMAP)
1295 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_TIM5CH4_IREMAP) == (AFIO_MAPR_TIM5CH4_IREMAP));
1299 #if defined(AFIO_MAPR_ETH_REMAP)
1331 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_ETH_REMAP) == (AFIO_MAPR_ETH_REMAP));
1335 #if defined(AFIO_MAPR_CAN2_REMAP)
1367 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_CAN2_REMAP) == (AFIO_MAPR_CAN2_REMAP));
1371 #if defined(AFIO_MAPR_MII_RMII_SEL)
1397 #if defined(AFIO_MAPR_ADC1_ETRGINJ_REMAP)
1427 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_ADC1_ETRGINJ_REMAP) == (AFIO_MAPR_ADC1_ETRGINJ_REMAP));
1431 #if defined(AFIO_MAPR_ADC1_ETRGREG_REMAP)
1461 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_ADC1_ETRGREG_REMAP) == (AFIO_MAPR_ADC1_ETRGREG_REMAP));
1465 #if defined(AFIO_MAPR_ADC2_ETRGINJ_REMAP)
1496 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_ADC2_ETRGINJ_REMAP) == (AFIO_MAPR_ADC2_ETRGINJ_REMAP));
1500 #if defined (AFIO_MAPR_ADC2_ETRGREG_REMAP)
1531 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_ADC2_ETRGREG_REMAP) == (AFIO_MAPR_ADC2_ETRGREG_REMAP));
1583 #if defined(AFIO_MAPR_SPI3_REMAP)
1616 return (
READ_BIT(
AFIO->MAPR, AFIO_MAPR_SPI3_REMAP) == (AFIO_MAPR_SPI3_REMAP));
1620 #if defined(AFIO_MAPR_TIM2ITR1_IREMAP)
1647 #if defined(AFIO_MAPR_PTP_PPS_REMAP)
1674 #if defined(AFIO_MAPR2_TIM9_REMAP)
1705 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM9_REMAP) == (AFIO_MAPR2_TIM9_REMAP));
1709 #if defined(AFIO_MAPR2_TIM10_REMAP)
1740 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM10_REMAP) == (AFIO_MAPR2_TIM10_REMAP));
1744 #if defined(AFIO_MAPR2_TIM11_REMAP)
1774 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM11_REMAP) == (AFIO_MAPR2_TIM11_REMAP));
1778 #if defined(AFIO_MAPR2_TIM13_REMAP)
1809 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM13_REMAP) == (AFIO_MAPR2_TIM13_REMAP));
1813 #if defined(AFIO_MAPR2_TIM14_REMAP)
1844 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM14_REMAP) == (AFIO_MAPR2_TIM14_REMAP));
1848 #if defined(AFIO_MAPR2_FSMC_NADV_REMAP)
1873 #if defined(AFIO_MAPR2_TIM15_REMAP)
1903 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM15_REMAP) == (AFIO_MAPR2_TIM15_REMAP));
1907 #if defined(AFIO_MAPR2_TIM16_REMAP)
1938 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM16_REMAP) == (AFIO_MAPR2_TIM16_REMAP));
1942 #if defined(AFIO_MAPR2_TIM17_REMAP)
1973 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM17_REMAP) == (AFIO_MAPR2_TIM17_REMAP));
1977 #if defined(AFIO_MAPR2_CEC_REMAP)
2008 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_CEC_REMAP) == (AFIO_MAPR2_CEC_REMAP));
2012 #if defined(AFIO_MAPR2_TIM1_DMA_REMAP)
2043 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM1_DMA_REMAP) == (AFIO_MAPR2_TIM1_DMA_REMAP));
2047 #if defined(AFIO_MAPR2_TIM67_DAC_DMA_REMAP)
2057 SET_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM67_DAC_DMA_REMAP);
2078 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM67_DAC_DMA_REMAP) == (AFIO_MAPR2_TIM67_DAC_DMA_REMAP));
2082 #if defined(AFIO_MAPR2_TIM12_REMAP)
2115 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_TIM12_REMAP) == (AFIO_MAPR2_TIM12_REMAP));
2119 #if defined(AFIO_MAPR2_MISC_REMAP)
2160 return (
READ_BIT(
AFIO->MAPR2, AFIO_MAPR2_MISC_REMAP) == (AFIO_MAPR2_MISC_REMAP));
2202 __STATIC_INLINE void LL_GPIO_AF_ConfigEventout(uint32_t LL_GPIO_PortSource, uint32_t LL_GPIO_PinSource)
2268 __STATIC_INLINE void LL_GPIO_AF_SetEXTISource(uint32_t Port, uint32_t Line)
2314 #if defined(USE_FULL_LL_DRIVER)
2321 void LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct);