개발환경: STM32CubeIDE
개발보드: NUCELO-F103RB
1.Pin Configuration
프로젝트를 생성했으면 디폴트로 USART 2번 채널을 사용한다.
STM32F103RB는 3개의 USRAT 채널이 있다. USART2는 PA2, PA3을 사용한다.
디폴트로 되어있겠지만 Mode를 Asynchronous로 설정한다.
만약 polling 방식이 아닌 interrupt를 이용하여 uart 통신을 하려면 밑에 USART2 global interrupt를 enabled 해줘야한다.
2.Code
코드를 생성하면 88번 라인에서 USART 2번 채널을 사용하기위한 기본 세팅이 되어있는것을 알 수 있다.
느낌상 HAL_UART_Transmit 함수를 사용하면 될 것 같다.
HAL_UART_Transmit(&huart2, message, 20, 1000); // uart 번호, 출력할 문자열, 문자 크기, timeout
HAL_Delay(1000);
usart 2번 채널을 사용했으므로 &huart2를 첫 번째 파라미터로 넣어준다.
만약 3번 채널을 사용했다면 &huart3으로 넣어주면 된다.
huart2는 uart의 핸들러를 넘겨주는것으로 해당 파라미터를 클릭 후 F3을 눌러 확인할 수 있다.
참고로 BaudRate가 디폴트로 115200임을 알 수 있다.
Putty로 전송이 잘 되었음을 확인할 수 있다.
3.printf, scanf 사용
https://velog.io/@pikamon/STM32-8
4.float 출력
STM32CubeIDE에서 float를 출력하려면 다음과 같은 옵션을 지정해줘야 한다.
Project - Properties - C/C++ Build - Settings - Tool Settings - MCU GCC Linker - Miscellaneous
-u_printf_float 추가
'MCU > stm32' 카테고리의 다른 글
[NUCLEO-F103RB] 보드 분석 : HW layout (0) | 2024.09.30 |
---|---|
[NUCLEO-F103RB] 보드 분석 : 개요 (1) | 2024.09.30 |
[NUCLEO-F103RB] GPIO (0) | 2023.01.12 |
[NUCELO-F103RB]NUCELO-F103RB 소개 (0) | 2023.01.12 |
HAL 라이브러리란? (0) | 2023.01.07 |