Core/Src/main.c
static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOE_CLK_ENABLE();
  __HAL_RCC_GPIOC_CLK_ENABLE();
  __HAL_RCC_GPIOF_CLK_ENABLE();
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOG_CLK_ENABLE();
  __HAL_RCC_GPIOD_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOE, SR_SER_Pin|MEAS_4_Pin|MEAS_3_Pin|MEAS_2_Pin
                          |SR_RCLK_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(SR_SRCLK_GPIO_Port, SR_SRCLK_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, LD1_Pin|MEAS_1_Pin|MEAS_0_Pin|LD3_Pin
                          |LD2_Pin|MEAS_4B8_Pin|MEAS_5_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(RELAY_GPIO_Port, RELAY_Pin, GPIO_PIN_SET);

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOG, MEAS_6_Pin|MEAS_7_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pins : SR_SER_Pin MEAS_4_Pin MEAS_3_Pin MEAS_2_Pin
                           SR_RCLK_Pin */
  GPIO_InitStruct.Pin = SR_SER_Pin|MEAS_4_Pin|MEAS_3_Pin|MEAS_2_Pin
                          |SR_RCLK_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

  /*Configure GPIO pin : PC13 */
  GPIO_InitStruct.Pin = GPIO_PIN_13;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

  /*Configure GPIO pin : SR_SRCLK_Pin */
  GPIO_InitStruct.Pin = SR_SRCLK_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(SR_SRCLK_GPIO_Port, &GPIO_InitStruct);

  /*Configure GPIO pins : LD1_Pin MEAS_1_Pin MEAS_0_Pin LD3_Pin
                           LD2_Pin MEAS_4B8_Pin MEAS_5_Pin */
  GPIO_InitStruct.Pin = LD1_Pin|MEAS_1_Pin|MEAS_0_Pin|LD3_Pin
                          |LD2_Pin|MEAS_4B8_Pin|MEAS_5_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /*Configure GPIO pin : LCL_OUT_Pin */
  GPIO_InitStruct.Pin = LCL_OUT_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(LCL_OUT_GPIO_Port, &GPIO_InitStruct);

  /*Configure GPIO pin : RELAY_Pin */
  GPIO_InitStruct.Pin = RELAY_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(RELAY_GPIO_Port, &GPIO_InitStruct);

  /*Configure GPIO pins : MEAS_6_Pin MEAS_7_Pin */
  GPIO_InitStruct.Pin = MEAS_6_Pin|MEAS_7_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 0);
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

}
/**
  * @brief GPIO Initialization Function
  * @param None
  * @retval None
  */
