File indexing completed on 2025-05-11 08:23:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef LIBBSP_ARM_STM32F4_STM32_USART_H
0016 #define LIBBSP_ARM_STM32F4_STM32_USART_H
0017
0018 #include <bsp/utility.h>
0019
0020
0021
0022
0023
0024
0025
0026
0027 typedef struct {
0028 uint32_t sr;
0029 #define STM32F4_USART_SR_CTS BSP_BIT32(9)
0030 #define STM32F4_USART_SR_LBD BSP_BIT32(8)
0031 #define STM32F4_USART_SR_TXE BSP_BIT32(7)
0032 #define STM32F4_USART_SR_TC BSP_BIT32(6)
0033 #define STM32F4_USART_SR_RXNE BSP_BIT32(5)
0034 #define STM32F4_USART_SR_IDLE BSP_BIT32(4)
0035 #define STM32F4_USART_SR_ORE BSP_BIT32(3)
0036 #define STM32F4_USART_SR_NF BSP_BIT32(2)
0037 #define STM32F4_USART_SR_FE BSP_BIT32(1)
0038 #define STM32F4_USART_SR_PE BSP_BIT32(0)
0039 uint32_t dr;
0040 #define STM32F4_USART_DR(val) BSP_FLD32(val, 0, 7)
0041 #define STM32F4_USART_DR_GET(reg) BSP_FLD32GET(reg, 0, 7)
0042 #define STM32F4_USART_DR_SET(reg, val) BSP_FLD32SET(reg, val, 0, 7)
0043 uint32_t bbr;
0044 #define STM32F4_USART_BBR_DIV_MANTISSA(val) BSP_FLD32(val, 4, 15)
0045 #define STM32F4_USART_BBR_DIV_MANTISSA_GET(reg) BSP_FLD32GET(reg, 4, 15)
0046 #define STM32F4_USART_BBR_DIV_MANTISSA_SET(reg, val) BSP_FLD32SET(reg, val, 4, 15)
0047 #define STM32F4_USART_BBR_DIV_FRACTION(val) BSP_FLD32(val, 0, 3)
0048 #define STM32F4_USART_BBR_DIV_FRACTION_GET(reg) BSP_FLD32GET(reg, 0, 3)
0049 #define STM32F4_USART_BBR_DIV_FRACTION_SET(reg, val) BSP_FLD32SET(reg, val, 0, 3)
0050 uint32_t cr1;
0051 #define STM32F4_USART_CR1_OVER8 BSP_BIT32(15)
0052 #define STM32F4_USART_CR1_UE BSP_BIT32(13)
0053 #define STM32F4_USART_CR1_M BSP_BIT32(12)
0054 #define STM32F4_USART_CR1_WAKE BSP_BIT32(11)
0055 #define STM32F4_USART_CR1_PCE BSP_BIT32(10)
0056 #define STM32F4_USART_CR1_PS BSP_BIT32(9)
0057 #define STM32F4_USART_CR1_PEIE BSP_BIT32(8)
0058 #define STM32F4_USART_CR1_TXEIE BSP_BIT32(7)
0059 #define STM32F4_USART_CR1_TCIE BSP_BIT32(6)
0060 #define STM32F4_USART_CR1_RXNEIE BSP_BIT32(5)
0061 #define STM32F4_USART_CR1_IDLEIE BSP_BIT32(4)
0062 #define STM32F4_USART_CR1_TE BSP_BIT32(3)
0063 #define STM32F4_USART_CR1_RE BSP_BIT32(2)
0064 #define STM32F4_USART_CR1_RWU BSP_BIT32(1)
0065 #define STM32F4_USART_CR1_SBK BSP_BIT32(0)
0066 uint32_t cr2;
0067 #define STM32F4_USART_CR2_LINEN BSP_BIT32(14)
0068 #define STM32F4_USART_CR2_STOP(val) BSP_FLD32(val, 12, 13)
0069 #define STM32F4_USART_CR2_STOP_GET(reg) BSP_FLD32GET(reg, 12, 13)
0070 #define STM32F4_USART_CR2_STOP_SET(reg, val) BSP_FLD32SET(reg, val, 12, 13)
0071 #define STM32F4_USART_CR2_CLKEN BSP_BIT32(11)
0072 #define STM32F4_USART_CR2_CPOL BSP_BIT32(10)
0073 #define STM32F4_USART_CR2_CPHA BSP_BIT32(9)
0074 #define STM32F4_USART_CR2_LBCL BSP_BIT32(8)
0075 #define STM32F4_USART_CR2_LBDIE BSP_BIT32(6)
0076 #define STM32F4_USART_CR2_LBDL BSP_BIT32(5)
0077 #define STM32F4_USART_CR2_ADD(val) BSP_FLD32(val, 0, 3)
0078 #define STM32F4_USART_CR2_ADD_GET(reg) BSP_FLD32GET(reg, 0, 3)
0079 #define STM32F4_USART_CR2_ADD_SET(reg, val) BSP_FLD32SET(reg, val, 0, 3)
0080 uint32_t cr3;
0081 #define STM32F4_USART_CR3_ONEBIT BSP_BIT32(11)
0082 #define STM32F4_USART_CR3_CTSIE BSP_BIT32(10)
0083 #define STM32F4_USART_CR3_CTSE BSP_BIT32(9)
0084 #define STM32F4_USART_CR3_RTSE BSP_BIT32(8)
0085 #define STM32F4_USART_CR3_DMAT BSP_BIT32(7)
0086 #define STM32F4_USART_CR3_DMAR BSP_BIT32(6)
0087 #define STM32F4_USART_CR3_SCEN BSP_BIT32(5)
0088 #define STM32F4_USART_CR3_NACK BSP_BIT32(4)
0089 #define STM32F4_USART_CR3_HDSEL BSP_BIT32(3)
0090 #define STM32F4_USART_CR3_IRLP BSP_BIT32(2)
0091 #define STM32F4_USART_CR3_IREN BSP_BIT32(1)
0092 #define STM32F4_USART_CR3_EIE BSP_BIT32(0)
0093 uint32_t gtpr;
0094 #define STM32F4_USART_GTPR_GT(val) BSP_FLD32(val, 8, 15)
0095 #define STM32F4_USART_GTPR_GT_GET(reg) BSP_FLD32GET(reg, 8, 15)
0096 #define STM32F4_USART_GTPR_GT_SET(reg, val) BSP_FLD32SET(reg, val, 8, 15)
0097 #define STM32F4_USART_GTPR_PSC(val) BSP_FLD32(val, 0, 7)
0098 #define STM32F4_USART_GTPR_PSC_GET(reg) BSP_FLD32GET(reg, 0, 7)
0099 #define STM32F4_USART_GTPR_PSC_SET(reg, val) BSP_FLD32SET(reg, val, 0, 7)
0100 } stm32f4_usart;
0101
0102
0103
0104 #endif