본문 바로가기

개발/embed

[CubeIDE] stm32 Uart Printf, sample source

반응형

Uart 를 통해 printf() 를 쓰기 위해서는  아래 2가지 중 하나를 쓰면 됩니다.

즉 __weak 로 설정된  __io_putchar  또는 _write 중 하나를 설정해 주면 됩니다.

그리고 printf 를 쓰기 위해서

#include <stdio.h>

도 해 주어야 합니다.

소스 중 적당한데 가져다 놓으셔요..

 

==============================

1.  _write()

#ifdef __cplusplus
extern "C" int _write(int32_t file, uint8_t *ptr, int32_t len) {
#else
int _write(int32_t file, uint8_t *ptr, int32_t len) {
#endif
    if( HAL_UART_Transmit(&huart1, ptr, len, len) == HAL_OK ) return len;
    else return 0;
}

 

==============================

2. __io_putchar()

int __io_putchar(int ch) {
    if( HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 10) != HAL_OK ) return -1;
    return ch;
}

==============================

 

 

반응형