Hi: I have problems with the printf() function. I have the UART0 initialised, and the putchar() working fine, so I can send characters to the serial. But the printf() only works if I send only 1 character at a time (printf("A")), and if I use printf("Hello") it doesn't work. This happen with the GNU compiler. With the Keil ARM Compiler, everithing works fine. What could be the problem? Thanks
Ok. When I try putchar('A') it sends the A character. If I try printf("A") it sends the A character too. But if I try printf("ABC"), it doesn't send anything. I tried to see what does printf() return: int ret; ret=printf("Hello"); putchar(ret+0x30); and it sends the number 5 (according the printf() doc's, it must return the number of characters sent), but nothing appears in hyperterminal window. Here is my putchar function implementation: int putchar(int ch) { /* Write character to Serial Port */ if (ch == '\n') { while (!(U0LSR & 0x20)); U0THR = CR; /* output CR */ } while (!(U0LSR & 0x20)); return (U0THR = ch); } Some idea? Thanks in Advance
what if you do:
putchar( 'A' ); putchar( 'B' ); putchar( 'C' );
In this case, it sends 'A' 'B' and 'C'...It seems that works normally...The problem arise when I use printf(). Thanks