gpio.c 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file gpio.c
  5. * @brief This file provides code for the configuration
  6. * of all used GPIO pins.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2025 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include "gpio.h"
  22. /* USER CODE BEGIN 0 */
  23. /* USER CODE END 0 */
  24. /*----------------------------------------------------------------------------*/
  25. /* Configure GPIO */
  26. /*----------------------------------------------------------------------------*/
  27. /* USER CODE BEGIN 1 */
  28. /* USER CODE END 1 */
  29. /** Configure pins as
  30. * Analog
  31. * Input
  32. * Output
  33. * EVENT_OUT
  34. * EXTI
  35. */
  36. void MX_GPIO_Init(void)
  37. {
  38. GPIO_InitTypeDef GPIO_InitStruct = {0};
  39. /* GPIO Ports Clock Enable */
  40. __HAL_RCC_GPIOD_CLK_ENABLE();
  41. __HAL_RCC_GPIOA_CLK_ENABLE();
  42. __HAL_RCC_GPIOB_CLK_ENABLE();
  43. /*Configure GPIO pin Output Level */
  44. HAL_GPIO_WritePin(GPIOA, SYSLED_Pin|RS485_EN_Pin|MS_MS2_Pin|MS_MS1_Pin
  45. |SPI1_NSS_Pin, GPIO_PIN_RESET);
  46. /*Configure GPIO pin Output Level */
  47. HAL_GPIO_WritePin(GPIOB, MS_DIR_Pin|MS_SP_Pin|MS_EN_Pin, GPIO_PIN_RESET);
  48. /*Configure GPIO pins : SYSLED_Pin RS485_EN_Pin MS_MS2_Pin MS_MS1_Pin
  49. SPI1_NSS_Pin */
  50. GPIO_InitStruct.Pin = SYSLED_Pin|RS485_EN_Pin|MS_MS2_Pin|MS_MS1_Pin
  51. |SPI1_NSS_Pin;
  52. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  53. GPIO_InitStruct.Pull = GPIO_NOPULL;
  54. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  55. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  56. /*Configure GPIO pins : MS_DIR_Pin MS_SP_Pin MS_EN_Pin */
  57. GPIO_InitStruct.Pin = MS_DIR_Pin|MS_SP_Pin|MS_EN_Pin;
  58. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  59. GPIO_InitStruct.Pull = GPIO_NOPULL;
  60. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  61. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  62. /*Configure GPIO pins : SEL_D_Pin SEL_C_Pin SEL_B_Pin SEL_A_Pin */
  63. GPIO_InitStruct.Pin = SEL_D_Pin|SEL_C_Pin|SEL_B_Pin|SEL_A_Pin;
  64. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  65. GPIO_InitStruct.Pull = GPIO_PULLUP;
  66. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  67. /*Configure GPIO pins : MS_INDEX_Pin MS_DIAG_Pin */
  68. GPIO_InitStruct.Pin = MS_INDEX_Pin|MS_DIAG_Pin;
  69. GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  70. GPIO_InitStruct.Pull = GPIO_NOPULL;
  71. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  72. /* EXTI interrupt init*/
  73. HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
  74. HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
  75. HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
  76. HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
  77. }
  78. /* USER CODE BEGIN 2 */
  79. /* USER CODE END 2 */