aboutsummaryrefslogtreecommitdiff
path: root/02-usart/src/core/usart.c
diff options
context:
space:
mode:
Diffstat (limited to '02-usart/src/core/usart.c')
-rw-r--r--02-usart/src/core/usart.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/02-usart/src/core/usart.c b/02-usart/src/core/usart.c
index dc15e57..19d982e 100644
--- a/02-usart/src/core/usart.c
+++ b/02-usart/src/core/usart.c
@@ -5,12 +5,12 @@
void set_usart1_clock_src(__IO rcc_t* rcc, usart_clk_src_t usart_clk_src)
{
- rcc->ccip_r = rcc->ccip_r & (~0x03) | usart_clk_src;
+ rcc->ccip_r = (rcc->ccip_r & (~0x03)) | usart_clk_src;
}
void set_usart2_clock_src(__IO rcc_t* rcc, usart_clk_src_t usart_clk_src)
{
- rcc->ccip_r = rcc->ccip_r & ~(0x03 << 2) | (usart_clk_src << 2);
+ rcc->ccip_r = (rcc->ccip_r & ~(0x03 << 2)) | (usart_clk_src << 2);
}
void set_usart2_clock_enabled(__IO rcc_t* rcc, bool enable)
@@ -41,8 +41,6 @@ void usart_set_parity(__IO usart_t* usart, usart_parity_t parity)
void usart_set_enabled(__IO usart_t* usart, usart_enable_t enabled)
{
- uint32_t c_r1 = usart->c_r1;
-
if (!enabled) {
regset(usart->c_r1, usart_ue, 0);
} else {
@@ -104,6 +102,7 @@ void usart_printf(__IO usart_t* usart, const char* fmt, ...)
va_list l;
union {
void* ptr;
+ char* str;
int i;
} b;
char buf[128];
@@ -130,6 +129,9 @@ void usart_printf(__IO usart_t* usart, const char* fmt, ...)
decimalify(b.i, buf);
usart_transmit_str_sync(usart, buf);
break;
+ case 's':
+ b.str = va_arg(l, char*);
+ usart_transmit_str_sync(usart, b.str);
}
++ fmt;
} else {