stm32h747/stm32h747i-disco/CM7/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c
Go to the documentation of this file.
1 
106 /* Includes ------------------------------------------------------------------*/
107 #include "stm32h7xx_hal.h"
108 
118 #ifdef HAL_GPIO_MODULE_ENABLED
119 
120 /* Private typedef -----------------------------------------------------------*/
121 /* Private defines ------------------------------------------------------------*/
125 #define GPIO_MODE (0x00000003U)
126 #define ANALOG_MODE (0x00000008U)
127 #define EXTI_MODE (0x10000000U)
128 #define GPIO_MODE_IT (0x00010000U)
129 #define GPIO_MODE_EVT (0x00020000U)
130 #define RISING_EDGE (0x00100000U)
131 #define FALLING_EDGE (0x00200000U)
132 #define GPIO_OUTPUT_TYPE (0x00000010U)
133 
134 #if defined(DUAL_CORE)
135 #define EXTI_CPU1 (0x01000000U)
136 #define EXTI_CPU2 (0x02000000U)
137 #endif /*DUAL_CORE*/
138 #define GPIO_NUMBER (16U)
139 
142 /* Private macro -------------------------------------------------------------*/
143 /* Private variables ---------------------------------------------------------*/
144 /* Private function prototypes -----------------------------------------------*/
145 /* Private functions ---------------------------------------------------------*/
146 /* Exported functions --------------------------------------------------------*/
173 void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
174 {
175  uint32_t position = 0x00U;
176  uint32_t iocurrent;
177  uint32_t temp;
178  EXTI_Core_TypeDef *EXTI_CurrentCPU;
179 
180 #if defined(DUAL_CORE) && defined(CORE_CM4)
181  EXTI_CurrentCPU = EXTI_D2; /* EXTI for CM4 CPU */
182 #else
183  EXTI_CurrentCPU = EXTI_D1; /* EXTI for CM7 CPU */
184 #endif
185 
186  /* Check the parameters */
188  assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
189  assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
190  assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
191 
192  /* Configure the port pins */
193  while (((GPIO_Init->Pin) >> position) != 0x00U)
194  {
195  /* Get current io position */
196  iocurrent = (GPIO_Init->Pin) & (1UL << position);
197 
198  if (iocurrent != 0x00U)
199  {
200  /*--------------------- GPIO Mode Configuration ------------------------*/
201  /* In case of Output or Alternate function mode selection */
202  if ((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) ||
203  (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
204  {
205  /* Check the Speed parameter */
206  assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
207  /* Configure the IO Speed */
208  temp = GPIOx->OSPEEDR;
209  temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
210  temp |= (GPIO_Init->Speed << (position * 2U));
211  GPIOx->OSPEEDR = temp;
212 
213  /* Configure the IO Output Type */
214  temp = GPIOx->OTYPER;
215  temp &= ~(GPIO_OTYPER_OT0 << position) ;
216  temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
217  GPIOx->OTYPER = temp;
218  }
219 
220  /* Activate the Pull-up or Pull down resistor for the current IO */
221  temp = GPIOx->PUPDR;
222  temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
223  temp |= ((GPIO_Init->Pull) << (position * 2U));
224  GPIOx->PUPDR = temp;
225 
226  /* In case of Alternate function mode selection */
227  if ((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD))
228  {
229  /* Check the Alternate function parameters */
231  assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
232 
233  /* Configure Alternate function mapped with the current IO */
234  temp = GPIOx->AFR[position >> 3U];
235  temp &= ~(0xFU << ((position & 0x07U) * 4U));
236  temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
237  GPIOx->AFR[position >> 3U] = temp;
238  }
239 
240  /* Configure IO Direction mode (Input, Output, Alternate or Analog) */
241  temp = GPIOx->MODER;
242  temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
243  temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
244  GPIOx->MODER = temp;
245 
246  /*--------------------- EXTI Mode Configuration ------------------------*/
247  /* Configure the External Interrupt or event for the current IO */
248  if ((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
249  {
250  /* Enable SYSCFG Clock */
252 
253  temp = SYSCFG->EXTICR[position >> 2U];
254  temp &= ~(0x0FUL << (4U * (position & 0x03U)));
255  temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
256  SYSCFG->EXTICR[position >> 2U] = temp;
257 
258  /* Clear EXTI line configuration */
259  temp = EXTI_CurrentCPU->IMR1;
260  temp &= ~(iocurrent);
261  if ((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
262  {
263  temp |= iocurrent;
264  }
265  EXTI_CurrentCPU->IMR1 = temp;
266 
267  temp = EXTI_CurrentCPU->EMR1;
268  temp &= ~(iocurrent);
269  if ((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
270  {
271  temp |= iocurrent;
272  }
273  EXTI_CurrentCPU->EMR1 = temp;
274 
275  /* Clear Rising Falling edge configuration */
276  temp = EXTI->RTSR1;
277  temp &= ~(iocurrent);
278  if ((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
279  {
280  temp |= iocurrent;
281  }
282  EXTI->RTSR1 = temp;
283 
284  temp = EXTI->FTSR1;
285  temp &= ~(iocurrent);
286  if ((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
287  {
288  temp |= iocurrent;
289  }
290  EXTI->FTSR1 = temp;
291  }
292  }
293 
294  position++;
295  }
296 }
297 
305 void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
306 {
307  uint32_t position = 0x00U;
308  uint32_t iocurrent;
309  uint32_t tmp;
310  EXTI_Core_TypeDef *EXTI_CurrentCPU;
311 
312 #if defined(DUAL_CORE) && defined(CORE_CM4)
313  EXTI_CurrentCPU = EXTI_D2; /* EXTI for CM4 CPU */
314 #else
315  EXTI_CurrentCPU = EXTI_D1; /* EXTI for CM7 CPU */
316 #endif
317 
318  /* Check the parameters */
320  assert_param(IS_GPIO_PIN(GPIO_Pin));
321 
322  /* Configure the port pins */
323  while ((GPIO_Pin >> position) != 0x00U)
324  {
325  /* Get current io position */
326  iocurrent = GPIO_Pin & (1UL << position) ;
327 
328  if (iocurrent != 0x00U)
329  {
330  /*------------------------- EXTI Mode Configuration --------------------*/
331  /* Clear the External Interrupt or Event for the current IO */
332  tmp = SYSCFG->EXTICR[position >> 2U];
333  tmp &= (0x0FUL << (4U * (position & 0x03U)));
334  if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
335  {
336  /* Clear EXTI line configuration for Current CPU */
337  EXTI_CurrentCPU->IMR1 &= ~(iocurrent);
338  EXTI_CurrentCPU->EMR1 &= ~(iocurrent);
339 
340  /* Clear Rising Falling edge configuration */
341  EXTI->RTSR1 &= ~(iocurrent);
342  EXTI->FTSR1 &= ~(iocurrent);
343 
344  tmp = 0x0FUL << (4U * (position & 0x03U));
345  SYSCFG->EXTICR[position >> 2U] &= ~tmp;
346  }
347 
348  /*------------------------- GPIO Mode Configuration --------------------*/
349  /* Configure IO in Analog Mode */
350  GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2U));
351 
352  /* Configure the default Alternate Function in current IO */
353  GPIOx->AFR[position >> 3U] &= ~(0xFU << ((position & 0x07U) * 4U)) ;
354 
355  /* Deactivate the Pull-up and Pull-down resistor for the current IO */
356  GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
357 
358  /* Configure the default value IO Output Type */
359  GPIOx->OTYPER &= ~(GPIO_OTYPER_OT0 << position) ;
360 
361  /* Configure the default value for IO Speed */
362  GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
363  }
364 
365  position++;
366  }
367 }
368 
392 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
393 {
394  GPIO_PinState bitstatus;
395 
396  /* Check the parameters */
397  assert_param(IS_GPIO_PIN(GPIO_Pin));
398 
399  if ((GPIOx->IDR & GPIO_Pin) != 0x00U)
400  {
401  bitstatus = GPIO_PIN_SET;
402  }
403  else
404  {
405  bitstatus = GPIO_PIN_RESET;
406  }
407  return bitstatus;
408 }
409 
426 void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
427 {
428  /* Check the parameters */
429  assert_param(IS_GPIO_PIN(GPIO_Pin));
430  assert_param(IS_GPIO_PIN_ACTION(PinState));
431 
432  if (PinState != GPIO_PIN_RESET)
433  {
434  GPIOx->BSRR = GPIO_Pin;
435  }
436  else
437  {
438  GPIOx->BSRR = (uint32_t)GPIO_Pin << GPIO_NUMBER;
439  }
440 }
441 
448 void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
449 {
450  /* Check the parameters */
451  assert_param(IS_GPIO_PIN(GPIO_Pin));
452 
453  if ((GPIOx->ODR & GPIO_Pin) == GPIO_Pin)
454  {
455  GPIOx->BSRR = (uint32_t)GPIO_Pin << GPIO_NUMBER;
456  }
457  else
458  {
459  GPIOx->BSRR = GPIO_Pin;
460  }
461 }
462 
474 HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
475 {
476  __IO uint32_t tmp = GPIO_LCKR_LCKK;
477 
478  /* Check the parameters */
480  assert_param(IS_GPIO_PIN(GPIO_Pin));
481 
482  /* Apply lock key write sequence */
483  tmp |= GPIO_Pin;
484  /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
485  GPIOx->LCKR = tmp;
486  /* Reset LCKx bit(s): LCKK='0' + LCK[15-0] */
487  GPIOx->LCKR = GPIO_Pin;
488  /* Set LCKx bit(s): LCKK='1' + LCK[15-0] */
489  GPIOx->LCKR = tmp;
490  /* Read LCKK register. This read is mandatory to complete key lock sequence*/
491  tmp = GPIOx->LCKR;
492 
493  /* read again in order to confirm lock is active */
494  if ((GPIOx->LCKR & GPIO_LCKR_LCKK) != 0x00U)
495  {
496  return HAL_OK;
497  }
498  else
499  {
500  return HAL_ERROR;
501  }
502 }
503 
509 void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
510 {
511 #if defined(DUAL_CORE) && defined(CORE_CM4)
512  if (__HAL_GPIO_EXTID2_GET_IT(GPIO_Pin) != 0x00U)
513  {
514  __HAL_GPIO_EXTID2_CLEAR_IT(GPIO_Pin);
515  HAL_GPIO_EXTI_Callback(GPIO_Pin);
516  }
517 #else
518  /* EXTI line interrupt detected */
519  if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00U)
520  {
521  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
522  HAL_GPIO_EXTI_Callback(GPIO_Pin);
523  }
524 #endif
525 }
526 
532 __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
533 {
534  /* Prevent unused argument(s) compilation warning */
535  UNUSED(GPIO_Pin);
536 
537  /* NOTE: This function Should not be modified, when the callback is needed,
538  the HAL_GPIO_EXTI_Callback could be implemented in the user file
539  */
540 }
541 
551 #endif /* HAL_GPIO_MODULE_ENABLED */
552 
560 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
GPIO_TypeDef::LCKR
__IO uint32_t LCKR
Definition: stm32f407xx.h:536
assert_param
#define assert_param(expr)
Include module's header file.
Definition: stm32f407/stm32f407g-disc1/Inc/stm32f4xx_hal_conf.h:353
HAL_GPIO_EXTI_Callback
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
__IO
#define __IO
Definition: imxrt1050/imxrt1050-evkb/CMSIS/core_cm7.h:237
GPIO_MODE_AF_PP
#define GPIO_MODE_AF_PP
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:122
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:40
GPIO_MODE_OUTPUT_OD
#define GPIO_MODE_OUTPUT_OD
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:121
GPIO_OSPEEDR_OSPEED0
#define GPIO_OSPEEDR_OSPEED0
Definition: stm32f407xx.h:8267
GPIO_TypeDef::MODER
__IO uint32_t MODER
Definition: stm32f407xx.h:529
GPIO_InitTypeDef
GPIO Init structure definition
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:47
IS_GPIO_PULL
#define IS_GPIO_PULL(PULL)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:280
IS_GPIO_AF
#define IS_GPIO_AF(AF)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h:356
GPIO_InitTypeDef::Alternate
uint32_t Alternate
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:61
EXTI_D1
#define EXTI_D1
Definition: stm32h735xx.h:2600
GPIO_PUPDR_PUPD0
#define GPIO_PUPDR_PUPD0
Definition: stm32f407xx.h:8399
GPIO_PIN_SET
@ GPIO_PIN_SET
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:71
HAL_ERROR
@ HAL_ERROR
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:43
IS_GPIO_MODE
#define IS_GPIO_MODE(MODE)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:266
GPIO_TypeDef::BSRR
__IO uint32_t BSRR
Definition: stm32f407xx.h:535
HAL_GPIO_ReadPin
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
GPIO_TypeDef::IDR
__IO uint32_t IDR
Definition: stm32f407xx.h:533
HAL_OK
@ HAL_OK
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:42
HAL_GPIO_Init
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
UNUSED
#define UNUSED(x)
Definition: porcupine/demo/c/dr_libs/old/dr.h:92
GPIO_InitTypeDef::Mode
uint32_t Mode
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:52
GPIO_InitTypeDef::Pull
uint32_t Pull
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:55
EXTI_D2
#define EXTI_D2
Definition: stm32h735xx.h:2601
GPIO_OTYPER_OT0
#define GPIO_OTYPER_OT0
Definition: stm32f407xx.h:8199
IS_GPIO_ALL_INSTANCE
#define IS_GPIO_ALL_INSTANCE(INSTANCE)
Definition: stm32f407xx.h:15118
__HAL_RCC_SYSCFG_CLK_ENABLE
#define __HAL_RCC_SYSCFG_CLK_ENABLE()
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:599
HAL_GPIO_DeInit
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
EXTI_Core_TypeDef::EMR1
__IO uint32_t EMR1
Definition: stm32h735xx.h:943
GPIO_InitTypeDef::Speed
uint32_t Speed
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:58
EXTI_Core_TypeDef
This structure registers corresponds to EXTI_Typdef CPU1/CPU2 registers subset (IMRx,...
Definition: stm32h735xx.h:940
SYSCFG
#define SYSCFG
Definition: stm32f407xx.h:1098
__HAL_GPIO_EXTI_GET_IT
#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__)
Checks whether the specified EXTI line is asserted or not.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:192
GPIO_PIN_RESET
@ GPIO_PIN_RESET
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:70
EXTI_Core_TypeDef::IMR1
__IO uint32_t IMR1
Definition: stm32h735xx.h:942
__HAL_GPIO_EXTI_CLEAR_IT
#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__)
Clears the EXTI's line pending bits.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:200
IS_GPIO_LOCK_INSTANCE
#define IS_GPIO_LOCK_INSTANCE(INSTANCE)
Definition: stm32h735xx.h:23986
GPIO_TypeDef
General Purpose I/O.
Definition: stm32f407xx.h:527
IS_GPIO_SPEED
#define IS_GPIO_SPEED(SPEED)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:278
GPIO_TypeDef::ODR
__IO uint32_t ODR
Definition: stm32f407xx.h:534
GPIO_MODE_AF_OD
#define GPIO_MODE_AF_OD
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:123
HAL_GPIO_EXTI_IRQHandler
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
GPIO_LCKR_LCKK
#define GPIO_LCKR_LCKK
Definition: stm32f407xx.h:8893
GPIO_GET_INDEX
#define GPIO_GET_INDEX(__GPIOx__)
Definition: stm32h735/stm32h735g-dk/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_gpio_ex.h:440
GPIO_PinState
GPIO_PinState
GPIO Bit SET and Bit RESET enumeration.
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:68
GPIO_TypeDef::OSPEEDR
__IO uint32_t OSPEEDR
Definition: stm32f407xx.h:531
IS_GPIO_PIN
#define IS_GPIO_PIN(PIN)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:265
IS_GPIO_AF_INSTANCE
#define IS_GPIO_AF_INSTANCE(__INSTANCE__)
Definition: stm32f769xx.h:21555
IS_GPIO_PIN_ACTION
#define IS_GPIO_PIN_ACTION(ACTION)
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:264
GPIO_MODE_OUTPUT_PP
#define GPIO_MODE_OUTPUT_PP
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:120
GPIO_TypeDef::AFR
__IO uint32_t AFR[2]
Definition: stm32f407xx.h:537
GPIO_MODER_MODE0
#define GPIO_MODER_MODE0
Definition: stm32f407xx.h:8117
EXTI
#define EXTI
Definition: stm32f407xx.h:1099
HAL_GPIO_TogglePin
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
GPIO_TypeDef::PUPDR
__IO uint32_t PUPDR
Definition: stm32f407xx.h:532
GPIO_TypeDef::OTYPER
__IO uint32_t OTYPER
Definition: stm32f407xx.h:530
HAL_GPIO_LockPin
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
HAL_GPIO_WritePin
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
GPIO_InitTypeDef::Pin
uint32_t Pin
Definition: stm32f407/stm32f407g-disc1/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:49


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:54