aboutsummaryrefslogtreecommitdiff
path: root/03-refactor/src/usart.c
diff options
context:
space:
mode:
Diffstat (limited to '03-refactor/src/usart.c')
-rw-r--r--03-refactor/src/usart.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/03-refactor/src/usart.c b/03-refactor/src/usart.c
index fc58467..a64ad8b 100644
--- a/03-refactor/src/usart.c
+++ b/03-refactor/src/usart.c
@@ -1,5 +1,6 @@
#include "usart.h"
#include "delay.h"
+#include "printf.h"
void set_usart1_clock_src(__IO rcc_t* rcc, usart_clk_src_t usart_clk_src)
{
@@ -78,3 +79,13 @@ void usart_transmit_str(__IO usart_t* usart, const char* str)
usart_transmit_byte(usart, *(str ++));
}
}
+
+void usart_printf(__IO usart_t* usart, const char* fmt, ...)
+{
+ printf_callback_t callback = (printf_callback_t) usart_transmit_byte;
+ volatile void* closure = usart;
+ va_list ap;
+ va_start(ap, fmt);
+ printf_format(fmt, callback, closure, ap);
+ va_end(ap);
+}