티스토리 뷰

STM32Fxx

STM32F429-UART IT(CUBE MX)

라이다 2018. 10. 18. 20:32
반응형

10. UART IT(UART Interrupt)

           -이번 장은 UART Interrupt에 대해 배운다

           -9장은 수신시 일정한 시간을 대기, 데이터가 다 채워질 때까지 Recive함수에서 대기를

하고 있는다 하지만 이번 장은 함수를 실행 하면 데이터가 꽉 찰때까지 Recive함수에서 대기를 하는 것이 아니라 데이터가 들어올 때마다 인터럽트 방식으로 처리를 한다

-아래 예제는 PG14 LED 1초 간격으로 깜박이며 UART 데이터 전송, 수신이 완료 되었을 경우 PG13LED On Off 한다

 

하이퍼 터미널

9장과 같이 설정



CUBE MX 설정






Sorce Code

/* USER CODE BEGIN 0 */

uint8_t tx_buff[] = {"Hello UART"};

uint8_t rx_buff[5];

/* USER CODE END 0 */

.

.

/* USER CODE BEGIN 2 */

  HAL_UART_Receive_IT(&huart1, rx_buff,5);//5개의 데이터를 입력 받을 때까지 PA10(RX)핀을 수신 대기

  HAL_UART_Transmit_IT(&huart1, tx_buff,sizeof(tx_buff));

/* USER CODE END 2 */

.

.

/* USER CODE BEGIN 3 */

    HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_14);

    HAL_Delay(1000);

.

.

/* USER CODE BEGIN 4 */

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //수신 완료시

{

  if(huart == &huart1){//모든 데이터를 다 받은 경우 실행zx

    HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_13);

    HAL_UART_Receive_IT(&huart1, rx_buff,4);//4개의 데이터를 입력 받을 때까지 PA10(RX)핀을 수신 대기

  }

}

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) //송신 완료시

{

  if(huart == &huart1){

    HAL_GPIO_TogglePin(GPIOG, GPIO_PIN_13);

  }

}

/* USER CODE END 4 */

 

실행 결과

10.UART 폴더의 동영상 확인

PG14 LEDwhile문에 의해 1초마다 ON OFF가 되며 데이터 수신은 들어올 때마다 처리된다



반응형

'STM32Fxx' 카테고리의 다른 글

STM32F429-SPI IT  (0) 2018.10.24
STM32F429 - SPI Poll  (0) 2018.10.18
STM32F429 - UART Poll (CUBE MX)  (0) 2018.09.11
STM32F429 - ADC Interrupt (CUBE MX)  (0) 2018.09.11
STM32F429 - ADC 사용하기 (CUBE MX)  (0) 2018.09.11
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함