본문 바로가기
전자/임베디드 시스템

STM32 HAL UART 인터럽터 함수

by Begi 2022. 9. 27.
반응형

1) UART 인터럽터 함수

STM32 HAL의 UART 인터럽터 함수는 stm32f1xx_it.c 파일에 다음과 같이 정의되어 있다.

 

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */

  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */

  /* USER CODE END USART1_IRQn 1 */
}

 

HAL_UART_IRQHandler 함수는 stm32f1xx_hal_uart.c 파일에 정의되어 있다.

 

HAL_UART_IRQHandler 함수는 huart1 구조체 변수를 사용한다. UART 초기화 함수에서 huart1는 초기화된다.

 

 

2) UART 초기화 함수

UART 초기화 함수는 MX_USART1_UART_Init이고 main.c 파일에 정의되어 있다.

 

static void MX_USART1_UART_Init(void)
{

  /* USER CODE BEGIN USART1_Init 0 */

  /* USER CODE END USART1_Init 0 */

  /* USER CODE BEGIN USART1_Init 1 */

  /* USER CODE END USART1_Init 1 */
  huart1.Instance = USART1;
  huart1.Init.BaudRate = 115200;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN USART1_Init 2 */

  /* USER CODE END USART1_Init 2 */

}

 

반응형

'전자 > 임베디드 시스템' 카테고리의 다른 글

STM3210C-EVAL 보드  (0) 2022.10.02
라즈베리파이 SD 카드 복사  (0) 2022.09.27
STM32 Flash 지우기/쓰기  (0) 2022.09.26
실시간 시스템 뜻  (0) 2022.09.09
MCU 리셋 회로  (0) 2022.09.07

댓글