STM32F0 UART Transmit 코드로 구현하기

STM32F0 UART Transmit 코드로 구현하기

STM32F0 UART Transmit – 시리얼 통신 송신부를 구현하는 예제입니다.

STM32F091RC USART 목차

  1. STM32F0XX UART CUBEMX로 설정하기
  2. STM32F0XX UART Transmit 코드로 구현하기 (현재 포스팅)
  3. STM32F0XX UART Receive 코드로 구현하기
  4. UART ADC 데이터 송신하기

오늘은 간단하게 데이터를 보내는 코드를 작성해보고자 한다.

HAL_UART_Transmit()

  • huart : uart의 핸들러를 넘겨준다. 초기설정에서 uart2를 사용하므로 huart2를 사용하면된다. TrueSTUDIO를 사용하는 사람이라면 이클립스 기반 툴을 사용하므로 h를 입력하고 control + space를 입력하면 핸들러를 보여줄 것이다. 주의할 점은 *가 붙어있으므로 주소형을 넘겨줘야한다.
  • pData : 송신할 데이터를 넘겨줘야한다. 이 역시 주소를 넘겨야한다.
  • Size : 송신할 데이터의 크기를 입력해준다.
  • Timeout  : Timeout 기간을 설정해준다. 너무 짧으면 송신 되기전에 Timeout될 수 있으니, 적당히 10정도를 주자.

유저 가이드를 찾아보면 Transmit 함수가 적혀있다. 데이터 타입을 보자니, 보낼 데이터의 데이터와 사이즈를 명시하고, timeout 길이를 정하라고 적혀있다. 코드도 간단하겠다. 바로 구현하면 아래와 같다.

1초 간격으로 hello의 데이터를 보내는 코드이다.

결과는 지난 포스팅에서 본 것과 같다.

4 Replies to “STM32F0 UART Transmit 코드로 구현하기”

  1. 안녕하세요 DKMIN님 항상 유익한 포스팅 감사합니다.
    다름이 아니라 UART Transmit 구현을 해보았는데
    보레이트가 115200일 경우 엉뚱한 데이터가 출력되는것이 확인되었는데
    보레이트를 9600으로 변경하여 다시 코드를 실행시켰을경우 정상적으로 데이터가 출력되었습니다.
    어떠한 이유로 이러한 일이 발생하였는지 궁금해서 댓글을 남깁니다.
    (물론 cubeMX에서 UART모드를 비동기식으로 설정하였음)

    1. 어..그럴리가요 이전 포스팅에도 초기설정을 115200이 어있구요.

      control+f 를 눌러서 9600으로 검색해보면 나오는지 확인해보시구요. 나온다면 115200으로 수정하고 플래싱뒤 리셋한번 부탁드립니다

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d 블로거가 이것을 좋아합니다: