Knowledge Base Article
Answer: Keil’s printf function calls the putchar() to send characters but the default putchar uses an UART based on the Special Function Register (SFR), which PSoC® 3 does not have. Therefore, to use printf, the program must override Keil's built-in putchar function.
For example, if ‘UART’ is the instance name of the UART component in your project, then write the following function in the main.c file to override Keil’s built-in putchar function:
Then, printf can be used to send data to UART in the following manner (note that the putchar() function should either be defined or declared before the first call to the printf() function for proper execution):