aboutsummaryrefslogtreecommitdiff
path: root/usart/include/usart.h
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2018-01-23 23:13:16 -0700
committerJosh Rahm <joshuarahm@gmail.com>2018-01-23 23:13:16 -0700
commitacd8afd83da625d36ef39bc01717f29f3b689952 (patch)
tree9ca98e5b0bd66e10e30fd074d55834140637dcaa /usart/include/usart.h
parentaf0244fb51ccb608440128d0f3303ccce77c14c2 (diff)
downloadstm32l4-acd8afd83da625d36ef39bc01717f29f3b689952.tar.gz
stm32l4-acd8afd83da625d36ef39bc01717f29f3b689952.tar.bz2
stm32l4-acd8afd83da625d36ef39bc01717f29f3b689952.zip
simple uart enabled.
Diffstat (limited to 'usart/include/usart.h')
-rw-r--r--usart/include/usart.h39
1 files changed, 34 insertions, 5 deletions
diff --git a/usart/include/usart.h b/usart/include/usart.h
index ebc5458..257aab6 100644
--- a/usart/include/usart.h
+++ b/usart/include/usart.h
@@ -18,7 +18,33 @@ typedef enum {
typedef struct {
/* USART configuration registers 0x04 - 0x0c. */
- uint32_t c_r1;
+ union {
+ uint32_t c_r1;
+ struct {
+ bits_t ue:1; /* UART enable */
+ bits_t uesm:1; /* UART enabled in stop mode. */
+ bits_t re:1; /* reciever enabled. */
+ bits_t te:1; /* transmitter enabled. */
+ bits_t idleie:1; /* Idle interrupt enabled. */
+ bits_t rxneie:1; /* RXNEIE RXNE interrupt enable. */
+ bits_t tcie:1;
+ bits_t txeie:1;
+ bits_t peie:1;
+ bits_t ps:1;
+ bits_t pce:1;
+ bits_t wake:1;
+ bits_t m0:1;
+ bits_t mme:1;
+ bits_t cmie:1;
+ bits_t over8:1;
+ bits_t dedt:4;
+ bits_t deat:4;
+ bits_t rtoie:1;
+ bits_t eobie:1;
+ bits_t m1:1;
+ bits_t reserved:3;
+ } PACKED c1_bf;
+ };
uint32_t c_r2;
uint32_t c_r3;
@@ -73,10 +99,9 @@ typedef enum {
} usart_parity_t;
typedef enum {
- USART_ENABLE_TX_RX = 0x0d, /* 0b1101 */
- USART_ENABLE_TX = 0x09, /* 0b1001 */
- USART_ENABLE_RX = 0x05, /* 0b0101 */
- USART_ENABLE_DISABLED = 0x00, /* 0b0000 */
+ USART_ENABLE_TX = 0x02,
+ USART_ENABLE_RX = 0x01,
+ USART_ENABLE_DISABLED = 0x00,
} usart_enable_t;
void usart_set_parity(__IO usart_t* usart, usart_parity_t parity);
@@ -97,6 +122,10 @@ void set_usart2_clock_src(__IO rcc_t* rcc, usart_clk_src_t usart_clk_src);
void set_usart2_clock_enabled(__IO rcc_t* rcc, bool enable);
+void usart_transmit_bytes(
+ __IO usart_t* usart, const uint8_t* bytes, uint32_t n);
+
+void usart_transmit_str(__IO usart_t* usart, const char* str);
#endif /* H__USART_ */