Micom_Electric/마이컴_원칩 2012. 3. 20. 19:32
예전에 해둔 포스팅
http://turbocrazy.tistory.com/entry/%ED%8E%8C-GCC%EC%97%90%EC%84%9C-printf-UART%EB%A1%9C-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-avr-libc-putchar-%ED%95%A8%EC%88%98-%EC%A0%95%EC%9D%98-%ED%95%98%EA%B8%B0 
쓸라고 넣고 컴파일 해보니
stray '\241' 에러...
확인해 보니 허무한 에러
'\r' 에 붙은 따옴표 오류임...
아래거 대신에..

===
Code:
#include <stdio.h> 
static int uart_putchar(char c, FILE *stream); 
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, 
                                             _FDEV_SETUP_WRITE); 
    static int 
    uart_putchar(char c, FILE *stream)     { 
      if (c == '\n') 
        uart_putchar('\r', stream); 
      loop_until_bit_is_set(UCSRA, UDRE); 
      UDR = c; 
      return 0; 
    } 
    int 
    main(void)    { 
      init_uart(); 
      stdout = &mystdout; 
      printf("Hello, world!\n"); 
      return 0; 
    }

==============
 수정된것
static int uartPutch(char c, FILE *stream);
static FILE uartstdout = FDEV_SETUP_STREAM(uartPutch, NULL,_FDEV_SETUP_WRITE);
static int uartPutch(char c, FILE *stream){
if (c == '\n' || c == '\0')
uartPutch('\r', stream);
loop_until_bit_is_set(UCSR0A, UDRE0);
UDR0 = c;
return 0;

쓸때는 아래처럼 UART 초기화및 세팅해 주고 사용하면 된다
// ----------------------------------------------------------------------------
int main(void){
stdout = &uartstdout; // Use UART as Stdout
uartInit(); // Set baud 9600, 8 bit, no parity, 1 stop

posted by 털보네i
: