UART 통신 실습, 코드 작성법
구동 함수 사용방법
1. 클럭을 활성화한다.
- _HAL_RCC_USARTx_CLK_ENABLE() 함수를 이용해서 사용할 USARTx의 클럭을 활성화 시킨다.
- _HAL_RCC_GPIOx_CLK_ENABLE() 함수를 이요하여 USART 핀으로 사용할 GPIO의 클럭을 활성화시킨다.
2. UART로 사용할 GPIO 핀을 대체 기능(Alternate function) 모드로 설정하고 UART 핀으로 사용하도록 설정한 다음 HAL_GPIO_init() 함수를 이용해서 초기화한다.
3. UART_HandlerTypeDef 구조체 변수를 이요하여 UART를 설정하고 HAL_UART_Init() 함수를이요하여 동작조건을 설정한다.
4. 통신 모드에 따라 다음의 함수를 이용하여 데이터를 송수신한다.
* Blocking모드
- HAL_UART_Transmint(), HAL_UART_Receive()
* Non Blocking 모드(인터럽트 사용 모드)
- HAL_UART_Transmit_IT(), HAL_UART_Receive_IT()
- HAL_UART_IRQHandler()
* DMA 모드
- HAL_UART_Transmit_DAM(), HAL_UART_Receive_DMA()
5. UART에서 인터럽트를 발생시키는 경우는 다음과 같이 처리한다.
* HAL_NVIC_SetPRiority() 함수를 이요해서 해당 인터러브의 우선 순ㄴ위를 설정하고 HAL_NVIC_SetPrirority()함수를 사용하여 인터럽트를 활성화시킴
* 해당 인터럽트의 ISR(Interrupt Service Routine)을 작성한다.
0 ISR의 예 : USART2_IRQHandler()
* 인터럽트의 발생시에 처리해야 할 내용을 해당 인터럽트의 콜백함수에 작성한다.
- 콜백 함수의 예 : HAL_UART_RxCpltCallback(), HAL_UART_TxCpltCallback()
