[STM32] UART Baudrate Change 기능 구현
2023. 5. 16. 20:25ㆍ개발로그/STM32
반응형
개요
STM32에서 UART를 사용하여 LCD를 제어 하는 어플리케이션을 구현 하는 중, UART Baudrate를 어플리케이션이 동작하는 동안 동적으로 변경해야 할 필요가 있어 해당 함수를 구현함
( 참고로 해당 함수는 STM32F407VGTX 기반 보드에서 동작 )
UART Baudrate 변경 함수
- STM32의 LL(Low-Level)라이브러리를 사용하여 구현
- STM32F407VGTX MCU의 UART6는 PCLK2 클럭을 사용하여 아래와 같이 구현
- UART번호에 따라 해당하는 PCLK클럭을 파라미터로 사용해야 함
UART_HandleTypeDef huart6;
void HAL_UART6_SetBaudRate(uint32_t baudRate)
{
LL_RCC_ClocksTypeDef rcc_clocks;
LL_RCC_GetSystemClocksFreq(&rcc_clocks);
LL_USART_SetBaudRate(huart6.Instance, rcc_clocks.PCLK2_Frequency, LL_USART_OVERSAMPLING_16, baudRate );
}
기타
LL_RCC_ClocksTypeDef를 찾을 수 없다는 에러가 나오는 경우, 아래와 같이 RCC를 LL(Low-Level) 라이브러리를 사용하겠다고 설정
반응형
'개발로그 > STM32' 카테고리의 다른 글
[STM32] UART DMA 이슈 (0) | 2023.05.23 |
---|---|
[STM32]CubeIDE USE_HAL_UART_REGISTER_CALLBACK 설정 법 (0) | 2023.05.17 |
[STM32] HAL과 LL 라이브러리 차이 (0) | 2023.05.15 |