diff options
Diffstat (limited to '03-refactor/src/usart.c')
-rw-r--r-- | 03-refactor/src/usart.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/03-refactor/src/usart.c b/03-refactor/src/usart.c index eddfbe7..a3b0061 100644 --- a/03-refactor/src/usart.c +++ b/03-refactor/src/usart.c @@ -31,23 +31,19 @@ void set_usart1_clock_enabled(__IO rcc_t* rcc, bool enable) void usart_set_parity(__IO usart_t* usart, usart_parity_t parity) { - uint32_t c_r1 = usart->c_r1; - c_r1 &= ~(0x3 << 9); - c_r1 |= parity; - usart->c_r1 = c_r1; + usart->c1.pce = !!parity; + usart->c1.ps = parity & 1; } void usart_set_enabled(__IO usart_t* usart, usart_enable_t enabled) { - uint32_t c_r1 = usart->c_r1; - if (!enabled) { - usart->c1_bf.ue = 0; + usart->c1.ue = 0; } else { /* Set the rx enabled. */ - usart->c1_bf.re = !!(enabled & USART_ENABLE_RX); - usart->c1_bf.te = !!(enabled & USART_ENABLE_TX); - usart->c1_bf.ue = 1; + usart->c1.re = !!(enabled & USART_ENABLE_RX); + usart->c1.te = !!(enabled & USART_ENABLE_TX); + usart->c1.ue = 1; } } |