@brief GPIO Initialization Function
@param None
@retval None
@brief GPIO Initialization Function @param None @retval None
static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};
  __HAL_RCC_GPIOE_CLK_ENABLE();
  __HAL_RCC_GPIOC_CLK_ENABLE();
  __HAL_RCC_GPIOF_CLK_ENABLE();
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();
  __HAL_RCC_GPIOG_CLK_ENABLE();
  __HAL_RCC_GPIOD_CLK_ENABLE();
  HAL_GPIO_WritePin(GPIOE, SR_SER_Pin|MEAS_4_Pin|MEAS_3_Pin|MEAS_2_Pin
                          |SR_RCLK_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(SR_SRCLK_GPIO_Port, SR_SRCLK_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, LD1_Pin|MEAS_1_Pin|MEAS_0_Pin|LD3_Pin
                          |LD2_Pin|MEAS_4B8_Pin|MEAS_5_Pin, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(RELAY_GPIO_Port, RELAY_Pin, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOG, MEAS_6_Pin|MEAS_7_Pin, GPIO_PIN_RESET);
  GPIO_InitStruct.Pin = SR_SER_Pin|MEAS_4_Pin|MEAS_3_Pin|MEAS_2_Pin
                          |SR_RCLK_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = GPIO_PIN_13;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = SR_SRCLK_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(SR_SRCLK_GPIO_Port, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = LD1_Pin|MEAS_1_Pin|MEAS_0_Pin|LD3_Pin
                          |LD2_Pin|MEAS_4B8_Pin|MEAS_5_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = LCL_OUT_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(LCL_OUT_GPIO_Port, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = RELAY_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(RELAY_GPIO_Port, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = MEAS_6_Pin|MEAS_7_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 0);
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
static void MX_GPIO_Init ( void ) { GPIO_InitTypeDef GPIO_InitStruct = { 0 } ; __HAL_RCC_GPIOE_CLK_ENABLE ( ) ; __HAL_RCC_GPIOC_CLK_ENABLE ( ) ; __HAL_RCC_GPIOF_CLK_ENABLE ( ) ; __HAL_RCC_GPIOH_CLK_ENABLE ( ) ; __HAL_RCC_GPIOA_CLK_ENABLE ( ) ; __HAL_RCC_GPIOB_CLK_ENABLE ( ) ; __HAL_RCC_GPIOG_CLK_ENABLE ( ) ; __HAL_RCC_GPIOD_CLK_ENABLE ( ) ; HAL_GPIO_WritePin ( GPIOE , SR_SER_Pin | MEAS_4_Pin | MEAS_3_Pin | MEAS_2_Pin | SR_RCLK_Pin , GPIO_PIN_RESET ) ; HAL_GPIO_WritePin ( SR_SRCLK_GPIO_Port , SR_SRCLK_Pin , GPIO_PIN_RESET ) ; HAL_GPIO_WritePin ( GPIOB , LD1_Pin | MEAS_1_Pin | MEAS_0_Pin | LD3_Pin | LD2_Pin | MEAS_4B8_Pin | MEAS_5_Pin , GPIO_PIN_RESET ) ; HAL_GPIO_WritePin ( RELAY_GPIO_Port , RELAY_Pin , GPIO_PIN_SET ) ; HAL_GPIO_WritePin ( GPIOG , MEAS_6_Pin | MEAS_7_Pin , GPIO_PIN_RESET ) ; GPIO_InitStruct . Pin = SR_SER_Pin | MEAS_4_Pin | MEAS_3_Pin | MEAS_2_Pin | SR_RCLK_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_OUTPUT_PP ; GPIO_InitStruct . Pull = GPIO_NOPULL ; GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_LOW ; HAL_GPIO_Init ( GPIOE , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = GPIO_PIN_13 ; GPIO_InitStruct . Mode = GPIO_MODE_IT_RISING ; GPIO_InitStruct . Pull = GPIO_NOPULL ; HAL_GPIO_Init ( GPIOC , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = SR_SRCLK_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_OUTPUT_PP ; GPIO_InitStruct . Pull = GPIO_NOPULL ; GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_LOW ; HAL_GPIO_Init ( SR_SRCLK_GPIO_Port , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = LD1_Pin | MEAS_1_Pin | MEAS_0_Pin | LD3_Pin | LD2_Pin | MEAS_4B8_Pin | MEAS_5_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_OUTPUT_PP ; GPIO_InitStruct . Pull = GPIO_NOPULL ; GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_LOW ; HAL_GPIO_Init ( GPIOB , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = LCL_OUT_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_IT_FALLING ; GPIO_InitStruct . Pull = GPIO_NOPULL ; HAL_GPIO_Init ( LCL_OUT_GPIO_Port , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = RELAY_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_OUTPUT_OD ; GPIO_InitStruct . Pull = GPIO_NOPULL ; GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_LOW ; HAL_GPIO_Init ( RELAY_GPIO_Port , & GPIO_InitStruct ) ; GPIO_InitStruct . Pin = MEAS_6_Pin | MEAS_7_Pin ; GPIO_InitStruct . Mode = GPIO_MODE_OUTPUT_PP ; GPIO_InitStruct . Pull = GPIO_NOPULL ; GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_LOW ; HAL_GPIO_Init ( GPIOG , & GPIO_InitStruct ) ; HAL_NVIC_SetPriority ( EXTI15_10_IRQn , 1 , 0 ) ; HAL_NVIC_EnableIRQ ( EXTI15_10_IRQn ) ; }
@brief GPIO Initialization Function
 @param None
 @retval None
@brief GPIO Initialization Function @param None @retval None
/* GPIO Ports Clock Enable */ /*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */ /*Configure GPIO pin Output Level */ /*Configure GPIO pins : SR_SER_Pin MEAS_4_Pin MEAS_3_Pin MEAS_2_Pin
                           SR_RCLK_Pin */ /*Configure GPIO pin : PC13 */ /*Configure GPIO pin : SR_SRCLK_Pin */ /*Configure GPIO pins : LD1_Pin MEAS_1_Pin MEAS_0_Pin LD3_Pin
                           LD2_Pin MEAS_4B8_Pin MEAS_5_Pin */ /*Configure GPIO pin : LCL_OUT_Pin */ /*Configure GPIO pin : RELAY_Pin */ /*Configure GPIO pins : MEAS_6_Pin MEAS_7_Pin */ /* EXTI interrupt init*/