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);