wip
This commit is contained in:
46
src/usart.h
Normal file
46
src/usart.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef USART_H_
|
||||
#define USART_H_
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
struct usart {
|
||||
volatile uint32_t SR; // Status register
|
||||
volatile uint32_t DR; // Data register
|
||||
volatile uint32_t BRR; // Baud rate register
|
||||
volatile uint32_t CR1; // Control register 1
|
||||
volatile uint32_t CR2; // Control register 2
|
||||
volatile uint32_t CR3; // Control register 3
|
||||
volatile uint32_t GTPR; // Guard time and prescaler registe
|
||||
};
|
||||
|
||||
#define USART2_BASE_ADDR (0x40004400U)
|
||||
#define USART2 ((struct usart *) USART2_BASE_ADDR)
|
||||
|
||||
// CR Register
|
||||
// Oversampling mode
|
||||
#define USART_CR1_OVER8_BIT 15
|
||||
#define USART_CR1_OVER8_8 (1 << USART_CR1_OVER8_BIT)
|
||||
|
||||
// USART enable
|
||||
#define USART_CR1_UE_BIT 13
|
||||
#define USART_CR1_UE_ENABLE (1 << USART_CR1_UE_BIT)
|
||||
|
||||
// Trasmitter enable
|
||||
#define USART_CR1_TE_BIT 3
|
||||
#define USART_CR1_TE_ENABLE (1 << USART_CR1_TE_BIT)
|
||||
|
||||
// Receiver enable
|
||||
#define USART_CR1_RE_BIT 2
|
||||
#define USART_CR1_RE_ENABLE (1 << USART_CR1_RE_BIT)
|
||||
|
||||
// BRR Register
|
||||
#define USART_BRR_MANTISSA_BIT 4 // Bits [15:4]
|
||||
#define USART_BRR_MANTISSA_MASK (0b111111111111) // Bits [15:4]
|
||||
|
||||
#define USART_BRR_FRACTION_BIT 0 // Bits [3:0]
|
||||
#define USART_BRR_FRACTION_MASK (0b111) // Bits [3:0]
|
||||
|
||||
void usart2_init(void);
|
||||
void usart2_start(void);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user