aboutsummaryrefslogtreecommitdiff
path: root/02-usart/include/core/usart.h
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2020-11-19 00:22:08 -0700
committerJosh Rahm <joshuarahm@gmail.com>2020-11-19 00:22:08 -0700
commitc75060eeac2810bd6ffe540e9949952eeb8e41f3 (patch)
tree0a13efb71884d2ead3c632ba16f40cac946de6af /02-usart/include/core/usart.h
parent0ed8152d62a10425a24505f82246acb939eca2a4 (diff)
downloadstm32l4-c75060eeac2810bd6ffe540e9949952eeb8e41f3.tar.gz
stm32l4-c75060eeac2810bd6ffe540e9949952eeb8e41f3.tar.bz2
stm32l4-c75060eeac2810bd6ffe540e9949952eeb8e41f3.zip
change rcc & usart to use the regtest() macros and.
Diffstat (limited to '02-usart/include/core/usart.h')
-rw-r--r--02-usart/include/core/usart.h196
1 files changed, 87 insertions, 109 deletions
diff --git a/02-usart/include/core/usart.h b/02-usart/include/core/usart.h
index 9ed6dbb..667b931 100644
--- a/02-usart/include/core/usart.h
+++ b/02-usart/include/core/usart.h
@@ -23,63 +23,56 @@ typedef enum {
typedef struct {
/* USART configuration registers 0x04 - 0x0c. */
- union {
- __IO 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; /* c1_bf = c1 bit field */
- }; /* USART Control Register 1. */
+#define usart_ue (1 << 0) /* UART enable */
+#define usart_uesm (1 << 1) /* UART enabled in stop mode. */
+#define usart_re (1 << 2) /* reciever enabled. */
+#define usart_te (1 << 3) /* transmitter enabled. */
+#define usart_idleie (1 << 4) /* Idle interrupt enabled. */
+#define usart_rxneie (1 << 5) /* RXNEIE RXNE interrupt enable. */
+#define usart_tcie (1 << 6)
+#define usart_txeie (1 << 7)
+#define usart_peie (1 << 8)
+#define usart_ps (1 << 9)
+#define usart_pce (1 << 10)
+#define usart_wake (1 << 11)
+#define usart_m0 (1 << 12)
+#define usart_mme (1 << 13)
+#define usart_cmie (1 << 14)
+#define usart_over8 (1 << 15)
+#define usart_dedt (0xF << 16)
+#define usart_deat (0xF << 21)
+#define usart_rtoie (1 << 26)
+#define usart_eobie (1 << 27)
+#define usart_m1 (1 << 28)
+ __IO uint32_t c_r1;
__IO uint32_t c_r2;
- union {
- __IO uint32_t c_r3;
- struct {
- bits_t eie:1; // Error interrupt enable.
- bits_t iren:1; // IrDA mode enabled
- bits_t irlp:1; // IrDA low power
- bits_t hdsel:1; // Half duplex selection
- bits_t nack:1; // Smartcard NACK enable
- bits_t scen:1; // Smartocard mode enable
- bits_t dmar:1; // DMA enable reciever
- bits_t dmat:1; // DMA enable transmitter
- bits_t rtse:1; // RTS enable
- bits_t ctse:1; // CTS enable
- bits_t ctsie:1; // CTS interrupt enable
- bits_t onebit:1; // One sample bit method enable
- bits_t ovrdis:1; // Overrun disable
- bits_t ddre:1; // DMA Disable on reception error
- bits_t dem:1; // Driver enable mode
- bits_t dep:1; // Driver enable polarity selection
- bits_t reserved0:1;
- bits_t scarcnt:3; // Smartcard auto-retry count.
- bits_t wus:2; // Wakeup from STOP mode interrept flag selection
- bits_t wufie:1; // Wakeup from STOP mode interrup enable
- bits_t ucesm:1; // USART clock enable in STOP mode.
- bits_t tcbgtie:1; // Transmission complete before guard time interrupt
- bits_t reserved1:7;
- } PACKED c3_bf;
- };
+
+#define usart_eie (1 << 0) // Error interrupt enable.
+#define usart_iren (1 << 1) // IrDA mode enabled
+#define usart_irlp (1 << 2) // IrDA low power
+#define usart_hdsel (1 << 3) // Half duplex selection
+#define usart_nack (1 << 4) // Smartcard NACK enable
+#define usart_scen (1 << 5) // Smartocard mode enable
+#define usart_dmar (1 << 6) // DMA enable reciever
+#define usart_dmat (1 << 7) // DMA enable transmitter
+#define usart_rtse (1 << 8) // RTS enable
+#define usart_ctse (1 << 9) // CTS enable
+#define usart_ctsie (1 << 10) // CTS interrupt enable
+#define usart_onebit (1 << 11) // One sample bit method enable
+#define usart_ovrdis (1 << 12) // Overrun disable
+#define usart_ddre (1 << 13) // DMA Disable on reception error
+#define usart_dem (1 << 14) // Driver enable mode
+#define usart_dep (1 << 15) // Driver enable polarity selection
+#define usart_scarcnt0 (1 << 17)
+#define usart_scarcnt1 (1 << 18)
+#define usart_scarcnt2 (1 << 19)
+#define usart_wus0 (1 << 20) // Wakeup from STOP mode interrept flag selection
+#define usart_wus1 (1 << 21) // Wakeup from STOP mode interrept flag selection
+#define usart_wufie (1 << 22) // Wakeup from STOP mode interrup enable
+#define usart_ucesm (1 << 23) // USART clock enable in STOP mode.
+#define usart_tcbgtie (1 << 24) // Transmission complete before guard time interrupt
+ __IO uint32_t c_r3;
/* USART baud rate register. */
uint32_t br_r;
@@ -88,60 +81,45 @@ typedef struct {
uint32_t rq_r;
/* USART ISR register. Offset = 0x1c*/
- union {
- __IO uint32_t is_r; /* Interrupt service register. */
- struct {
- bits_t pe:1; // Parity error
- bits_t fe:1; // Framing error
- bits_t nf:1; // START bit noise detection flag.
- bits_t ore:1; // Overrun error
- bits_t dlie:1; // Idle line detected
- bits_t rxne:1; // Read data register not empty
- bits_t tc:1; // Transmission complete
- bits_t txe:1; // Transmit data register empty
- bits_t lbdf:1; // LIN break detection flag
- bits_t ctsif:1; // CTS interrupt flag
- bits_t cts:1; // CTS flag.
- bits_t rtof:1; // Receiever timeout
- bits_t eobf:1; // End of block flag
- bits_t reserved0:1;
- bits_t abre:1; // Auto baud rate error
- bits_t abrf:1; // Auto baud rate flag
- bits_t busy:1; // Busy flag
- bits_t cmf:1; // Character match flag
- bits_t sbkf:1; // send break flag
- bits_t rwu:1; // receiver wakeup frlom mute mode.
- bits_t wuf:1; // Wakeup from stop mode flag
- bits_t teack:1; // Transmit enable acknowledge flag.
- bits_t reack:1; // Receieve enable acknowledge flag.
- bits_t reserved1:2;
- bits_t tcbgt:1; // Transmission completer before guard time completion.
- bits_t reserved2:6;
- } PACKED is_bf; /* Interrupt servite bit field. */
- };
- union {
- __IO uint32_t ic_r;
- struct {
- bits_t pecf:1; // Parity error clear flag
- bits_t fecf:1; // Framing error clear flag
- bits_t ncf:1; // Noise detected clear flag
- bits_t orecf:1; // Overrun error clear flag
- bits_t idlecf:1; // Idle line detected clear flag
- bits_t reserved0:1;
- bits_t tccf:1; // Transmission complete clear flag
- bits_t tcbgtcf:1; // Transmission completed before guard time clear flag
- bits_t lbdcf:1; // LIN break detection clear flag
- bits_t ctscf:1; // CTS clear flag
- bits_t reserved1:1;
- bits_t rtocf:1; // Receiver timeout clear flag
- bits_t eobcf:1; // End of block clear flag
- bits_t reserved2:4;
- bits_t cmcf:1; // Character match clear flag
- bits_t reserved3:2; // Character match clear flag
- bits_t wucf:1; // Wakeup from Stop mode clear flag.
- bits_t reserved4:11;
- } PACKED ic_bf;
- };
+#define usart_pe (1 << 0) // Parity error
+#define usart_fe (1 << 1) // Framing error
+#define usart_nf (1 << 2) // START bit noise detection flag.
+#define usart_ore (1 << 3) // Overrun error
+#define usart_dlie (1 << 4) // Idle line detected
+#define usart_rxne (1 << 5) // Read data register not empty
+#define usart_tc (1 << 6) // Transmission complete
+#define usart_txe (1 << 7) // Transmit data register empty
+#define usart_lbdf (1 << 8) // LIN break detection flag
+#define usart_ctsif (1 << 9) // CTS interrupt flag
+#define usart_cts (1 << 10) // CTS flag.
+#define usart_rtof (1 << 11) // Receiever timeout
+#define usart_eobf (1 << 12) // End of block flag
+#define usart_abre (1 << 14) // Auto baud rate error
+#define usart_abrf (1 << 15) // Auto baud rate flag
+#define usart_busy (1 << 16) // Busy flag
+#define usart_cmf (1 << 17) // Character match flag
+#define usart_sbkf (1 << 18) // send break flag
+#define usart_rwu (1 << 19) // receiver wakeup frlom mute mode.
+#define usart_wuf (1 << 20) // Wakeup from stop mode flag
+#define usart_teack (1 << 21) // Transmit enable acknowledge flag.
+#define usart_reack (1 << 22) // Receieve enable acknowledge flag.
+#define usart_tcbgt (1 << 25) // Transmission completer before guard time completion.
+ __IO uint32_t is_r; /* Interrupt service register. */
+
+#define usart_pecf (1 << 0) // Parity error clear flag
+#define usart_fecf (1 << 1) // Framing error clear flag
+#define usart_ncf (1 << 2) // Noise detected clear flag
+#define usart_orecf (1 << 3) // Overrun error clear flag
+#define usart_idlecf (1 << 4) // Idle line detected clear flag
+#define usart_tccf (1 << 6) // Transmission complete clear flag
+#define usart_tcbgtcf (1 << 7) // Transmission completed before guard time clear flag
+#define usart_lbdcf (1 << 8) // LIN break detection clear flag
+#define usart_ctscf (1 << 9) // CTS clear flag
+#define usart_rtocf (1 << 11) // Receiver timeout clear flag
+#define usart_eobcf (1 << 12) // End of block clear flag
+#define usart_cmcf (1 << 17) // Character match clear flag
+#define usart_wucf (1 << 20) // Wakeup from Stop mode clear flag.
+ __IO uint32_t ic_r;
uint32_t rd_r;
uint32_t td_r;
} usart_t;