SW 개발 공부/STM32

[STM32] UART 인터럽트 수신 & pooling 송신 (in keil)

Maison 2020. 12. 8. 09:18

* 수신

- 수신 인터럽트 루틴 설정함수

void USART1_IRQHandler(void)
{
- 인터럽트 상태 확인함수
  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) 
  {

- 수신 데이터 리턴 함수
    rxDataTemp = (USART_ReceiveData(USART1) & 0xFF);

    

}

-> interrupt 설정 함수

USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);

 

 

 

 

* 송신

 - 송신 버퍼가 리셋될때까지 전송

USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET

for(i=0 ; i<17 ; i++)
{

USART_SendData(USART1, gUsartRxData[i]); // 송신
while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
{}
}


- 송신 완료 후 수신 인터럽트 ENABLE

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);