aboutsummaryrefslogtreecommitdiff
path: root/03-refactor/src/usart.c
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2019-01-02 23:08:37 -0700
committerJosh Rahm <joshuarahm@gmail.com>2019-01-03 21:23:46 -0700
commit33a15696519e161cd823baaf4214d1ed452a410a (patch)
treee3491b0b7b7c570b36c1e4c5235e2d026c651b2c /03-refactor/src/usart.c
parent109cdf120ea85f46d664e77c44ea2a311fd49ba2 (diff)
downloadstm32l4-33a15696519e161cd823baaf4214d1ed452a410a.tar.gz
stm32l4-33a15696519e161cd823baaf4214d1ed452a410a.tar.bz2
stm32l4-33a15696519e161cd823baaf4214d1ed452a410a.zip
Add primitive printf functionality to the USART.
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);
+}