Implementing low-level character I/O using stdin and stdout

Technical Note 83040


MSP430, AVR, AVR32, STM8




2015/11/6 13:04


One way to handle character input and output in an application is to use the standard functions defined in "stdio.h".

If any of the standard streams are used by your application, for example by the functions printf and scanf, you need to customize the low-level functionality to suit your hardware.

This technote show some ways to do this on some different targets. Some more information can be found in the manuals under the heading "Standard streams for input and output"


In all the examples a terminal connected via a UART is used as target for the communication. This is set at 9600 Baud, 1 stopbit, 8 databits, no flow control and no parity.


The projects have been built using these versions of IAR Embedded Workbench:

IAR Embedded Workbench for Atmel AVR 5.50.2
IAR Embedded Workbench for Atmel AVR32 3.30.2
IAR Embedded Workbench for TI MSP430 5.10.6
IAR Embedded Workbench for STMicroelectronics STM8 1.20.1


All product names are trademarks or registered trademarks of their respective owners.



We do no longer support Internet Explorer. To get the best experience of, we recommend upgrading to a modern browser such as Chrome or Edge.