olsndot/shared/usart_stdio.c
Karl Palsson 19a85ae45b f0 working (one fixme)
need scan mode upstream?
2016-03-04 00:43:21 +00:00

34 lines
588 B
C

/*
* support for stdio output to a usart
* Karl Palsson, 2015 <karlp@tweak.net.au>
*/
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <libopencm3/stm32/usart.h>
#ifndef STDIO_USART
#define STDIO_USART USART1
#endif
int _write(int file, char *ptr, int len);
int _write(int file, char *ptr, int len)
{
int i;
if (file == STDOUT_FILENO || file == STDERR_FILENO) {
for (i = 0; i < len; i++) {
if (ptr[i] == '\n') {
usart_send_blocking(STDIO_USART, '\r');
}
usart_send_blocking(STDIO_USART, ptr[i]);
}
return i;
}
errno = EIO;
return -1;
}