cmake_cpputest_template/inc/ch32h41xhw.h
2025-12-23 14:33:54 -08:00

18083 lines
1 MiB

#ifndef TODO_HARDWARE_H
#define TODO_HARDWARE_H
#include "ch32fun.h"
#ifndef __ASSEMBLER__ // Things before this can be used in assembly.
#ifdef __cplusplus
extern "C" {
#endif
/* Interrupt Number Definition, according to the selected device */
typedef enum IRQn
{
/****** RISC-V Processor Exceptions Numbers *******************************************************/
NonMaskableInt_IRQn = 2, /* 2 Non Maskable Interrupt */
EXC_IRQn = 3, /* 3 Exception Interrupt */
Ecall_M_Mode_IRQn = 5, /* 5 Ecall M Mode Interrupt */
Ecall_U_Mode_IRQn = 8, /* 8 Ecall U Mode Interrupt */
Break_Point_IRQn = 9, /* 9 Break Point Interrupt */
SysTick0_IRQn = 12, /* 12 System timer Interrupt */
SysTick1_IRQn = 13, /* 13 System timer Interrupt */
Software_IRQn = 14, /* 14 software Interrupt */
IPC_CH0_IRQn = 16, /* 16 IPC CH0 Interrupt */
IPC_CH1_IRQn = 17, /* 17 IPC CH1 Interrupt */
IPC_CH2_IRQn = 18, /* 18 IPC CH2 Interrupt */
IPC_CH3_IRQn = 19, /* 19 IPC CH3 Interrupt */
HSEM_IRQn = 28, /* 28 HSEM Interrupt */
/****** RISC-V specific Interrupt Numbers *********************************************************/
WWDG_IRQn = 32, /* Window WatchDog Interrupt */
EXTI15_8_IRQn = 33, /* External Line[15:8] Interrupts */
FLASH_IRQn = 34, /* FLASH global Interrupt */
RCC_IRQn = 35, /* RCC global Interrupt */
EXTI7_0_IRQn = 36, /* External Line[7:0] Interrupts */
SPI1_IRQn = 37, /* SPI1 global Interrupt */
DMA1_Channel2_IRQn = 38, /* DMA1 Channel 2 global Interrupt */
DMA1_Channel3_IRQn = 39, /* DMA1 Channel 3 global Interrupt */
DMA1_Channel4_IRQn = 40, /* DMA1 Channel 4 global Interrupt */
DMA1_Channel5_IRQn = 41, /* DMA1 Channel 5 global Interrupt */
DMA1_Channel6_IRQn = 42, /* DMA1 Channel 6 global Interrupt */
DMA1_Channel7_IRQn = 43, /* DMA1 Channel 7 global Interrupt */
DMA1_Channel8_IRQn = 44, /* DMA1 Channel 8 global Interrupt */
USART2_IRQn = 45, /* USART2 global Interrupt */
I2C1_EV_IRQn = 46, /* I2C1 Event Interrupt */
I2C1_ER_IRQn = 47, /* I2C1 Error Interrupt */
USART1_IRQn = 48, /* USART1 global Interrupt */
SPI2_IRQn = 49, /* SPI2 global Interrupt */
SPI3_IRQn = 50, /* SPI3 global Interrupt */
SPI4_IRQn = 51, /* SPI4 global Interrupt */
I2C2_EV_IRQn = 52, /* I2C2 Event Interrupt */
I2C2_ER_IRQn = 53, /* I2C2 Error Interrupt */
USBPD_IRQn = 54, /* USBPD Interrupt */
USBPDWakeUp_IRQn = 55, /* USBPD WakeUp Interrupt */
USBHS_IRQn = 56, /* USBHS global Interrupt */
DMA1_Channel1_IRQn = 57, /* DMA1 Channel 1 global Interrupt */
CAN1_SCE_IRQn = 58, /* CAN1 SCE Interrupt */
CAN1_TX_IRQn = 59, /* CAN1 TX Interrupts */
CAN1_RX0_IRQn = 60, /* CAN1 RX0 Interrupts */
CAN1_RX1_IRQn = 61, /* CAN1 RX1 Interrupts */
USBSS_IRQn = 62, /* USBSS Interrupt */
USBSS_LINK_IRQn = 63, /* USBSS LINK Interrupt */
USBHSWakeup_IRQn = 64, /* USBHS WakeUp Interrupt */
USBSSWakeup_IRQn = 65, /* USBSS WakeUp Interrupt */
RTCAlarm_IRQn = 66, /* RTC Alarm through EXTI Line Interrupt */
USBFS_IRQn = 67, /* USBFS global Interrupt */
USBFSWakeUp_IRQn = 68, /* USBFS WakeUp Interrupt */
ADC1_2_IRQn = 69, /* ADC1 and ADC2 global Interrupt */
TIM1_BRK_IRQn = 70, /* TIM1 Break Interrupt */
TIM1_UP_IRQn = 71, /* TIM1 Update Interrupt */
TIM1_TRG_COM_IRQn = 72, /* TIM1 Trigger and Commutation Interrupt */
TIM1_CC_IRQn = 73, /* TIM1 Capture Compare Interrupt */
TIM2_IRQn = 74, /* TIM2 global Interrupt */
TIM3_IRQn = 75, /* TIM3 global Interrupt */
TIM4_IRQn = 76, /* TIM4 global Interrupt */
TIM5_IRQn = 77, /* TIM5 global Interrupt */
I2C3_EV_IRQn = 78, /* I2C3 Event Interrupt */
I2C3_ER_IRQn = 79, /* I2C3 Error Interrupt */
I2C4_EV_IRQn = 80, /* I2C4 Event Interrupt */
I2C4_ER_IRQn = 81, /* I2C4 Error Interrupt */
QSPI1_IRQn = 82, /* QSPI1 Interrupt */
SERDES_IRQn = 83, /* SERDES Interrupt */
USART3_IRQn = 84, /* USART3 global Interrupt */
USART4_IRQn = 85, /* USART4 global Interrupt */
TIM8_BRK_IRQn = 86, /* TIM8 Break Interrupt */
TIM8_UP_IRQn = 87, /* TIM8 Update Interrupt */
TIM8_TRG_COM_IRQn = 88, /* TIM8 Trigger and Commutation Interrupt */
TIM8_CC_IRQn = 89, /* TIM8 Capture Compare Interrupt */
TIM9_IRQn = 90, /* TIM9 global Interrupt */
TIM10_IRQn = 91, /* TIM10 global Interrupt */
TIM11_IRQn = 92, /* TIM11 global Interrupt */
TIM12_IRQn = 93, /* TIM12 global Interrupt */
FMC_IRQn = 94, /* FMC global Interrupt */
SDMMC_IRQn = 95, /* SDMMC global Interrupt */
LPTIM1_IRQn = 96, /* LPTIM1 global Interrupt */
LPTIM2_IRQn = 97, /* LPTIM2 global Interrupt */
USART5_IRQn = 98, /* USART5 global Interrupt */
USART6_IRQn = 99, /* USART6 global Interrupt */
TIM6_IRQn = 100, /* TIM6 global Interrupt */
TIM7_IRQn = 101, /* TIM7 global Interrupt */
DMA2_Channel1_IRQn = 102, /* DMA2 Channel 1 global Interrupt */
DMA2_Channel2_IRQn = 103, /* DMA2 Channel 2 global Interrupt */
DMA2_Channel3_IRQn = 104, /* DMA2 Channel 3 global Interrupt */
DMA2_Channel4_IRQn = 105, /* DMA2 Channel 4 global Interrupt */
DMA2_Channel5_IRQn = 106, /* DMA2 Channel 5 global Interrupt */
DMA2_Channel6_IRQn = 107, /* DMA2 Channel 6 global Interrupt */
DMA2_Channel7_IRQn = 108, /* DMA2 Channel 7 global Interrupt */
DMA2_Channel8_IRQn = 109, /* DMA2 Channel 8 global Interrupt */
ETH_IRQn = 110, /* ETH global Interrupt */
ETH_WKUP_IRQn = 111, /* ETH WakeUp Interrupt */
CAN2_SCE_IRQn = 112, /* CAN2 SCE Interrupt */
CAN2_TX_IRQn = 113, /* CAN2 TX Interrupts */
CAN2_RX0_IRQn = 114, /* CAN2 RX0 Interrupts */
CAN2_RX1_IRQn = 115, /* CAN2 RX1 Interrupts */
USART7_IRQn = 116, /* USART7 global Interrupt */
USART8_IRQn = 117, /* USART8 global Interrupt */
I3C_EV_IRQn = 118, /* I3C Event Interrupt */
I3C_ER_IRQn = 119, /* I3C Error Interrupt */
DVP_IRQn = 120, /* DVP global Interrupt */
ECDC_IRQn = 121, /* ECDC global Interrupt */
PIOC_IRQn = 122, /* PIOC global Interrupt */
SAI_IRQn = 123, /* SAI global Interrupt */
LTDC_IRQn = 124, /* LTDC global Interrupt */
GPHA_IRQn = 125, /* GPHA global Interrupt */
DFSDM0_IRQn = 127, /* DFSDM0 global Interrupt */
DFSDM1_IRQn = 128, /* DFSDM1 global Interrupt */
SWPMI_IRQn = 131, /* SWPMI global Interrupt */
QSPI2_IRQn = 134, /* QSPI2 Interrupt */
SWPMI_WKUP_IRQn = 135, /* SWPMI WakeUp Interrupt */
CAN3_SCE_IRQn = 136, /* CAN3 SCE Interrupt */
CAN3_TX_IRQn = 137, /* CAN3 TX Interrupts */
CAN3_RX0_IRQn = 138, /* CAN3 RX0 Interrupts */
CAN3_RX1_IRQn = 139, /* CAN3 RX1 Interrupts */
LPTIM2_WKUP_IRQn = 140, /* LPTIM2 WakeUp Interrupt */
LPTIM1_WKUP_IRQn = 141, /* LPTIM1 WakeUp Interrupt */
I3C_WKUP_IRQn = 142, /* I3C WakeUp Interrupt */
RTC_IRQn = 143, /* RTC global Interrupt */
HSADC_IRQn = 144, /* HSADC global Interrupt */
UHSIF_IRQn = 145, /* UHSIF global Interrupt */
RNG_IRQn = 146, /* RNG global Interrupt */
SDIO_IRQn = 147, /* SDIO global Interrupt */
USART_WKUP_IRQn = 148, /* USART wakeup Interrupt */
} IRQn_Type;
#define BASE_VECTOR "\n\
.balign 2\n\
.option push;\n\
.option norvc;\n\
j handle_reset\n\
.word 0 \n\
.word NMI_Handler /* NMI */ \n\
.word HardFault_Handler /* Hard Fault */ \n\
.word 0 \n\
.word Ecall_M_Mode_Handler /* Ecall M Mode */ \n\
.word 0 \n\
.word 0 \n\
.word Ecall_U_Mode_Handler /* Ecall U Mode */ \n\
.word Break_Point_Handler /* Break Point */ \n\
.word 0 \n\
.word 0 \n\
.word SysTick_Handler /* SysTick */ \n \
.word SysTick_Handler /* SysTick */ \n \
.word SW_Handler /* SW */ \n \
.word 0 \n \
.word IPC_CH0_Handler \n \
.word IPC_CH1_Handler \n \
.word IPC_CH2_Handler \n \
.word IPC_CH3_Handler \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
.word HSEM_Handler \n \
.word 0 \n \
.word 0 \n \
.word 0 \n \
/* External Interrupts */ \n \
.word WWDG_IRQHandler /* Window Watchdog */ \n \
.word EXTI15_8_IRQHandler \n \
.word FLASH_IRQHandler /* Flash */ \n \
.word RCC_IRQHandler /* RCC */ \n \
.word EXTI7_0_IRQHandler \n \
.word SPI1_IRQHandler /* SPI1 */ \n \
.word DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */ \n \
.word DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */ \n \
.word DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */ \n \
.word DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */ \n \
.word DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */ \n \
.word DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */ \n \
.word DMA1_Channel8_IRQHandler /* DMA1 Channel 8 */ \n \
.word USART2_IRQHandler /* USART2 */ \n \
.word I2C1_EV_IRQHandler /* I2C1 Event */ \n \
.word I2C1_ER_IRQHandler /* I2C1 Error */ \n \
.word USART1_IRQHandler /* USART1 */ \n \
.word SPI2_IRQHandler /* SPI2 */ \n \
.word SPI3_IRQHandler /* SPI3 */ \n \
.word SPI4_IRQHandler /* SPI4 */ \n \
.word I2C2_EV_IRQHandler /* I2C2 Event */ \n \
.word I2C2_ER_IRQHandler /* I2C2 Error */ \n \
.word USBPD_IRQHandler \n \
.word USBPDWakeUp_IRQHandler \n \
.word USBHS_IRQHandler /* USBHS */ \n \
.word DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */ \n \
.word CAN1_SCE_IRQHandler /* CAN1 SCE */ \n \
.word CAN1_TX_IRQHandler /* CAN1 TX */ \n \
.word CAN1_RX0_IRQHandler /* CAN1 RX1 */ \n \
.word CAN1_RX1_IRQHandler /* CAN1 RX1 */ \n \
.word USBSS_IRQHandler \n \
.word USBSS_LINK_IRQHandler \n \
.word USBHSWakeup_IRQHandler \n \
.word USBSSWakeup_IRQHandler \n \
.word RTCAlarm_IRQHandler /* RTC Alarm through EXTI Line */ \n \
.word USBFS_IRQHandler /* USBFS */ \n \
.word USBFSWakeUp_IRQHandler /* USBFS Wakeup */ \n \
.word ADC1_2_IRQHandler /* ADC1_2 */ \n \
.word TIM1_BRK_IRQHandler /* TIM1 Break */ \n \
.word TIM1_UP_IRQHandler /* TIM1 Update */ \n \
.word TIM1_TRG_COM_IRQHandler /* TIM1 Trigger and Commutation */ \n \
.word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ \n \
.word TIM2_IRQHandler /* TIM2 */ \n \
.word TIM3_IRQHandler /* TIM3 */ \n \
.word TIM4_IRQHandler /* TIM4 */ \n \
.word TIM5_IRQHandler /* TIM5 */ \n \
.word I2C3_EV_IRQHandler /* I2C3 Event */ \n \
.word I2C3_ER_IRQHandler /* I2C3 Error */ \n \
.word I2C4_EV_IRQHandler /* I2C4 Event */ \n \
.word I2C4_ER_IRQHandler /* I2C4 Error */ \n \
.word QSPI1_IRQHandler \n \
.word SERDES_IRQHandler \n \
.word USART3_IRQHandler /* USART3 */ \n \
.word USART4_IRQHandler /* USART4 */ \n \
.word TIM8_BRK_IRQHandler /* TIM8 Break */ \n \
.word TIM8_UP_IRQHandler /* TIM8 Update */ \n \
.word TIM8_TRG_COM_IRQHandler /* TIM8 Trigger and Commutation */ \n \
.word TIM8_CC_IRQHandler /* TIM8 Capture Compare */ \n \
.word TIM9_IRQHandler /* TIM9 */ \n \
.word TIM10_IRQHandler /* TIM10 */ \n \
.word TIM11_IRQHandler /* TIM11 */ \n \
.word TIM12_IRQHandler /* TIM12 */ \n \
.word FMC_IRQHandler \n \
.word SDMMC_IRQHandler \n \
.word LPTIM1_IRQHandler \n \
.word LPTIM2_IRQHandler \n \
.word USART5_IRQHandler /* USART5 */ \n \
.word USART6_IRQHandler /* USART6 */ \n \
.word TIM6_IRQHandler /* TIM6 */ \n \
.word TIM7_IRQHandler /* TIM7 */ \n \
.word DMA2_Channel1_IRQHandler /* DMA2 Channel 1 */ \n \
.word DMA2_Channel2_IRQHandler /* DMA2 Channel 2 */ \n \
.word DMA2_Channel3_IRQHandler /* DMA2 Channel 3 */ \n \
.word DMA2_Channel4_IRQHandler /* DMA2 Channel 4 */ \n \
.word DMA2_Channel5_IRQHandler /* DMA2 Channel 5 */ \n \
.word DMA2_Channel6_IRQHandler /* DMA2 Channel 6 */ \n \
.word DMA2_Channel7_IRQHandler /* DMA2 Channel 7 */ \n \
.word DMA2_Channel8_IRQHandler /* DMA2 Channel 8 */ \n \
.word ETH_IRQHandler /* ETH */ \n \
.word ETHWakeUp_IRQHandler /* ETH WakeUp */ \n \
.word CAN2_SCE_IRQHandler /* CAN2 SCE */ \n \
.word CAN2_TX_IRQHandler /* CAN2 TX */ \n \
.word CAN2_RX0_IRQHandler /* CAN2 RX0 */ \n \
.word CAN2_RX1_IRQHandler /* CAN2 RX1 */ \n \
.word USART7_IRQHandler /* USART7 */ \n \
.word USART8_IRQHandler /* USART8 */ \n \
.word I3C_EV_IRQHandler /* I3C Event */ \n \
.word I3C_ER_IRQHandler /* I3C Error */ \n \
.word DVP_IRQHandler /* DVP */ \n \
.word ECDC_IRQHandler \n \
.word PIOC_IRQHandler \n \
.word SAI_IRQHandler \n \
.word LTDC_IRQHandler \n \
.word GPHA_IRQHandler \n \
.word 0 \n \
.word DFSDM0_IRQHandler \n \
.word DFSDM1_IRQHandler \n \
.word 0 \n \
.word 0 \n \
.word SWPMI_IRQHandler \n \
.word 0 \n \
.word 0 \n \
.word QSPI2_IRQHandler \n \
.word SWPMI_WKUP_IRQHandler \n \
.word CAN3_SCE_IRQHandler /* CAN3 SCE */ \n \
.word CAN3_TX_IRQHandler /* CAN3 TX */ \n \
.word CAN3_RX0_IRQHandler /* CAN3 RX0 */ \n \
.word CAN3_RX1_IRQHandler /* CAN3 RX1 */ \n \
.word LPTIM2_WKUP_IRQHandler \n \
.word LPTIM1_WKUP_IRQHandler \n \
.word I3C_WKUP_IRQHandler \n \
.word RTC_IRQHandler /* RTC */ \n \
.word HSADC_IRQHandler \n \
.word UHSIF_IRQHandler \n \
.word RNG_IRQHandler /* RNG */ \n \
.word SDIO_IRQHandler /* SDIO */ \n \
.word USART_WKUP_IRQHandler \n "
#define DEFAULT_INTERRUPT_VECTOR_CONTENTS BASE_VECTOR "\n.option pop;\n"
/* memory mapped structure for SysTick */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t SR;
__IO uint64_t CNT;
uint32_t RESERVED0;
__IO uint64_t CMP;
} SysTick_Type;
#endif /* __ASSEMBLER__*/
#define HardFault_IRQn EXC_IRQn
#define ADC1_2_IRQn ADC_IRQn
/* Standard Peripheral Library old definitions (maintained for legacy purpose) */
#define HSI_Value HSI_VALUE
#define HSE_Value HSE_VALUE
#define HSEStartUp_TimeOut HSE_STARTUP_TIMEOUT
#ifndef __ASSEMBLER__
/* Analog to Digital Converter */
typedef struct
{
__IO uint32_t STATR;
__IO uint32_t CTLR1;
__IO uint32_t CTLR2;
__IO uint32_t SAMPTR1;
__IO uint32_t SAMPTR2;
__IO uint32_t IOFR1;
__IO uint32_t IOFR2;
__IO uint32_t IOFR3;
__IO uint32_t IOFR4;
__IO uint32_t WDHTR;
__IO uint32_t WDLTR;
__IO uint32_t RSQR1;
__IO uint32_t RSQR2;
__IO uint32_t RSQR3;
__IO uint32_t ISQR;
__IO uint32_t IDATAR1;
__IO uint32_t IDATAR2;
__IO uint32_t IDATAR3;
__IO uint32_t IDATAR4;
__IO uint32_t RDATAR;
uint32_t RESERVED0;
__IO uint32_t AUX;
__IO uint32_t DRV;
} ADC_TypeDef;
/* Controller Area Network TxMailBox */
typedef struct
{
__IO uint32_t TXMIR;
__IO uint32_t TXMDTR;
__IO uint32_t TXMDLR;
__IO uint32_t TXMDHR;
} CAN_TxMailBox_TypeDef;
/* Controller Area Network FIFOMailBox */
typedef struct
{
__IO uint32_t RXMIR;
__IO uint32_t RXMDTR;
__IO uint32_t RXMDLR;
__IO uint32_t RXMDHR;
} CAN_FIFOMailBox_TypeDef;
/* Controller Area Network FilterRegister */
typedef struct
{
__IO uint32_t FR1;
__IO uint32_t FR2;
} CAN_FilterRegister_TypeDef;
/* Controller Area Network */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t STATR;
__IO uint32_t TSTATR;
__IO uint32_t RFIFO0;
__IO uint32_t RFIFO1;
__IO uint32_t INTENR;
__IO uint32_t ERRSR;
__IO uint32_t BTIMR;
__IO uint32_t TTCTLR;
__IO uint32_t TTCNT;
__IO uint32_t TERR_CNT;
uint32_t RESERVED0[85];
CAN_TxMailBox_TypeDef sTxMailBox[3];
CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
uint32_t RESERVED1[12];
__IO uint32_t FCTLR;
__IO uint32_t FMCFGR;
__IO uint32_t FMCFGR_CAN3;
__IO uint32_t FSCFGR;
__IO uint32_t FSCFGR_CAN3;
__IO uint32_t FAFIFOR;
__IO uint32_t FAFIFOR_CAN3;
__IO uint32_t FWR;
__IO uint32_t FWR_CAN3;
uint32_t RESERVED2[7];
CAN_FilterRegister_TypeDef sFilterRegister[42];
} CAN_TypeDef;
/* CRC Calculation Unit */
typedef struct
{
__IO uint32_t DATAR;
__IO uint8_t IDATAR;
uint8_t RESERVED0;
uint16_t RESERVED1;
__IO uint32_t CTLR;
} CRC_TypeDef;
/* Digital to Analog Converter */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t SWTR;
__IO uint32_t R12BDHR1;
__IO uint32_t L12BDHR1;
__IO uint32_t R8BDHR1;
__IO uint32_t R12BDHR2;
__IO uint32_t L12BDHR2;
__IO uint32_t R8BDHR2;
__IO uint32_t RD12BDHR;
__IO uint32_t LD12BDHR;
__IO uint32_t RD8BDHR;
__IO uint32_t DOR1;
__IO uint32_t DOR2;
} DAC_TypeDef;
/* DMA Controller */
typedef struct
{
__IO uint32_t CFGR;
__IO uint32_t CNTR;
__IO uint32_t PADDR;
__IO uint32_t MADDR;
__IO uint32_t M1ADDR;
} DMA_Channel_TypeDef;
typedef struct
{
__IO uint32_t INTFR;
__IO uint32_t INTFCR;
} DMA_TypeDef;
/* DMA MUX Controller */
typedef struct
{
__IO uint32_t CFGR0_3;
__IO uint32_t CFGR4_7;
__IO uint32_t CFGR8_11;
__IO uint32_t CFGR12_15;
} DMAMUX_TypeDef;
/* External Interrupt/Event Controller */
typedef struct
{
__IO uint32_t INTENR;
__IO uint32_t EVENR;
__IO uint32_t RTENR;
__IO uint32_t FTENR;
__IO uint32_t SWIEVR;
__IO uint32_t INTFR;
} EXTI_TypeDef;
/* FLASH Registers */
typedef struct
{
__IO uint32_t ACTLR;
__IO uint32_t KEYR;
__IO uint32_t OBKEYR;
__IO uint32_t STATR;
__IO uint32_t CTLR;
__IO uint32_t ADDR;
__IO uint32_t RESERVED;
__IO uint32_t OBR;
__IO uint32_t WPR;
__IO uint32_t MODEKEYR;
__IO uint32_t BOOT_MODEKEYR;
} FLASH_TypeDef;
/* Option Bytes Registers */
typedef struct
{
__IO uint16_t RDPR;
__IO uint16_t USER;
__IO uint16_t Data0;
__IO uint16_t Data1;
__IO uint16_t WRPR0;
__IO uint16_t WRPR1;
__IO uint16_t WRPR2;
__IO uint16_t WRPR3;
} OB_TypeDef;
/* FMC Bank1 Registers */
typedef struct
{
__IO uint32_t BTCR[8];
} FMC_Bank1_TypeDef;
/* FMC Bank1E Registers */
typedef struct
{
__IO uint32_t BWTR[7];
} FMC_Bank1E_TypeDef;
/* FMC Bank3 Registers */
typedef struct
{
__IO uint32_t PCR;
__IO uint32_t SR;
__IO uint32_t PMEM;
__IO uint32_t PATT;
uint32_t RESERVED0;
__IO uint32_t ECCR;
} FMC_Bank3_TypeDef;
/* FMC Bank5_6 Registers */
typedef struct
{
__IO uint32_t SDCR[2];
__IO uint32_t SDTR[2];
__IO uint32_t SDCMR;
__IO uint32_t SDRTR;
__IO uint32_t SDSR;
uint32_t RESERVED0[9];
__IO uint32_t MISC;
} FMC_Bank5_6_TypeDef;
/* General Purpose I/O */
typedef enum
{
GPIO_CFGLR_IN_ANALOG = 0,
GPIO_CFGLR_IN_FLOAT = 4,
GPIO_CFGLR_IN_PUPD = 8,
GPIO_CFGLR_OUT_PP = 1,
GPIO_CFGLR_OUT_OD = 5,
GPIO_CFGLR_OUT_AF_PP = 9,
GPIO_CFGLR_OUT_AF_OD = 13,
} GPIO_CFGLR_PIN_MODE_Typedef;
typedef union {
uint32_t __FULL;
struct {
GPIO_CFGLR_PIN_MODE_Typedef PIN0 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN1 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN2 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN3 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN4 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN5 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN6 :4;
GPIO_CFGLR_PIN_MODE_Typedef PIN7 :4;
};
} GPIO_CFGLR_t;
typedef union {
uint32_t __FULL;
const struct {
uint32_t IDR0 :1;
uint32_t IDR1 :1;
uint32_t IDR2 :1;
uint32_t IDR3 :1;
uint32_t IDR4 :1;
uint32_t IDR5 :1;
uint32_t IDR6 :1;
uint32_t IDR7 :1;
uint32_t IDR8 :1;
uint32_t IDR9 :1;
uint32_t IDR10 :1;
uint32_t IDR11:1;
uint32_t IDR12 :1;
uint32_t IDR13 :1;
uint32_t IDR14 :1;
uint32_t IDR15 :1;
uint32_t :16;
};
} GPIO_INDR_t;
typedef union {
uint32_t __FULL;
struct {
uint32_t ODR0 :1;
uint32_t ODR1 :1;
uint32_t ODR2 :1;
uint32_t ODR3 :1;
uint32_t ODR4 :1;
uint32_t ODR5 :1;
uint32_t ODR6 :1;
uint32_t ODR7 :1;
uint32_t ODR8 :1;
uint32_t ODR9 :1;
uint32_t ODR10 :1;
uint32_t ODR11 :1;
uint32_t ODR12 :1;
uint32_t ODR13 :1;
uint32_t ODR14 :1;
uint32_t ODR15 :1;
uint32_t :16;
};
} GPIO_OUTDR_t;
typedef union {
uint32_t __FULL;
struct {
uint32_t BS0 :1;
uint32_t BS1 :1;
uint32_t BS2 :1;
uint32_t BS3 :1;
uint32_t BS4 :1;
uint32_t BS5 :1;
uint32_t BS6 :1;
uint32_t BS7 :1;
uint32_t BS8 :1;
uint32_t BS9 :1;
uint32_t BS10 :1;
uint32_t BS11 :1;
uint32_t BS12 :1;
uint32_t BS13 :1;
uint32_t BS14 :1;
uint32_t BS15 :1;
uint32_t BR0 :1;
uint32_t BR1 :1;
uint32_t BR2 :1;
uint32_t BR3 :1;
uint32_t BR4 :1;
uint32_t BR5 :1;
uint32_t BR6 :1;
uint32_t BR7 :1;
uint32_t BR8 :1;
uint32_t BR9 :1;
uint32_t BR10 :1;
uint32_t BR11 :1;
uint32_t BR12 :1;
uint32_t BR13 :1;
uint32_t BR14 :1;
uint32_t BR15 :1;
};
} GPIO_BSHR_t;
typedef union {
uint32_t __FULL;
struct {
uint32_t BR0 :1;
uint32_t BR1 :1;
uint32_t BR2 :1;
uint32_t BR3 :1;
uint32_t BR4 :1;
uint32_t BR5 :1;
uint32_t BR6 :1;
uint32_t BR7 :1;
uint32_t BR8 :1;
uint32_t BR9 :1;
uint32_t BR10 :1;
uint32_t BR11 :1;
uint32_t BR12 :1;
uint32_t BR13 :1;
uint32_t BR14 :1;
uint32_t BR15 :1;
uint32_t :16;
};
} GPIO_BCR_t;
typedef union {
uint32_t __FULL;
struct {
uint32_t LCK0 :1;
uint32_t LCK1 :1;
uint32_t LCK2 :1;
uint32_t LCK3 :1;
uint32_t LCK4 :1;
uint32_t LCK5 :1;
uint32_t LCK6 :1;
uint32_t LCK7 :1;
uint32_t LCK8 :1;
uint32_t LCK9 :1;
uint32_t LCK10 :1;
uint32_t LCK11 :1;
uint32_t LCK12 :1;
uint32_t LCK13 :1;
uint32_t LCK14 :1;
uint32_t LCK15 :1;
uint32_t LCKK :1;
uint32_t :15;
};
} GPIO_LCKR_t;
typedef union {
uint32_t __FULL;
struct {
uint32_t SPEED0 :1;
uint32_t SPEED1 :1;
uint32_t SPEED2 :1;
uint32_t SPEED3 :1;
uint32_t SPEED4 :1;
uint32_t SPEED5 :1;
uint32_t SPEED6 :1;
uint32_t SPEED7 :1;
uint32_t SPEED8 :1;
uint32_t SPEED9 :1;
uint32_t SPEED10 :1;
uint32_t SPEED11 :1;
uint32_t SPEED12 :1;
uint32_t SPEED13 :1;
uint32_t SPEED14 :1;
uint32_t SPEED15 :1;
uint32_t SPEED16 :1;
uint32_t SPEED17 :1;
uint32_t SPEED18 :1;
uint32_t SPEED19 :1;
uint32_t SPEED20 :1;
uint32_t SPEED21 :1;
uint32_t SPEED22 :1;
uint32_t SPEED23 :1;
uint32_t SPEED24 :1;
uint32_t SPEED25 :1;
uint32_t SPEED26 :1;
uint32_t SPEED27 :1;
uint32_t SPEED28 :1;
uint32_t SPEED29 :1;
uint32_t SPEED30 :1;
uint32_t SPEED31 :1;
};
} GPIO_SPEED_t;
typedef struct
{
__IO uint32_t CFGLR;
__IO uint32_t CFGHR;
__I uint32_t INDR;
__IO uint32_t OUTDR;
__IO uint32_t BSHR;
__IO uint32_t BCR;
__IO uint32_t LCKR;
__IO uint32_t SPEED;
} GPIO_TypeDef;
#define DYN_GPIO_READ(gpio, field) ((GPIO_##field##_t) { .__FULL = gpio->field })
#define DYN_GPIO_WRITE(gpio, field, ...) gpio->field = ((const GPIO_##field##_t) __VA_ARGS__).__FULL
#define DYN_GPIO_MOD(gpio, field, reg, val) {GPIO_##field##_t tmp; tmp.__FULL = gpio->field; tmp.reg = val; gpio->field = tmp.__FULL;}
/* Alternate Function I/O */
typedef struct
{
__IO uint32_t PCFR1;
__IO uint32_t GPIOA_AFLR;
__IO uint32_t GPIOA_AFHR;
__IO uint32_t GPIOB_AFLR;
__IO uint32_t GPIOB_AFHR;
__IO uint32_t GPIOC_AFLR;
__IO uint32_t GPIOC_AFHR;
__IO uint32_t GPIOD_AFLR;
__IO uint32_t GPIOD_AFHR;
__IO uint32_t GPIOE_AFLR;
__IO uint32_t GPIOE_AFHR;
__IO uint32_t GPIOF_AFLR;
__IO uint32_t GPIOF_AFHR;
uint32_t RESERVED0[2];
__IO uint32_t EXTICR1;
__IO uint32_t EXTICR2;
} AFIO_TypeDef;
/* Inter Integrated Circuit Interface */
typedef struct
{
__IO uint16_t CTLR1;
uint16_t RESERVED0;
__IO uint16_t CTLR2;
uint16_t RESERVED1;
__IO uint16_t OADDR1;
uint16_t RESERVED2;
__IO uint16_t OADDR2;
uint16_t RESERVED3;
__IO uint16_t DATAR;
uint16_t RESERVED4;
__IO uint16_t STAR1;
uint16_t RESERVED5;
__IO uint16_t STAR2;
uint16_t RESERVED6;
__IO uint16_t CKCFGR;
uint16_t RESERVED7;
__IO uint16_t RTR;
uint16_t RESERVED8;
} I2C_TypeDef;
/* Inter Integrated 3 Circuit Interface */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t CFGR;
uint32_t RESERVED0[2];
__IO uint32_t RDBR;
__IO uint32_t RDWR;
__IO uint32_t TDBR;
__IO uint32_t TDWR;
__IO uint32_t IBIDR;
__IO uint32_t TGTTDR;
uint32_t RESERVED1;
__IO uint32_t RESET;
__IO uint32_t STATR;
__IO uint32_t STATER;
uint32_t RESERVED2[2];
__IO uint32_t RMR;
uint32_t RESERVED3[3];
__IO uint32_t EVR;
__IO uint32_t INTENR;
__IO uint32_t CEVR;
uint32_t RESERVED4;
__IO uint32_t DEVR0;
__IO uint32_t DEVR1;
__IO uint32_t DEVR2;
__IO uint32_t DEVR3;
__IO uint32_t DEVR4;
uint32_t RESERVED5[7];
__IO uint32_t MAXRLR;
__IO uint32_t MAXWLR;
uint32_t RESERVED6[2];
__IO uint32_t TIMINGR0;
__IO uint32_t TIMINGR1;
__IO uint32_t TIMINGR2;
uint32_t RESERVED7[5];
__IO uint32_t BCR;
__IO uint32_t DCR;
__IO uint32_t GETCAPR;
__IO uint32_t CRCAPR;
__IO uint32_t GETMDSR;
__IO uint32_t EPIDR;
} I3C_TypeDef;
/* Independent WatchDog */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t PSCR;
__IO uint32_t RLDR;
__IO uint32_t STATR;
} IWDG_TypeDef;
/* Power Control */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t CSR;
} PWR_TypeDef;
/* Reset and Clock Control */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t CFGR0;
__IO uint32_t PLLCFGR;
__IO uint32_t INTR;
__IO uint32_t HB2PRSTR;
__IO uint32_t HB1PRSTR;
__IO uint32_t HBPCENR;
__IO uint32_t HB2PCENR;
__IO uint32_t HB1PCENR;
__IO uint32_t BDCTLR;
__IO uint32_t RSTSCKR;
__IO uint32_t HBRSTR;
__IO uint32_t CFGR2;
__IO uint32_t PLLCFGR2;
} RCC_TypeDef;
/* Real-Time Clock */
typedef struct
{
__IO uint16_t CTLRH;
uint16_t RESERVED0;
__IO uint16_t CTLRL;
uint16_t RESERVED1;
__IO uint16_t PSCRH;
uint16_t RESERVED2;
__IO uint16_t PSCRL;
uint16_t RESERVED3;
__IO uint16_t DIVH;
uint16_t RESERVED4;
__IO uint16_t DIVL;
uint16_t RESERVED5;
__IO uint16_t CNTH;
uint16_t RESERVED6;
__IO uint16_t CNTL;
uint16_t RESERVED7;
__IO uint16_t ALRMH;
uint16_t RESERVED8;
__IO uint16_t ALRML;
uint16_t RESERVED9;
} RTC_TypeDef;
/* SDIO Registers */
typedef struct
{
__IO uint32_t POWER;
__IO uint32_t CLKCR;
__IO uint32_t ARG;
__IO uint32_t CMD;
__I uint32_t RESPCMD;
__I uint32_t RESP1;
__I uint32_t RESP2;
__I uint32_t RESP3;
__I uint32_t RESP4;
__IO uint32_t DTIMER;
__IO uint32_t DLEN;
__IO uint32_t DCTRL;
__I uint32_t DCOUNT;
__I uint32_t STA;
__IO uint32_t ICR;
__IO uint32_t MASK;
uint32_t RESERVED0[2];
__I uint32_t FIFOCNT;
uint32_t RESERVED1[5];
__IO uint32_t DCTRL2;
uint32_t RESERVED2[7];
__IO uint32_t FIFO;
} SDIO_TypeDef;
/* Serial Peripheral Interface */
typedef struct
{
__IO uint16_t CTLR1;
uint16_t RESERVED0;
__IO uint16_t CTLR2;
uint16_t RESERVED1;
__IO uint16_t STATR;
uint16_t RESERVED2;
__IO uint16_t DATAR;
uint16_t RESERVED3;
__IO uint16_t CRCR;
uint16_t RESERVED4;
__IO uint16_t RCRCR;
uint16_t RESERVED5;
__IO uint16_t TCRCR;
uint16_t RESERVED6;
__IO uint16_t I2SCFGR;
uint16_t RESERVED7;
__IO uint16_t I2SPR;
uint16_t RESERVED8;
__IO uint16_t HSCR;
uint16_t RESERVED9;
} SPI_TypeDef;
/* TIM */
typedef struct
{
__IO uint16_t CTLR1;
uint16_t RESERVED0;
__IO uint16_t CTLR2;
uint16_t RESERVED1;
__IO uint16_t SMCFGR;
uint16_t RESERVED2;
__IO uint16_t DMAINTENR;
uint16_t RESERVED3;
__IO uint16_t INTFR;
uint16_t RESERVED4;
__IO uint16_t SWEVGR;
uint16_t RESERVED5;
__IO uint16_t CHCTLR1;
uint16_t RESERVED6;
__IO uint16_t CHCTLR2;
uint16_t RESERVED7;
__IO uint16_t CCER;
uint16_t RESERVED8;
union
{
__IO uint32_t CNT_32; //TIM9,10,11,12
struct
{
__IO uint16_t CNT;
uint16_t RESERVED9;
};
};
__IO uint16_t PSC;
uint16_t RESERVED10;
union
{
__IO uint32_t ATRLR_32;//TIM9,10,11,12
struct
{
__IO uint16_t ATRLR;
uint16_t RESERVED11;
};
};
__IO uint16_t RPTCR;
uint16_t RESERVED12;
union
{
__IO uint32_t CH1CVR_32;
struct
{
__IO uint16_t CH1CVR;
uint16_t RESERVED13;
};
};
union
{
__IO uint32_t CH2CVR_32;
struct
{
__IO uint16_t CH2CVR;
uint16_t RESERVED14;
};
};
union
{
__IO uint32_t CH3CVR_32;
struct
{
__IO uint16_t CH3CVR;
uint16_t RESERVED15;
};
};
union
{
__IO uint32_t CH4CVR_32;
struct
{
__IO uint16_t CH4CVR;
uint16_t RESERVED16;
};
};
__IO uint16_t BDTR;
uint16_t RESERVED17;
__IO uint16_t DMACFGR;
uint16_t RESERVED18;
__IO uint16_t DMAADR;
uint16_t RESERVED19;
__IO uint16_t AUX;
uint16_t RESERVED20;
} TIM_TypeDef;
/* Universal Synchronous Asynchronous Receiver Transmitter */
typedef struct
{
__IO uint16_t STATR;
uint16_t RESERVED0;
__IO uint16_t DATAR;
uint16_t RESERVED1;
__IO uint16_t BRR;
uint16_t RESERVED2;
__IO uint16_t CTLR1;
uint16_t RESERVED3;
__IO uint16_t CTLR2;
uint16_t RESERVED4;
__IO uint16_t CTLR3;
uint16_t RESERVED5;
__IO uint16_t GPR;
uint16_t RESERVED6;
__IO uint16_t CTLR4;
uint16_t RESERVED7;
} USART_TypeDef;
/* Window WatchDog */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t CFGR;
__IO uint32_t STATR;
} WWDG_TypeDef;
/* OPA Registers */
typedef struct
{
__IO uint32_t CTLR1;
__IO uint32_t CTLR2;
__IO uint32_t CTLR3;
__IO uint32_t CMP_CTLR;
__IO uint32_t CMP_STATR;
} OPA_TypeDef;
/* RNG Registers */
typedef struct
{
__IO uint32_t CR;
__IO uint32_t SR;
__IO uint32_t DR;
} RNG_TypeDef;
/* LPTIM Registers */
typedef struct
{
__IO uint32_t ISR;
__IO uint32_t ICR;
__IO uint32_t IER;
__IO uint32_t CFGR;
__IO uint32_t CR;
__IO uint16_t CMP;
uint16_t Reserved0;
__IO uint16_t ARR;
uint16_t Reserved1;
__IO uint16_t CNT;
uint16_t Reserved2;
} LPTIM_TypeDef;
/* DVP Registers */
typedef struct
{
__IO uint8_t CR0;
__IO uint8_t CR1;
__IO uint8_t IER;
__IO uint8_t Reserved0;
__IO uint16_t ROW_NUM;
__IO uint16_t COL_NUM;
__IO uint32_t DMA_BUF0;
__IO uint32_t DMA_BUF1;
__IO uint8_t IFR;
__IO uint8_t STATUS;
__IO uint16_t Reserved1;
__IO uint16_t ROW_CNT;
__IO uint16_t Reserved2;
__IO uint16_t HOFFCNT;
__IO uint16_t VST;
__IO uint16_t CAPCNT;
__IO uint16_t VLINE;
__IO uint32_t DR;
} DVP_TypeDef;
/* PD Registers */
typedef struct
{
union
{
__IO uint32_t USBPD_CONFIG;
struct
{
__IO uint16_t CONFIG;
__IO uint16_t BMC_CLK_CNT;
};
};
union
{
__IO uint32_t USBPD_CONTROL;
struct
{
union
{
__IO uint16_t R16_CONTROL;
struct
{
__IO uint8_t CONTROL;
__IO uint8_t TX_SEL;
};
};
__IO uint16_t BMC_TX_SZ;
};
};
union
{
__IO uint32_t USBPD_STATUS;
struct
{
union
{
__IO uint16_t R16_STATUS;
struct
{
__IO uint8_t DATA_BUF;
__IO uint8_t STATUS;
};
};
__IO uint16_t BMC_BYTE_CNT;
};
};
union
{
__IO uint32_t USBPD_PORT;
struct
{
__IO uint16_t PORT_CC1;
__IO uint16_t PORT_CC2;
};
};
__IO uint32_t USBPD_DMA;
} USBPD_TypeDef;
/* USBSS Deveice Registers */
typedef struct
{
__IO uint8_t UEP_TX_CFG; // 0x0
__IO uint8_t UEP_TX_CR; // 0x1
__IO uint8_t UEP_TX_SEQ; // 0x2
__IO uint8_t UEP_TX_ST; // 0x3
__IO uint8_t UEP_TX_CHAIN_CR; // 0x4
__IO uint8_t UEP_TX_CHAIN_ST; // 0x5
__IO uint16_t UEP_TX_CHAIN_LEN; // 0x6
__IO uint8_t UEP_TX_CHAIN_EXP_NUMP; // 0x8
__IO uint8_t UEP_TX_CHAIN_NUMP; // 0x9
__IO uint16_t UEP_TX_DMA_OFS; // 0xA
__IO uint32_t UEP_TX_DMA; // 0xC
} USBSS_EP_TX_TypeDef;
typedef struct
{
__IO uint8_t UEP_RX_CFG; // 0x0
__IO uint8_t UEP_RX_CR; // 0x1
__IO uint8_t UEP_RX_SEQ; // 0x2
__IO uint8_t UEP_RX_ST; // 0x3
__IO uint8_t UEP_RX_CHAIN_CR; // 0x4
__IO uint8_t UEP_RX_CHAIN_ST; // 0x5
__IO uint16_t UEP_RX_CHAIN_LEN; // 0x6
__IO uint8_t UEP_RX_CHAIN_MAX_NUMP; // 0x8
__IO uint8_t UEP_RX_CHAIN_NUMP; // 0x9
__IO uint16_t UEP_RX_DMA_OFS; // 0xA
__IO uint32_t UEP_RX_DMA; // 0xC
} USBSS_EP_RX_TypeDef;
typedef struct
{
__IO uint32_t LINK_CFG;
__IO uint32_t LINK_CTRL;
__IO uint32_t LINK_INT_CTRL;
__IO uint32_t LINK_INT_FLAG;
__IO uint32_t LINK_STATUS;
uint8_t Reserved0[3];
__IO uint8_t LINK_ITP_PRE;
uint8_t Reserved1[5];
__IO uint8_t LINK_U2_INACT_TIMER;
uint8_t Reserved2[10];
__IO uint8_t LINK_U1_WKUP_FILTER;
uint8_t Reserved3[1];
__IO uint16_t LINK_U1_WKUP_TMR;
__IO uint8_t LINK_U2_WKUP_FILTER;
uint8_t Reserved4[3];
__IO uint8_t LINK_U3_WKUP_FILTER;
uint8_t Reserved5[1];
__IO uint16_t LINK_U3_WKUP_TMR;
uint8_t Reserved6[12];
__IO uint16_t LINK_ISO_DLY;
uint8_t Reserved7[14];
__IO uint16_t LINK_LPM_CR;
uint8_t Reserved8[2];
__IO uint32_t LINK_LMP_PORT_CAP;
__IO uint32_t LINK_LMP_RX_DATA0;
__IO uint32_t LINK_LMP_RX_DATA1;
__IO uint32_t LINK_LMP_RX_DATA2;
__IO uint32_t LINK_LMP_TX_DATA0;
__IO uint32_t LINK_LMP_TX_DATA1;
__IO uint32_t LINK_LMP_TX_DATA2;
__IO uint32_t USB_CONTROL;
__IO uint32_t USB_STATUS;
__IO uint32_t USB_ITP;
__IO uint32_t USB_ITP_ADJ;
__IO uint16_t UEP_TX_EN;
__IO uint16_t UEP_RX_EN;
__IO uint32_t UEP0_TX_CTRL;
__IO uint32_t UEP0_RX_CTRL;
__IO uint32_t UEP0_TX_DMA;
__IO uint32_t UEP0_RX_DMA;
__IO uint32_t UEP0_TX_DMA_OFS;
__IO uint32_t UEP0_RX_DMA_OFS;
uint8_t Reserved9[36];
__IO USBSS_EP_TX_TypeDef EP1_TX;
__IO USBSS_EP_RX_TypeDef EP1_RX;
__IO USBSS_EP_TX_TypeDef EP2_TX;
__IO USBSS_EP_RX_TypeDef EP2_RX;
__IO USBSS_EP_TX_TypeDef EP3_TX;
__IO USBSS_EP_RX_TypeDef EP3_RX;
__IO USBSS_EP_TX_TypeDef EP4_TX;
__IO USBSS_EP_RX_TypeDef EP4_RX;
__IO USBSS_EP_TX_TypeDef EP5_TX;
__IO USBSS_EP_RX_TypeDef EP5_RX;
__IO USBSS_EP_TX_TypeDef EP6_TX;
__IO USBSS_EP_RX_TypeDef EP6_RX;
__IO USBSS_EP_TX_TypeDef EP7_TX;
__IO USBSS_EP_RX_TypeDef EP7_RX;
} USBSSD_TypeDef;
typedef struct
{
__IO uint32_t LINK_CFG;
__IO uint32_t LINK_CTRL;
__IO uint32_t LINK_INT_CTRL;
__IO uint32_t LINK_INT_FLAG;
__IO uint32_t LINK_STATUS;
uint8_t Reserved0[3];
__IO uint8_t LINK_ITP_PRE;
uint8_t Reserved1[5];
__IO uint8_t LINK_U2_INACT_TIMER;
uint8_t Reserved2[10];
__IO uint8_t LINK_U1_WKUP_FILTER;
uint8_t Reserved3[3];
__IO uint8_t LINK_U2_WKUP_FILTER;
uint8_t Reserved4[3];
__IO uint8_t LINK_U3_WKUP_FILTER;
uint8_t Reserved5[15];
__IO uint16_t LINK_ISO_DLY;
uint8_t Reserved6[14];
__IO uint16_t LINK_LPM_CR;
uint8_t Reserved7[2];
__IO uint32_t LINK_LMP_PORT_CAP;
__IO uint32_t LINK_LMP_RX_DATA0;
__IO uint32_t LINK_LMP_RX_DATA1;
__IO uint32_t LINK_LMP_RX_DATA2;
__IO uint32_t LINK_LMP_TX_DATA0;
__IO uint32_t LINK_LMP_TX_DATA1;
__IO uint32_t LINK_LMP_TX_DATA2;
__IO uint32_t USB_CONTROL;
__IO uint32_t USB_STATUS;
__IO uint32_t USB_ITP;
__IO uint32_t USB_ITP_ADJ;
__IO uint16_t UEP_TX_EN;
__IO uint16_t UEP_RX_EN;
__IO uint32_t UH_TX_CTRL;
__IO uint32_t UH_RX_CTRL;
__IO uint32_t UH_TX_DMA;
__IO uint32_t UH_RX_DMA;
__IO uint32_t UH_TX_DMA_OFS;
__IO uint32_t UH_RX_DMA_OFS;
__IO uint16_t HOST_TX_NUMP;
__IO uint16_t HOST_RX_NUMP;
__IO uint32_t HOST_STATUS;
__IO uint16_t HOST_TX_FC_STATUS;
__IO uint16_t HOST_RX_FC_STATUS;
__IO uint32_t TP_RX_DATA0;
__IO uint32_t TP_RX_DATA1;
__IO uint32_t TP_RX_DATA2;
} USBSSH_TypeDef;
/* USBHS Device Registers */
typedef struct
{
__IO uint8_t CONTROL;
__IO uint8_t BASE_MODE;
__IO uint8_t INT_EN;
__IO uint8_t DEV_AD;
__IO uint8_t WAKE_CTRL;
__IO uint8_t TEST_MODE;
__IO uint16_t LPM_DATA;
__IO uint8_t INT_FG;
__IO uint8_t INT_ST;
__IO uint8_t MIS_ST;
uint8_t RESERVED0;
__IO uint16_t FRAME_NO;
__IO uint16_t BUS;
__IO uint16_t UEP_TX_EN;
__IO uint16_t UEP_RX_EN;
__IO uint16_t UEP_TX_TOG_AUTO;
__IO uint16_t UEP_RX_TOG_AUTO;
__IO uint8_t UEP_TX_BURST;
__IO uint8_t UEP_TX_BURST_MODE;
__IO uint8_t UEP_RX_BURST;
__IO uint8_t UEP_RX_RES_MODE;
__IO uint32_t UEP_AF_MODE;
__IO uint32_t UEP0_DMA;
__IO uint32_t UEP1_RX_DMA;
__IO uint32_t UEP2_RX_DMA;
__IO uint32_t UEP3_RX_DMA;
__IO uint32_t UEP4_RX_DMA;
__IO uint32_t UEP5_RX_DMA;
__IO uint32_t UEP6_RX_DMA;
__IO uint32_t UEP7_RX_DMA;
__IO uint32_t UEP1_TX_DMA;
__IO uint32_t UEP2_TX_DMA;
__IO uint32_t UEP3_TX_DMA;
__IO uint32_t UEP4_TX_DMA;
__IO uint32_t UEP5_TX_DMA;
__IO uint32_t UEP6_TX_DMA;
__IO uint32_t UEP7_TX_DMA;
__IO uint32_t UEP0_MAX_LEN;
__IO uint32_t UEP1_MAX_LEN;
__IO uint32_t UEP2_MAX_LEN;
__IO uint32_t UEP3_MAX_LEN;
__IO uint32_t UEP4_MAX_LEN;
__IO uint32_t UEP5_MAX_LEN;
__IO uint32_t UEP6_MAX_LEN;
__IO uint32_t UEP7_MAX_LEN;
__IO uint16_t UEP0_RX_LEN;
uint16_t RESERVED1;
__IO uint16_t UEP1_RX_LEN;
__IO uint16_t UEP1_RX_SIZE;
__IO uint16_t UEP2_RX_LEN;
__IO uint16_t UEP2_RX_SIZE;
__IO uint16_t UEP3_RX_LEN;
__IO uint16_t UEP3_RX_SIZE;
__IO uint16_t UEP4_RX_LEN;
__IO uint16_t UEP4_RX_SIZE;
__IO uint16_t UEP5_RX_LEN;
__IO uint16_t UEP5_RX_SIZE;
__IO uint16_t UEP6_RX_LEN;
__IO uint16_t UEP6_RX_SIZE;
__IO uint16_t UEP7_RX_LEN;
__IO uint16_t UEP7_RX_SIZE;
__IO uint16_t UEP0_TX_LEN;
__IO uint8_t UEP0_TX_CTRL;
__IO uint8_t UEP0_RX_CTRL;
__IO uint16_t UEP1_TX_LEN;
__IO uint8_t UEP1_TX_CTRL;
__IO uint8_t UEP1_RX_CTRL;
__IO uint16_t UEP2_TX_LEN;
__IO uint8_t UEP2_TX_CTRL;
__IO uint8_t UEP2_RX_CTRL;
__IO uint16_t UEP3_TX_LEN;
__IO uint8_t UEP3_TX_CTRL;
__IO uint8_t UEP3_RX_CTRL;
__IO uint16_t UEP4_TX_LEN;
__IO uint8_t UEP4_TX_CTRL;
__IO uint8_t UEP4_RX_CTRL;
__IO uint16_t UEP5_TX_LEN;
__IO uint8_t UEP5_TX_CTRL;
__IO uint8_t UEP5_RX_CTRL;
__IO uint16_t UEP6_TX_LEN;
__IO uint8_t UEP6_TX_CTRL;
__IO uint8_t UEP6_RX_CTRL;
__IO uint16_t UEP7_TX_LEN;
__IO uint8_t UEP7_TX_CTRL;
__IO uint8_t UEP7_RX_CTRL;
__IO uint16_t UEP_TX_ISO;
__IO uint16_t UEP_RX_ISO;
__IO uint32_t UEP1_RX_FIFO;
__IO uint32_t UEP2_RX_FIFO;
__IO uint32_t UEP3_RX_FIFO;
__IO uint32_t UEP4_RX_FIFO;
__IO uint32_t UEP5_RX_FIFO;
__IO uint32_t UEP6_RX_FIFO;
__IO uint32_t UEP7_RX_FIFO;
__IO uint32_t UEP1_TX_FIFO;
__IO uint32_t UEP2_TX_FIFO;
__IO uint32_t UEP3_TX_FIFO;
__IO uint32_t UEP4_TX_FIFO;
__IO uint32_t UEP5_TX_FIFO;
__IO uint32_t UEP6_TX_FIFO;
__IO uint32_t UEP7_TX_FIFO;
} USBHSD_TypeDef;
/* USBHS Host Registers */
typedef struct __attribute__((packed))
{
__IO uint8_t CFG;
uint8_t RESERVED0;
__IO uint8_t INT_EN;
__IO uint8_t DEV_ADDR;
__IO uint32_t CONTROL;
__IO uint8_t INT_FLAG;
__IO uint8_t INT_ST;
__IO uint8_t MIS_ST;
uint8_t RESERVED1;
__IO uint32_t LPM;
__IO uint32_t SPLIT;
__IO uint32_t FRAME;
__IO uint32_t TX_LEN;
__IO uint32_t RX_LEN;
__IO uint32_t RX_MAX_LEN;
__IO uint32_t RX_DMA;
__IO uint32_t TX_DMA;
__IO uint32_t PORT_CTRL;
__IO uint8_t PORT_CFG;
uint8_t RESERVED2;
__IO uint8_t PORT_INT_EN;
__IO uint8_t PORT_TEST_CT;
__IO uint16_t PORT_STATUS;
__IO uint8_t PORT_STATUS_CHG;
uint8_t RESERVED3[5];
__IO uint32_t ROOT_BC_CTRL;
} USBHSH_TypeDef;
/* USBFS Device Registers */
typedef struct
{
__IO uint8_t BASE_CTRL;
__IO uint8_t UDEV_CTRL;
__IO uint8_t INT_EN;
__IO uint8_t DEV_ADDR;
uint8_t RESERVED0;
__IO uint8_t MIS_ST;
__IO uint8_t INT_FG;
__IO uint8_t INT_ST;
__IO uint16_t RX_LEN;
uint16_t RESERVED1;
__IO uint8_t UEP4_1_MOD;
__IO uint8_t UEP2_3_MOD;
__IO uint8_t UEP5_6_MOD;
__IO uint8_t UEP7_MOD;
__IO uint32_t UEP0_DMA;
__IO uint32_t UEP1_DMA;
__IO uint32_t UEP2_DMA;
__IO uint32_t UEP3_DMA;
__IO uint32_t UEP4_DMA;
__IO uint32_t UEP5_DMA;
__IO uint32_t UEP6_DMA;
__IO uint32_t UEP7_DMA;
__IO uint8_t UEP0_TX_LEN;
uint8_t RESERVED2;
__IO uint8_t UEP0_TX_CTRL;
__IO uint8_t UEP0_RX_CTRL;
__IO uint8_t UEP1_TX_LEN;
uint8_t RESERVED3;
__IO uint8_t UEP1_TX_CTRL;
__IO uint8_t UEP1_RX_CTRL;
__IO uint8_t UEP2_TX_LEN;
uint8_t RESERVED4;
__IO uint8_t UEP2_TX_CTRL;
__IO uint8_t UEP2_RX_CTRL;
__IO uint16_t UEP3_TX_LEN;
__IO uint8_t UEP3_TX_CTRL;
__IO uint8_t UEP3_RX_CTRL;
__IO uint8_t UEP4_TX_LEN;
uint8_t RESERVED5;
__IO uint8_t UEP4_TX_CTRL;
__IO uint8_t UEP4_RX_CTRL;
__IO uint8_t UEP5_TX_LEN;
uint8_t RESERVED6;
__IO uint8_t UEP5_TX_CTRL;
__IO uint8_t UEP5_RX_CTRL;
__IO uint8_t UEP6_TX_LEN;
uint8_t RESERVED7;
__IO uint8_t UEP6_TX_CTRL;
__IO uint8_t UEP6_RX_CTRL;
__IO uint8_t UEP7_TX_LEN;
uint8_t RESERVED8;
__IO uint8_t UEP7_TX_CTRL;
__IO uint8_t UEP7_RX_CTRL;
uint32_t RESERVED9;
__IO uint32_t OTG_CR;
__IO uint32_t OTG_SR;
} USBFSD_TypeDef;
/* USBFS Host Registers */
typedef struct __attribute__((packed))
{
__IO uint8_t BASE_CTRL;
__IO uint8_t HOST_CTRL;
__IO uint8_t INT_EN;
__IO uint8_t DEV_ADDR;
uint8_t RESERVED0;
__IO uint8_t MIS_ST;
__IO uint8_t INT_FG;
__IO uint8_t INT_ST;
__IO uint16_t RX_LEN;
uint16_t RESERVED1;
uint8_t RESERVED2;
__IO uint8_t HOST_EP_MOD;
uint16_t RESERVED3;
uint32_t RESERVED4;
uint32_t RESERVED5;
__IO uint32_t HOST_RX_DMA;
__IO uint32_t HOST_TX_DMA;
uint32_t RESERVED6;
uint32_t RESERVED7;
uint32_t RESERVED8;
uint32_t RESERVED9;
uint32_t RESERVED10;
uint16_t RESERVED11;
__IO uint16_t HOST_SETUP;
__IO uint8_t HOST_EP_PID;
uint8_t RESERVED12;
uint8_t RESERVED13;
__IO uint8_t HOST_RX_CTRL;
__IO uint16_t HOST_TX_LEN;
__IO uint8_t HOST_TX_CTRL;
uint8_t RESERVED14;
uint32_t RESERVED15;
uint32_t RESERVED16;
uint32_t RESERVED17;
uint32_t RESERVED18;
uint32_t RESERVED19;
__IO uint32_t OTG_CR;
__IO uint32_t OTG_SR;
} USBFSH_TypeDef;
/* Ethernet MAC Registers */
typedef struct
{
__IO uint32_t MACCR;
__IO uint32_t MACFFR;
__IO uint32_t MACHTHR;
__IO uint32_t MACHTLR;
__IO uint32_t MACMIIAR;
__IO uint32_t MACMIIDR;
__IO uint32_t MACFCR;
__IO uint32_t MACVLANTR;
uint32_t RESERVED0[2];
__IO uint32_t MACRWUFFR;
__IO uint32_t MACPMTCSR;
uint32_t RESERVED1[2];
__IO uint32_t MACSR;
__IO uint32_t MACIMR;
__IO uint32_t MACA0HR;
__IO uint32_t MACA0LR;
__IO uint32_t MACA1HR;
__IO uint32_t MACA1LR;
__IO uint32_t MACA2HR;
__IO uint32_t MACA2LR;
__IO uint32_t MACA3HR;
__IO uint32_t MACA3LR;
uint32_t RESERVED2[8];
__IO uint32_t MACPHYCR;
uint32_t RESERVED3[5];
__IO uint32_t MACCFG0;
uint32_t RESERVED4[25];
__IO uint32_t MMCCR;
__IO uint32_t MMCRIR;
__IO uint32_t MMCTIR;
__IO uint32_t MMCRIMR;
__IO uint32_t MMCTIMR;
uint32_t RESERVED5[14];
__IO uint32_t MMCTGFSCCR;
__IO uint32_t MMCTGFMSCCR;
uint32_t RESERVED6[5];
__IO uint32_t MMCTGFCR;
uint32_t RESERVED7[10];
__IO uint32_t MMCRFCECR;
__IO uint32_t MMCRFAECR;
__IO uint32_t MMCRAFCR;
uint32_t RESERVED8[9];
__IO uint32_t MMCRGUFCR;
uint32_t RESERVED9[334];
__IO uint32_t PTPTSCR;
__IO uint32_t PTPSSIR;
__IO uint32_t PTPTSHR;
__IO uint32_t PTPTSLR;
__IO uint32_t PTPTSHUR;
__IO uint32_t PTPTSLUR;
__IO uint32_t PTPTSAR;
__IO uint32_t PTPTTHR;
__IO uint32_t PTPTTLR;
uint32_t RESERVED10[567];
__IO uint32_t DMABMR;
__IO uint32_t DMATPDR;
__IO uint32_t DMARPDR;
__IO uint32_t DMARDLAR;
__IO uint32_t DMATDLAR;
__IO uint32_t DMASR;
__IO uint32_t DMAOMR;
__IO uint32_t DMAIER;
__IO uint32_t DMAMFBOCR;
uint32_t RESERVED11[9];
__IO uint32_t DMACHTDR;
__IO uint32_t DMACHRDR;
__IO uint32_t DMACHTBAR;
__IO uint32_t DMACHRBAR;
} ETH_TypeDef;
/* SDMMC Registers */
typedef struct
{
__IO uint32_t ARGUMENT;
__IO uint16_t CMD_SET;
uint16_t RESERVED0;
__IO uint32_t RESPONSE0;
__IO uint32_t RESPONSE1;
__IO uint32_t RESPONSE2;
union
{
__IO uint32_t RESPONSE3;
__IO uint32_t WRITE_CONT;
};
__IO uint16_t CONTROL;
uint16_t RESERVED1;
__IO uint8_t TIMEOUT;
uint8_t RESERVED3[3];
__IO uint32_t STATUS;
__IO uint16_t INT_FG;
uint16_t RESERVED4;
__IO uint16_t INT_EN;
uint16_t RESERVED5;
__IO uint32_t DMA_BEG1;
__IO uint32_t BLOCK_CFG;
__IO uint32_t TRAN_MODE;
__IO uint16_t CLK_DIV;
uint16_t RESERVED6;
__IO uint32_t DMA_BEG2;
__IO uint32_t TUNE_DATO;
__IO uint32_t TUNE_DATI;
__IO uint32_t TUNE_CLK_CMD;
} SDMMC_TypeDef;
/* SAI Registers */
typedef struct
{
__IO uint32_t CFGR1;
__IO uint32_t CFGR2;
__IO uint32_t FRCR;
__IO uint32_t SLOTR;
__IO uint32_t INTENR;
__IO uint32_t SR;
uint32_t RESERVED0;
__IO uint32_t DATAR;
} SAI_Block_TypeDef;
/* QSPI Registers */
typedef struct
{
__IO uint32_t CR;
__IO uint32_t DCR;
__IO uint32_t SR;
__IO uint32_t FCR;
__IO uint32_t DLR;
__IO uint32_t CCR;
__IO uint32_t AR;
__IO uint32_t ABR;
__IO uint32_t DR;
__IO uint32_t PSMKR;
__IO uint32_t PSMAR;
__IO uint32_t PIR;
__IO uint32_t LPTR;
} QSPI_TypeDef;
/* SWPMI Registers */
typedef struct
{
__IO uint32_t CR;
__IO uint32_t BRR;
uint32_t RESERVED0;
__IO uint32_t ISR;
__IO uint32_t ICR;
__IO uint32_t IER;
__IO uint32_t RFL;
__IO uint32_t TDR;
__IO uint32_t RDR;
__IO uint32_t OR;
} SWPMI_TypeDef;
/* ECDC Registers */
typedef struct
{
__IO uint32_t CTRL;
__IO uint32_t INT_FG;
__IO uint32_t KEY_255T224;
__IO uint32_t KEY_223T192;
__IO uint32_t KEY_191T160;
__IO uint32_t KEY_159T128;
__IO uint32_t KEY_127T96;
__IO uint32_t KEY_95T64;
__IO uint32_t KEY_63T32;
__IO uint32_t KEY_31T0;
__IO uint32_t IV_127T96;
__IO uint32_t IV_95T64;
__IO uint32_t IV_63T32;
__IO uint32_t IV_31T0;
uint32_t RESERVED3[2];
__IO uint32_t SGSD_127T96;
__IO uint32_t SGSD_95T64;
__IO uint32_t SGSD_63T32;
__IO uint32_t SGSD_31T0;
__IO uint32_t SGRT_127T96;
__IO uint32_t SGRT_95T64;
__IO uint32_t SGRT_63T32;
__IO uint32_t SGRT_31T0;
__IO uint32_t SRC_ADDR;
__IO uint32_t DST_ADDR;
__IO uint32_t SRAM_LEN;
} ECDC_TypeDef;
/* DFSDM filter Registers */
typedef struct
{
__IO uint32_t CR1;
uint32_t RESERVED0;
__IO uint32_t CR2;
uint32_t RESERVED1;
__IO uint32_t ISR;
uint32_t RESERVED2;
__IO uint32_t ICR;
uint32_t RESERVED3;
__IO uint32_t JCHGR;
uint32_t RESERVED4;
__IO uint32_t FCR3;
uint32_t RESERVED5;
__IO uint32_t JDATAR;
uint32_t RESERVED6;
__IO uint32_t RDATAR;
uint32_t RESERVED7;
__IO uint32_t AWHTR;
uint32_t RESERVED8;
__IO uint32_t AWLTR;
uint32_t RESERVED9;
__IO uint32_t AWSR;
uint32_t RESERVED10;
__IO uint32_t AWCFR;
uint32_t RESERVED11;
__IO uint32_t EXMAX;
uint32_t RESERVED12;
__IO uint32_t EXMIN;
uint32_t RESERVED13;
__IO uint32_t NVTIMR;
uint32_t RESERVED14;
} DFSDM_FLT_TypeDef;
/* DFSDM channel Registers */
typedef struct
{
__IO uint32_t CFGR1;
uint32_t RESERVED0;
__IO uint32_t CFGR2;
uint32_t RESERVED1;
__IO uint32_t AWSCDR;
uint32_t RESERVED2;
__IO uint32_t WDATR;
uint32_t RESERVED3;
union{
__IO uint32_t DATINR;
struct{
__IO int16_t DATINR0;
__IO int16_t DATINR1;
};
};
} DFSDM_Channel_TypeDef;
/* LTDC Registers */
typedef struct
{
__IO uint32_t SSCR;
__IO uint32_t BPCR;
__IO uint32_t AWCR;
__IO uint32_t TWCR;
__IO uint32_t GCR;
__IO uint32_t SRCR;
__IO uint32_t BCCR;
__IO uint32_t IER;
__IO uint32_t ISR;
__IO uint32_t ICR;
__IO uint32_t LIPCR;
__IO uint32_t CPSR;
__IO uint32_t CDSR;
} LTDC_TypeDef;
/* LTDC Layer Registers */
typedef struct
{
__IO uint32_t CR;
__IO uint32_t WHPCR;
__IO uint32_t WVPCR;
__IO uint32_t CKCR;
__IO uint32_t PFCR;
__IO uint32_t CACR;
__IO uint32_t DCCR;
__IO uint32_t BFCR;
__IO uint32_t CFBAR;
__IO uint32_t CFBLR;
__IO uint32_t CFBLNR;
__IO uint32_t CLUTWR;
} LTDC_Layer_TypeDef;
/* GPHA Registers */
typedef struct
{
__IO uint32_t CTLR;
__IO uint32_t ISR;
__IO uint32_t IFCR;
__IO uint32_t FGMAR;
__IO uint32_t FGOR;
__IO uint32_t BGMAR;
__IO uint32_t BGOR;
__IO uint32_t FGPFCCR;
__IO uint32_t FGCOLR;
__IO uint32_t BGPFCCR;
__IO uint32_t BGCOLR;
__IO uint32_t FGCMAR;
__IO uint32_t BGCMAR;
__IO uint32_t OPFCCR;
__IO uint32_t OCOLR;
__IO uint32_t OMAR;
__IO uint32_t OOR;
__IO uint32_t NLR;
__IO uint32_t LWR;
__IO uint32_t AMTCR;
__IO uint32_t FGCWRS;
__IO uint32_t FGCDAT;
__IO uint32_t BGCWRS;
__IO uint32_t BGCDAT;
} GPHA_TypeDef;
/* HSADC Registers */
typedef struct
{
__IO uint32_t CFGR;
__IO uint32_t CTLR1;
__IO uint32_t CTLR2;
__IO uint32_t STATR;
__IO uint32_t DATAR;
__IO uint32_t ADDR0;
__IO uint32_t ADDR1;
} HSADC_TypeDef;
/* SerDes Registers */
typedef struct
{
__IO uint32_t CTRL;
__IO uint32_t INT_EN;
__IO uint32_t STATUS;
__IO uint32_t RTX_CTRL;
__IO uint32_t RX_LEN0;
__IO uint32_t DATA0;
__IO uint32_t DMA_0;
__IO uint32_t RX_LEN1;
__IO uint32_t DATA1;
__IO uint32_t DMA_1;
} SDS_TypeDef;
/* memory mapped structure for Program Fast Interrupt Controller (PFIC) */
typedef struct{
__I uint32_t ISR[8];
__I uint32_t IPR[8];
__IO uint32_t ITHRESDR;
uint32_t RESERVED;
__IO uint32_t CFGR;
__I uint32_t GISR;
__IO uint8_t VTFIDR[4];
uint8_t RESERVED0[12];
__IO uint32_t VTFADDR[4];
uint8_t RESERVED1[0x90];
__O uint32_t IENR[8];
uint8_t RESERVED2[0x60];
__O uint32_t IRER[8];
uint8_t RESERVED3[0x60];
__O uint32_t IPSR[8];
uint8_t RESERVED4[0x60];
__O uint32_t IPRR[8];
uint8_t RESERVED5[0x60];
__IO uint32_t IACTR[8];
uint8_t RESERVED6[0xE0];
__IO uint8_t IPRIOR[256];
uint8_t RESERVED7[0x100];
__IO uint8_t IALLOCR[256];
__I uint32_t IAUTR[8];
__IO uint32_t WAKEIP[2];
uint8_t RESERVED8[0x58];
__I uint32_t CSTAR[2];
uint8_t RESERVED9[0x4F8];
__IO uint32_t EENR;
__IO uint32_t EPR;
__IO uint32_t EWUPR;
uint8_t RESERVED10[0x84];
__IO uint32_t SCTLR;
}PFIC_Type;
#endif // !__ASSEMBLER__
/* Peripheral memory map */
#ifdef __ASSEMBLER__
#define FLASH_BASE (0x08000000) /* FLASH base address in the alias region */
#define ITCM_BASE (0x200A0000) /* ITCM base address in the alias region */
#define DTCM_BASE (0x200C0000) /* DTCM base address in the alias region */
#define SRAM_BASE (0x20100000) /* SRAM base address in the alias region */
#define PERIPH_BASE (0x40000000) /* Peripheral base address in the alias region */
#define CORE_PERIPH_BASE (0xE0000000) /* System peripherals base address in the alias region */
#else
#define FLASH_BASE ((uint32_t)0x08000000) /* FLASH base address in the alias region */
#define ITCM_BASE ((uint32_t)0x200A0000) /* ITCM base address in the alias region */
#define DTCM_BASE ((uint32_t)0x200C0000) /* DTCM base address in the alias region */
#define SRAM_BASE ((uint32_t)0x20100000) /* SRAM base address in the alias region */
#define PERIPH_BASE ((uint32_t)0x40000000) /* Peripheral base address in the alias region */
#define CORE_PERIPH_BASE ((uint32_t)0xE0000000) /* System peripherals base address in the alias region */
#endif
#define HBPERIPH_BASE (PERIPH_BASE)
#define TIM2_BASE (HBPERIPH_BASE + 0x00000)
#define TIM3_BASE (HBPERIPH_BASE + 0x00400)
#define TIM4_BASE (HBPERIPH_BASE + 0x00800)
#define TIM5_BASE (HBPERIPH_BASE + 0x00C00)
#define TIM6_BASE (HBPERIPH_BASE + 0x01000)
#define TIM7_BASE (HBPERIPH_BASE + 0x01400)
#define USART6_BASE (HBPERIPH_BASE + 0x01800)
#define USART7_BASE (HBPERIPH_BASE + 0x01C00)
#define USART8_BASE (HBPERIPH_BASE + 0x02000)
#define LPTIM1_BASE (HBPERIPH_BASE + 0x02400)
#define RTC_BASE (HBPERIPH_BASE + 0x02800)
#define WWDG_BASE (HBPERIPH_BASE + 0x02C00)
#define IWDG_BASE (HBPERIPH_BASE + 0x03000)
#define LPTIM2_BASE (HBPERIPH_BASE + 0x03400)
#define SPI2_BASE (HBPERIPH_BASE + 0x03800)
#define SPI3_BASE (HBPERIPH_BASE + 0x03C00)
#define SPI4_BASE (HBPERIPH_BASE + 0x04000)
#define USART2_BASE (HBPERIPH_BASE + 0x04400)
#define USART3_BASE (HBPERIPH_BASE + 0x04800)
#define USART4_BASE (HBPERIPH_BASE + 0x04C00)
#define USART5_BASE (HBPERIPH_BASE + 0x05000)
#define I2C1_BASE (HBPERIPH_BASE + 0x05400)
#define I2C2_BASE (HBPERIPH_BASE + 0x05800)
#define I2C3_BASE (HBPERIPH_BASE + 0x05C00)
#define CAN1_BASE (HBPERIPH_BASE + 0x06400)
#define CAN2_BASE (HBPERIPH_BASE + 0x06800)
#define PWR_BASE (HBPERIPH_BASE + 0x07000)
#define DAC_BASE (HBPERIPH_BASE + 0x07400)
#define CAN3_BASE (HBPERIPH_BASE + 0x07800)
#define SWPMI_BASE (HBPERIPH_BASE + 0x08400)
#define AFIO_BASE (HBPERIPH_BASE + 0x10000)
#define EXTI_BASE (HBPERIPH_BASE + 0x10400)
#define GPIOA_BASE (HBPERIPH_BASE + 0x10800)
#define GPIOB_BASE (HBPERIPH_BASE + 0x10C00)
#define GPIOC_BASE (HBPERIPH_BASE + 0x11000)
#define GPIOD_BASE (HBPERIPH_BASE + 0x11400)
#define GPIOE_BASE (HBPERIPH_BASE + 0x11800)
#define GPIOF_BASE (HBPERIPH_BASE + 0x11C00)
#define ADC1_BASE (HBPERIPH_BASE + 0x12400)
#define ADC2_BASE (HBPERIPH_BASE + 0x12800)
#define TIM1_BASE (HBPERIPH_BASE + 0x12C00)
#define SPI1_BASE (HBPERIPH_BASE + 0x13000)
#define TIM8_BASE (HBPERIPH_BASE + 0x13400)
#define USART1_BASE (HBPERIPH_BASE + 0x13800)
#define TIM12_BASE (HBPERIPH_BASE + 0x13C00)
#define I2C4_BASE (HBPERIPH_BASE + 0x14000)
#define I3C_BASE (HBPERIPH_BASE + 0x14400)
#define LTDC_BASE (HBPERIPH_BASE + 0x14800)
#define LTDC_L1_BASE (HBPERIPH_BASE + 0x14834)
#define LTDC_L2_BASE (HBPERIPH_BASE + 0x14864)
#define TIM9_BASE (HBPERIPH_BASE + 0x14C00)
#define TIM10_BASE (HBPERIPH_BASE + 0x15000)
#define TIM11_BASE (HBPERIPH_BASE + 0x15400)
#define SAI_BASE (HBPERIPH_BASE + 0x15800)
#define SAI_Block_A_BASE (SAI_BASE + 0x04)
#define SAI_Block_B_BASE (SAI_BASE + 0x24)
#define GPHA_BASE (HBPERIPH_BASE + 0x16800)
#define ECDC_BASE (HBPERIPH_BASE + 0x16C00)
#define DFSDM_BASE (HBPERIPH_BASE + 0x17000)
#define DFSDM_Channel0_BASE (HBPERIPH_BASE + 0x17000)
#define DFSDM_Channel1_BASE (HBPERIPH_BASE + 0x17004)
#define DFSDM_FLT0_BASE (HBPERIPH_BASE + 0x17028)
#define DFSDM_FLT1_BASE (HBPERIPH_BASE + 0x1702C)
#define HSADC_BASE (HBPERIPH_BASE + 0x17400)
#define OPA_BASE (HBPERIPH_BASE + 0x17800)
#define SDIO_BASE (HBPERIPH_BASE + 0x18000)
#define DMA1_BASE (HBPERIPH_BASE + 0x20000)
#define DMA1_Channel1_BASE (HBPERIPH_BASE + 0x20008)
#define DMA1_Channel2_BASE (HBPERIPH_BASE + 0x2001C)
#define DMA1_Channel3_BASE (HBPERIPH_BASE + 0x20030)
#define DMA1_Channel4_BASE (HBPERIPH_BASE + 0x20044)
#define DMA1_Channel5_BASE (HBPERIPH_BASE + 0x20058)
#define DMA1_Channel6_BASE (HBPERIPH_BASE + 0x2006C)
#define DMA1_Channel7_BASE (HBPERIPH_BASE + 0x20080)
#define DMA1_Channel8_BASE (HBPERIPH_BASE + 0x20094)
#define DMA2_BASE (HBPERIPH_BASE + 0x20400)
#define DMA2_Channel1_BASE (HBPERIPH_BASE + 0x20408)
#define DMA2_Channel2_BASE (HBPERIPH_BASE + 0x2041C)
#define DMA2_Channel3_BASE (HBPERIPH_BASE + 0x20430)
#define DMA2_Channel4_BASE (HBPERIPH_BASE + 0x20444)
#define DMA2_Channel5_BASE (HBPERIPH_BASE + 0x20458)
#define DMA2_Channel6_BASE (HBPERIPH_BASE + 0x2046C)
#define DMA2_Channel7_BASE (HBPERIPH_BASE + 0x20480)
#define DMA2_Channel8_BASE (HBPERIPH_BASE + 0x20494)
#define DMAMUX_BASE (HBPERIPH_BASE + 0x20800)
#define RCC_BASE (HBPERIPH_BASE + 0x21000)
#define FLASH_R_BASE (HBPERIPH_BASE + 0x22000)
#define CRC_BASE (HBPERIPH_BASE + 0x23000)
#define USBFS_BASE (HBPERIPH_BASE + 0x23400)
#define RNG_BASE (HBPERIPH_BASE + 0x23C00)
#define SDMMC_BASE (HBPERIPH_BASE + 0x24000)
#define USBPD_BASE (HBPERIPH_BASE + 0x24400)
#define QSPI1_BASE (HBPERIPH_BASE + 0x24C00)
#define QSPI2_BASE (HBPERIPH_BASE + 0x25000)
#define FMC_R_BASE (HBPERIPH_BASE + 0x25400)
#define FMC_Bank1_R_BASE (FMC_R_BASE + 0x0000)
#define FMC_Bank1E_R_BASE (FMC_R_BASE + 0x0104)
#define FMC_Bank3_R_BASE (FMC_R_BASE + 0x0080)
#define FMC_Bank5_6_R_BASE (FMC_R_BASE + 0x0140)
#define DVP_BASE (HBPERIPH_BASE + 0x25800)
#define PIOC_BASE (HBPERIPH_BASE + 0x25C00)
#define SERDES_BASE (HBPERIPH_BASE + 0x27C00)
#define SERDES1_BASE (SERDES_BASE)
#define SERDES2_BASE (SERDES_BASE+0x0040)
#define ETH_BASE (HBPERIPH_BASE + 0x28000)
#define ETH_MAC_BASE (ETH_BASE)
#define ETH_MMC_BASE (ETH_BASE + 0x0100)
#define ETH_PTP_BASE (ETH_BASE + 0x0700)
#define ETH_DMA_BASE (ETH_BASE + 0x1000)
#define USBHS_BASE (HBPERIPH_BASE + 0x30000)
#define USBHSD_BASE (USBHS_BASE)
#define USBHSH_BASE (USBHS_BASE + 0x100)
#define USBSS_BASE (HBPERIPH_BASE + 0x34000)
#define UHSIF_BASE (HBPERIPH_BASE + 0x38000)
#define OB_BASE ((uint32_t)0x1FFFF800)
#define FLASH_CFGR0_BASE ((uint32_t)0x4002202C)
#define SYS_CFGR0_BASE ((uint32_t)0x5003C000)
#define SYS_CFGR4_BASE ((uint32_t)0x5003C010)
#define PFIC_BASE (CORE_PERIPH_BASE + 0xE000)
#define SysTick0_BASE (CORE_PERIPH_BASE + 0xF000)
#define SysTick1_BASE (CORE_PERIPH_BASE + 0xF080)
#define SysTick_BASE (CORE_PERIPH_BASE + 0xF000)
/* Peripheral declaration */
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
#define TIM3 ((TIM_TypeDef *) TIM3_BASE)
#define TIM4 ((TIM_TypeDef *) TIM4_BASE)
#define TIM5 ((TIM_TypeDef *) TIM5_BASE)
#define TIM6 ((TIM_TypeDef *) TIM6_BASE)
#define TIM7 ((TIM_TypeDef *) TIM7_BASE)
#define USART6 ((USART_TypeDef *) USART6_BASE)
#define USART7 ((USART_TypeDef *) USART7_BASE)
#define USART8 ((USART_TypeDef *) USART8_BASE)
#define LPTIM1 ((LPTIM_TypeDef *) LPTIM1_BASE)
#define RTC ((RTC_TypeDef *) RTC_BASE)
#define WWDG ((WWDG_TypeDef *) WWDG_BASE)
#define IWDG ((IWDG_TypeDef *) IWDG_BASE)
#define LPTIM2 ((LPTIM_TypeDef *) LPTIM2_BASE)
#define SPI2 ((SPI_TypeDef *) SPI2_BASE)
#define SPI3 ((SPI_TypeDef *) SPI3_BASE)
#define SPI4 ((SPI_TypeDef *) SPI4_BASE)
#define USART2 ((USART_TypeDef *) USART2_BASE)
#define USART3 ((USART_TypeDef *) USART3_BASE)
#define USART4 ((USART_TypeDef *) USART4_BASE)
#define USART5 ((USART_TypeDef *) USART5_BASE)
#define I2C1 ((I2C_TypeDef *) I2C1_BASE)
#define I2C2 ((I2C_TypeDef *) I2C2_BASE)
#define I2C3 ((I2C_TypeDef *) I2C3_BASE)
#define CAN1 ((CAN_TypeDef *) CAN1_BASE)
#define CAN2 ((CAN_TypeDef *) CAN2_BASE)
#define PWR ((PWR_TypeDef *) PWR_BASE)
#define DAC ((DAC_TypeDef *) DAC_BASE)
#define CAN3 ((CAN_TypeDef *) CAN3_BASE)
#define SWPMI ((SWPMI_TypeDef *) SWPMI_BASE)
#define AFIO ((AFIO_TypeDef *) AFIO_BASE)
#define EXTI ((EXTI_TypeDef *) EXTI_BASE)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF ((GPIO_TypeDef *) GPIOF_BASE)
#define ADC1 ((ADC_TypeDef *) ADC1_BASE)
#define ADC2 ((ADC_TypeDef *) ADC2_BASE)
#define TKey1 ((ADC_TypeDef *) ADC1_BASE)
#define TKey2 ((ADC_TypeDef *) ADC2_BASE)
#define TIM1 ((TIM_TypeDef *) TIM1_BASE)
#define SPI1 ((SPI_TypeDef *) SPI1_BASE)
#define TIM8 ((TIM_TypeDef *) TIM8_BASE)
#define USART1 ((USART_TypeDef *) USART1_BASE)
#define TIM12 ((TIM_TypeDef *) TIM12_BASE)
#define I2C4 ((I2C_TypeDef *) I2C4_BASE)
#define I3C ((I3C_TypeDef *) I3C_BASE)
#define LTDC ((LTDC_TypeDef *) LTDC_BASE)
#define LTDC_Layer1 ((LTDC_Layer_TypeDef *) LTDC_L1_BASE)
#define LTDC_Layer2 ((LTDC_Layer_TypeDef *) LTDC_L2_BASE)
#define TIM9 ((TIM_TypeDef *) TIM9_BASE)
#define TIM10 ((TIM_TypeDef *) TIM10_BASE)
#define TIM11 ((TIM_TypeDef *) TIM11_BASE)
#define SAI_Block_A ((SAI_Block_TypeDef *) SAI_Block_A_BASE)
#define SAI_Block_B ((SAI_Block_TypeDef *) SAI_Block_B_BASE)
#define GPHA ((GPHA_TypeDef *) GPHA_BASE)
#define ECDC ((ECDC_TypeDef *) ECDC_BASE)
#define DFSDM_FLT0 ((DFSDM_FLT_TypeDef *) DFSDM_FLT0_BASE)
#define DFSDM_FLT1 ((DFSDM_FLT_TypeDef *) DFSDM_FLT1_BASE)
#define DFSDM_Channel0 ((DFSDM_Channel_TypeDef *) DFSDM_Channel0_BASE)
#define DFSDM_Channel1 ((DFSDM_Channel_TypeDef *) DFSDM_Channel1_BASE)
#define HSADC ((HSADC_TypeDef *) HSADC_BASE)
#define OPA ((OPA_TypeDef *) OPA_BASE)
#define SDIO ((SDIO_TypeDef *) SDIO_BASE)
#define DMA1 ((DMA_TypeDef *) DMA1_BASE)
#define DMA2 ((DMA_TypeDef *) DMA2_BASE)
#define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE)
#define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE)
#define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE)
#define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE)
#define DMA1_Channel5 ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE)
#define DMA1_Channel6 ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE)
#define DMA1_Channel7 ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE)
#define DMA1_Channel8 ((DMA_Channel_TypeDef *) DMA1_Channel8_BASE)
#define DMA2_Channel1 ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE)
#define DMA2_Channel2 ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE)
#define DMA2_Channel3 ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE)
#define DMA2_Channel4 ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE)
#define DMA2_Channel5 ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE)
#define DMA2_Channel6 ((DMA_Channel_TypeDef *) DMA2_Channel6_BASE)
#define DMA2_Channel7 ((DMA_Channel_TypeDef *) DMA2_Channel7_BASE)
#define DMA2_Channel8 ((DMA_Channel_TypeDef *) DMA2_Channel8_BASE)
#define DMAMUX ((DMAMUX_TypeDef *) DMAMUX_BASE)
#define RCC ((RCC_TypeDef *) RCC_BASE)
#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE)
#define CRC ((CRC_TypeDef *) CRC_BASE)
#define USBFSD ((USBFSD_TypeDef *)USBFS_BASE)
#define USBFSH ((USBFSH_TypeDef *)USBFS_BASE)
#define RNG ((RNG_TypeDef *) RNG_BASE)
#define SDMMC ((SDMMC_TypeDef *) SDMMC_BASE)
#define USBPD ((USBPD_TypeDef *) USBPD_BASE)
#define QSPI1 ((QSPI_TypeDef *) QSPI1_BASE)
#define QSPI2 ((QSPI_TypeDef *) QSPI2_BASE)
#define FMC_Bank1 ((FMC_Bank1_TypeDef *) FMC_Bank1_R_BASE)
#define FMC_Bank1E ((FMC_Bank1E_TypeDef *) FMC_Bank1E_R_BASE)
#define FMC_Bank3 ((FMC_Bank3_TypeDef *) FMC_Bank3_R_BASE)
#define FMC_Bank5_6 ((FMC_Bank5_6_TypeDef *) FMC_Bank5_6_R_BASE)
#define DVP ((DVP_TypeDef *) DVP_BASE)
#define ETH ((ETH_TypeDef *) ETH_BASE)
#define USBHSD ((USBHSD_TypeDef *) USBHSD_BASE)
#define USBHSH ((USBHSH_TypeDef *) USBHSH_BASE)
#define USBSSD ((USBSSD_TypeDef *) USBSS_BASE)
#define USBSSH ((USBSSH_TypeDef *) USBSS_BASE)
#define SDS1 ((SDS_TypeDef *) SERDES1_BASE)
#define SDS2 ((SDS_TypeDef *) SERDES2_BASE)
#define UHSIF ((UHSIF_TypeDef *) UHSIF_BASE)
#define OB ((OB_TypeDef *) OB_BASE)
/******************************************************************************/
/* Peripheral Registers Bits Definition */
/******************************************************************************/
/******************************************************************************/
/* Analog to Digital Converter */
/******************************************************************************/
/******************** Bit definition for ADC_STATR register ********************/
#define ADC_AWD ((uint8_t)0x01) /* Analog watchdog flag */
#define ADC_EOC ((uint8_t)0x02) /* End of conversion */
#define ADC_JEOC ((uint8_t)0x04) /* Injected channel end of conversion */
#define ADC_JSTRT ((uint8_t)0x08) /* Injected channel Start flag */
#define ADC_STRT ((uint8_t)0x10) /* Regular channel Start flag */
#define ADC_RSTF ((uint16_t)0x8000) /* Reset flag */
/******************* Bit definition for ADC_CTLR1 register ********************/
#define ADC_AWDCH ((uint32_t)0x0000001F) /* AWDCH[4:0] bits (Analog watchdog channel select bits) */
#define ADC_AWDCH_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_AWDCH_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_AWDCH_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_AWDCH_3 ((uint32_t)0x00000008) /* Bit 3 */
#define ADC_AWDCH_4 ((uint32_t)0x00000010) /* Bit 4 */
#define ADC_EOCIE ((uint32_t)0x00000020) /* Interrupt enable for EOC */
#define ADC_AWDIE ((uint32_t)0x00000040) /* Analog Watchdog interrupt enable */
#define ADC_JEOCIE ((uint32_t)0x00000080) /* Interrupt enable for injected channels */
#define ADC_SCAN ((uint32_t)0x00000100) /* Scan mode */
#define ADC_AWDSGL ((uint32_t)0x00000200) /* Enable the watchdog on a single channel in scan mode */
#define ADC_JAUTO ((uint32_t)0x00000400) /* Automatic injected group conversion */
#define ADC_DISCEN ((uint32_t)0x00000800) /* Discontinuous mode on regular channels */
#define ADC_JDISCEN ((uint32_t)0x00001000) /* Discontinuous mode on injected channels */
#define ADC_DISCNUM ((uint32_t)0x0000E000) /* DISCNUM[2:0] bits (Discontinuous mode channel count) */
#define ADC_DISCNUM_0 ((uint32_t)0x00002000) /* Bit 0 */
#define ADC_DISCNUM_1 ((uint32_t)0x00004000) /* Bit 1 */
#define ADC_DISCNUM_2 ((uint32_t)0x00008000) /* Bit 2 */
#define ADC_DUALMOD ((uint32_t)0x000F0000) /* DUALMOD[3:0] bits (Dual mode selection) */
#define ADC_DUALMOD_0 ((uint32_t)0x00010000) /* Bit 0 */
#define ADC_DUALMOD_1 ((uint32_t)0x00020000) /* Bit 1 */
#define ADC_DUALMOD_2 ((uint32_t)0x00040000) /* Bit 2 */
#define ADC_DUALMOD_3 ((uint32_t)0x00080000) /* Bit 3 */
#define ADC_JAWDEN ((uint32_t)0x00400000) /* Analog watchdog enable on injected channels */
#define ADC_AWDEN ((uint32_t)0x00800000) /* Analog watchdog enable on regular channels */
#define ADC_TKENABLE ((uint32_t)0x01000000) /*TKEY enable*/
#define ADC_TKITUNE ((uint32_t)0x02000000)
#define ADC_BUFEN ((uint32_t)0x04000000)
#define ADC_PGA ((uint32_t)0x18000000)
#define ADC_PGA_0 ((uint32_t)0x08000000)
#define ADC_PGA_1 ((uint32_t)0x10000000)
#define ADC_ANA_RST ((uint32_t)0x40000000)
#define ADC_SW_PRE ((uint32_t)0x80000000)
/******************* Bit definition for ADC_CTLR2 register ********************/
#define ADC_ADON ((uint32_t)0x00000001) /* A/D Converter ON / OFF */
#define ADC_CONT ((uint32_t)0x00000002) /* Continuous Conversion */
#define ADC_CAL ((uint32_t)0x00000004) /* A/D Calibration */
#define ADC_RSTCAL ((uint32_t)0x00000008) /* Reset Calibration */
#define ADC_DMA ((uint32_t)0x00000100) /* Direct Memory access mode */
#define ADC_ALIGN ((uint32_t)0x00000800) /* Data Alignment */
#define ADC_JEXTSEL ((uint32_t)0x00007000) /* JEXTSEL[2:0] bits (External event select for injected group) */
#define ADC_JEXTSEL_0 ((uint32_t)0x00001000) /* Bit 0 */
#define ADC_JEXTSEL_1 ((uint32_t)0x00002000) /* Bit 1 */
#define ADC_JEXTSEL_2 ((uint32_t)0x00004000) /* Bit 2 */
#define ADC_JEXTTRIG ((uint32_t)0x00008000) /* External Trigger Conversion mode for injected channels */
#define ADC_EXTSEL ((uint32_t)0x000E0000) /* EXTSEL[2:0] bits (External Event Select for regular group) */
#define ADC_EXTSEL_0 ((uint32_t)0x00020000) /* Bit 0 */
#define ADC_EXTSEL_1 ((uint32_t)0x00040000) /* Bit 1 */
#define ADC_EXTSEL_2 ((uint32_t)0x00080000) /* Bit 2 */
#define ADC_EXTTRIG ((uint32_t)0x00100000) /* External Trigger Conversion mode for regular channels */
#define ADC_JSWSTART ((uint32_t)0x00200000) /* Start Conversion of injected channels */
#define ADC_SWSTART ((uint32_t)0x00400000) /* Start Conversion of regular channels */
#define ADC_TSVREFE ((uint32_t)0x00800000) /* Temperature Sensor and VREFINT Enable */
/****************** Bit definition for ADC_SAMPTR1 register *******************/
#define ADC_SMP10 ((uint32_t)0x00000007) /* SMP10[2:0] bits (Channel 10 Sample time selection) */
#define ADC_SMP10_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SMP10_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SMP10_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SMP11 ((uint32_t)0x00000038) /* SMP11[2:0] bits (Channel 11 Sample time selection) */
#define ADC_SMP11_0 ((uint32_t)0x00000008) /* Bit 0 */
#define ADC_SMP11_1 ((uint32_t)0x00000010) /* Bit 1 */
#define ADC_SMP11_2 ((uint32_t)0x00000020) /* Bit 2 */
#define ADC_SMP12 ((uint32_t)0x000001C0) /* SMP12[2:0] bits (Channel 12 Sample time selection) */
#define ADC_SMP12_0 ((uint32_t)0x00000040) /* Bit 0 */
#define ADC_SMP12_1 ((uint32_t)0x00000080) /* Bit 1 */
#define ADC_SMP12_2 ((uint32_t)0x00000100) /* Bit 2 */
#define ADC_SMP13 ((uint32_t)0x00000E00) /* SMP13[2:0] bits (Channel 13 Sample time selection) */
#define ADC_SMP13_0 ((uint32_t)0x00000200) /* Bit 0 */
#define ADC_SMP13_1 ((uint32_t)0x00000400) /* Bit 1 */
#define ADC_SMP13_2 ((uint32_t)0x00000800) /* Bit 2 */
#define ADC_SMP14 ((uint32_t)0x00007000) /* SMP14[2:0] bits (Channel 14 Sample time selection) */
#define ADC_SMP14_0 ((uint32_t)0x00001000) /* Bit 0 */
#define ADC_SMP14_1 ((uint32_t)0x00002000) /* Bit 1 */
#define ADC_SMP14_2 ((uint32_t)0x00004000) /* Bit 2 */
#define ADC_SMP15 ((uint32_t)0x00038000) /* SMP15[2:0] bits (Channel 15 Sample time selection) */
#define ADC_SMP15_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SMP15_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SMP15_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SMP16 ((uint32_t)0x001C0000) /* SMP16[2:0] bits (Channel 16 Sample time selection) */
#define ADC_SMP16_0 ((uint32_t)0x00040000) /* Bit 0 */
#define ADC_SMP16_1 ((uint32_t)0x00080000) /* Bit 1 */
#define ADC_SMP16_2 ((uint32_t)0x00100000) /* Bit 2 */
#define ADC_SMP17 ((uint32_t)0x00E00000) /* SMP17[2:0] bits (Channel 17 Sample time selection) */
#define ADC_SMP17_0 ((uint32_t)0x00200000) /* Bit 0 */
#define ADC_SMP17_1 ((uint32_t)0x00400000) /* Bit 1 */
#define ADC_SMP17_2 ((uint32_t)0x00800000) /* Bit 2 */
/****************** Bit definition for ADC_SAMPTR2 register *******************/
#define ADC_SMP0 ((uint32_t)0x00000007) /* SMP0[2:0] bits (Channel 0 Sample time selection) */
#define ADC_SMP0_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SMP0_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SMP0_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SMP1 ((uint32_t)0x00000038) /* SMP1[2:0] bits (Channel 1 Sample time selection) */
#define ADC_SMP1_0 ((uint32_t)0x00000008) /* Bit 0 */
#define ADC_SMP1_1 ((uint32_t)0x00000010) /* Bit 1 */
#define ADC_SMP1_2 ((uint32_t)0x00000020) /* Bit 2 */
#define ADC_SMP2 ((uint32_t)0x000001C0) /* SMP2[2:0] bits (Channel 2 Sample time selection) */
#define ADC_SMP2_0 ((uint32_t)0x00000040) /* Bit 0 */
#define ADC_SMP2_1 ((uint32_t)0x00000080) /* Bit 1 */
#define ADC_SMP2_2 ((uint32_t)0x00000100) /* Bit 2 */
#define ADC_SMP3 ((uint32_t)0x00000E00) /* SMP3[2:0] bits (Channel 3 Sample time selection) */
#define ADC_SMP3_0 ((uint32_t)0x00000200) /* Bit 0 */
#define ADC_SMP3_1 ((uint32_t)0x00000400) /* Bit 1 */
#define ADC_SMP3_2 ((uint32_t)0x00000800) /* Bit 2 */
#define ADC_SMP4 ((uint32_t)0x00007000) /* SMP4[2:0] bits (Channel 4 Sample time selection) */
#define ADC_SMP4_0 ((uint32_t)0x00001000) /* Bit 0 */
#define ADC_SMP4_1 ((uint32_t)0x00002000) /* Bit 1 */
#define ADC_SMP4_2 ((uint32_t)0x00004000) /* Bit 2 */
#define ADC_SMP5 ((uint32_t)0x00038000) /* SMP5[2:0] bits (Channel 5 Sample time selection) */
#define ADC_SMP5_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SMP5_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SMP5_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SMP6 ((uint32_t)0x001C0000) /* SMP6[2:0] bits (Channel 6 Sample time selection) */
#define ADC_SMP6_0 ((uint32_t)0x00040000) /* Bit 0 */
#define ADC_SMP6_1 ((uint32_t)0x00080000) /* Bit 1 */
#define ADC_SMP6_2 ((uint32_t)0x00100000) /* Bit 2 */
#define ADC_SMP7 ((uint32_t)0x00E00000) /* SMP7[2:0] bits (Channel 7 Sample time selection) */
#define ADC_SMP7_0 ((uint32_t)0x00200000) /* Bit 0 */
#define ADC_SMP7_1 ((uint32_t)0x00400000) /* Bit 1 */
#define ADC_SMP7_2 ((uint32_t)0x00800000) /* Bit 2 */
#define ADC_SMP8 ((uint32_t)0x07000000) /* SMP8[2:0] bits (Channel 8 Sample time selection) */
#define ADC_SMP8_0 ((uint32_t)0x01000000) /* Bit 0 */
#define ADC_SMP8_1 ((uint32_t)0x02000000) /* Bit 1 */
#define ADC_SMP8_2 ((uint32_t)0x04000000) /* Bit 2 */
#define ADC_SMP9 ((uint32_t)0x38000000) /* SMP9[2:0] bits (Channel 9 Sample time selection) */
#define ADC_SMP9_0 ((uint32_t)0x08000000) /* Bit 0 */
#define ADC_SMP9_1 ((uint32_t)0x10000000) /* Bit 1 */
#define ADC_SMP9_2 ((uint32_t)0x20000000) /* Bit 2 */
/****************** Bit definition for ADC_IOFR1 register *******************/
#define ADC_JOFFSET1 ((uint16_t)0x0FFF) /* Data offset for injected channel 1 */
/****************** Bit definition for ADC_IOFR2 register *******************/
#define ADC_JOFFSET2 ((uint16_t)0x0FFF) /* Data offset for injected channel 2 */
/****************** Bit definition for ADC_IOFR3 register *******************/
#define ADC_JOFFSET3 ((uint16_t)0x0FFF) /* Data offset for injected channel 3 */
/****************** Bit definition for ADC_IOFR4 register *******************/
#define ADC_JOFFSET4 ((uint16_t)0x0FFF) /* Data offset for injected channel 4 */
/******************* Bit definition for ADC_WDHTR register ********************/
#define ADC_HT ((uint16_t)0x0FFF) /* Analog watchdog high threshold */
/******************* Bit definition for ADC_WDLTR register ********************/
#define ADC_LT ((uint16_t)0x0FFF) /* Analog watchdog low threshold */
/******************* Bit definition for ADC_RSQR1 register *******************/
#define ADC_SQ13 ((uint32_t)0x0000001F) /* SQ13[4:0] bits (13th conversion in regular sequence) */
#define ADC_SQ13_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SQ13_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SQ13_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SQ13_3 ((uint32_t)0x00000008) /* Bit 3 */
#define ADC_SQ13_4 ((uint32_t)0x00000010) /* Bit 4 */
#define ADC_SQ14 ((uint32_t)0x000003E0) /* SQ14[4:0] bits (14th conversion in regular sequence) */
#define ADC_SQ14_0 ((uint32_t)0x00000020) /* Bit 0 */
#define ADC_SQ14_1 ((uint32_t)0x00000040) /* Bit 1 */
#define ADC_SQ14_2 ((uint32_t)0x00000080) /* Bit 2 */
#define ADC_SQ14_3 ((uint32_t)0x00000100) /* Bit 3 */
#define ADC_SQ14_4 ((uint32_t)0x00000200) /* Bit 4 */
#define ADC_SQ15 ((uint32_t)0x00007C00) /* SQ15[4:0] bits (15th conversion in regular sequence) */
#define ADC_SQ15_0 ((uint32_t)0x00000400) /* Bit 0 */
#define ADC_SQ15_1 ((uint32_t)0x00000800) /* Bit 1 */
#define ADC_SQ15_2 ((uint32_t)0x00001000) /* Bit 2 */
#define ADC_SQ15_3 ((uint32_t)0x00002000) /* Bit 3 */
#define ADC_SQ15_4 ((uint32_t)0x00004000) /* Bit 4 */
#define ADC_SQ16 ((uint32_t)0x000F8000) /* SQ16[4:0] bits (16th conversion in regular sequence) */
#define ADC_SQ16_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SQ16_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SQ16_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SQ16_3 ((uint32_t)0x00040000) /* Bit 3 */
#define ADC_SQ16_4 ((uint32_t)0x00080000) /* Bit 4 */
#define ADC_L ((uint32_t)0x00F00000) /* L[3:0] bits (Regular channel sequence length) */
#define ADC_L_0 ((uint32_t)0x00100000) /* Bit 0 */
#define ADC_L_1 ((uint32_t)0x00200000) /* Bit 1 */
#define ADC_L_2 ((uint32_t)0x00400000) /* Bit 2 */
#define ADC_L_3 ((uint32_t)0x00800000) /* Bit 3 */
/******************* Bit definition for ADC_RSQR2 register *******************/
#define ADC_SQ7 ((uint32_t)0x0000001F) /* SQ7[4:0] bits (7th conversion in regular sequence) */
#define ADC_SQ7_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SQ7_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SQ7_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SQ7_3 ((uint32_t)0x00000008) /* Bit 3 */
#define ADC_SQ7_4 ((uint32_t)0x00000010) /* Bit 4 */
#define ADC_SQ8 ((uint32_t)0x000003E0) /* SQ8[4:0] bits (8th conversion in regular sequence) */
#define ADC_SQ8_0 ((uint32_t)0x00000020) /* Bit 0 */
#define ADC_SQ8_1 ((uint32_t)0x00000040) /* Bit 1 */
#define ADC_SQ8_2 ((uint32_t)0x00000080) /* Bit 2 */
#define ADC_SQ8_3 ((uint32_t)0x00000100) /* Bit 3 */
#define ADC_SQ8_4 ((uint32_t)0x00000200) /* Bit 4 */
#define ADC_SQ9 ((uint32_t)0x00007C00) /* SQ9[4:0] bits (9th conversion in regular sequence) */
#define ADC_SQ9_0 ((uint32_t)0x00000400) /* Bit 0 */
#define ADC_SQ9_1 ((uint32_t)0x00000800) /* Bit 1 */
#define ADC_SQ9_2 ((uint32_t)0x00001000) /* Bit 2 */
#define ADC_SQ9_3 ((uint32_t)0x00002000) /* Bit 3 */
#define ADC_SQ9_4 ((uint32_t)0x00004000) /* Bit 4 */
#define ADC_SQ10 ((uint32_t)0x000F8000) /* SQ10[4:0] bits (10th conversion in regular sequence) */
#define ADC_SQ10_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SQ10_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SQ10_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SQ10_3 ((uint32_t)0x00040000) /* Bit 3 */
#define ADC_SQ10_4 ((uint32_t)0x00080000) /* Bit 4 */
#define ADC_SQ11 ((uint32_t)0x01F00000) /* SQ11[4:0] bits (11th conversion in regular sequence) */
#define ADC_SQ11_0 ((uint32_t)0x00100000) /* Bit 0 */
#define ADC_SQ11_1 ((uint32_t)0x00200000) /* Bit 1 */
#define ADC_SQ11_2 ((uint32_t)0x00400000) /* Bit 2 */
#define ADC_SQ11_3 ((uint32_t)0x00800000) /* Bit 3 */
#define ADC_SQ11_4 ((uint32_t)0x01000000) /* Bit 4 */
#define ADC_SQ12 ((uint32_t)0x3E000000) /* SQ12[4:0] bits (12th conversion in regular sequence) */
#define ADC_SQ12_0 ((uint32_t)0x02000000) /* Bit 0 */
#define ADC_SQ12_1 ((uint32_t)0x04000000) /* Bit 1 */
#define ADC_SQ12_2 ((uint32_t)0x08000000) /* Bit 2 */
#define ADC_SQ12_3 ((uint32_t)0x10000000) /* Bit 3 */
#define ADC_SQ12_4 ((uint32_t)0x20000000) /* Bit 4 */
/******************* Bit definition for ADC_RSQR3 register *******************/
#define ADC_SQ1 ((uint32_t)0x0000001F) /* SQ1[4:0] bits (1st conversion in regular sequence) */
#define ADC_SQ1_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_SQ1_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_SQ1_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_SQ1_3 ((uint32_t)0x00000008) /* Bit 3 */
#define ADC_SQ1_4 ((uint32_t)0x00000010) /* Bit 4 */
#define ADC_SQ2 ((uint32_t)0x000003E0) /* SQ2[4:0] bits (2nd conversion in regular sequence) */
#define ADC_SQ2_0 ((uint32_t)0x00000020) /* Bit 0 */
#define ADC_SQ2_1 ((uint32_t)0x00000040) /* Bit 1 */
#define ADC_SQ2_2 ((uint32_t)0x00000080) /* Bit 2 */
#define ADC_SQ2_3 ((uint32_t)0x00000100) /* Bit 3 */
#define ADC_SQ2_4 ((uint32_t)0x00000200) /* Bit 4 */
#define ADC_SQ3 ((uint32_t)0x00007C00) /* SQ3[4:0] bits (3rd conversion in regular sequence) */
#define ADC_SQ3_0 ((uint32_t)0x00000400) /* Bit 0 */
#define ADC_SQ3_1 ((uint32_t)0x00000800) /* Bit 1 */
#define ADC_SQ3_2 ((uint32_t)0x00001000) /* Bit 2 */
#define ADC_SQ3_3 ((uint32_t)0x00002000) /* Bit 3 */
#define ADC_SQ3_4 ((uint32_t)0x00004000) /* Bit 4 */
#define ADC_SQ4 ((uint32_t)0x000F8000) /* SQ4[4:0] bits (4th conversion in regular sequence) */
#define ADC_SQ4_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_SQ4_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_SQ4_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_SQ4_3 ((uint32_t)0x00040000) /* Bit 3 */
#define ADC_SQ4_4 ((uint32_t)0x00080000) /* Bit 4 */
#define ADC_SQ5 ((uint32_t)0x01F00000) /* SQ5[4:0] bits (5th conversion in regular sequence) */
#define ADC_SQ5_0 ((uint32_t)0x00100000) /* Bit 0 */
#define ADC_SQ5_1 ((uint32_t)0x00200000) /* Bit 1 */
#define ADC_SQ5_2 ((uint32_t)0x00400000) /* Bit 2 */
#define ADC_SQ5_3 ((uint32_t)0x00800000) /* Bit 3 */
#define ADC_SQ5_4 ((uint32_t)0x01000000) /* Bit 4 */
#define ADC_SQ6 ((uint32_t)0x3E000000) /* SQ6[4:0] bits (6th conversion in regular sequence) */
#define ADC_SQ6_0 ((uint32_t)0x02000000) /* Bit 0 */
#define ADC_SQ6_1 ((uint32_t)0x04000000) /* Bit 1 */
#define ADC_SQ6_2 ((uint32_t)0x08000000) /* Bit 2 */
#define ADC_SQ6_3 ((uint32_t)0x10000000) /* Bit 3 */
#define ADC_SQ6_4 ((uint32_t)0x20000000) /* Bit 4 */
/******************* Bit definition for ADC_ISQR register *******************/
#define ADC_JSQ1 ((uint32_t)0x0000001F) /* JSQ1[4:0] bits (1st conversion in injected sequence) */
#define ADC_JSQ1_0 ((uint32_t)0x00000001) /* Bit 0 */
#define ADC_JSQ1_1 ((uint32_t)0x00000002) /* Bit 1 */
#define ADC_JSQ1_2 ((uint32_t)0x00000004) /* Bit 2 */
#define ADC_JSQ1_3 ((uint32_t)0x00000008) /* Bit 3 */
#define ADC_JSQ1_4 ((uint32_t)0x00000010) /* Bit 4 */
#define ADC_JSQ2 ((uint32_t)0x000003E0) /* JSQ2[4:0] bits (2nd conversion in injected sequence) */
#define ADC_JSQ2_0 ((uint32_t)0x00000020) /* Bit 0 */
#define ADC_JSQ2_1 ((uint32_t)0x00000040) /* Bit 1 */
#define ADC_JSQ2_2 ((uint32_t)0x00000080) /* Bit 2 */
#define ADC_JSQ2_3 ((uint32_t)0x00000100) /* Bit 3 */
#define ADC_JSQ2_4 ((uint32_t)0x00000200) /* Bit 4 */
#define ADC_JSQ3 ((uint32_t)0x00007C00) /* JSQ3[4:0] bits (3rd conversion in injected sequence) */
#define ADC_JSQ3_0 ((uint32_t)0x00000400) /* Bit 0 */
#define ADC_JSQ3_1 ((uint32_t)0x00000800) /* Bit 1 */
#define ADC_JSQ3_2 ((uint32_t)0x00001000) /* Bit 2 */
#define ADC_JSQ3_3 ((uint32_t)0x00002000) /* Bit 3 */
#define ADC_JSQ3_4 ((uint32_t)0x00004000) /* Bit 4 */
#define ADC_JSQ4 ((uint32_t)0x000F8000) /* JSQ4[4:0] bits (4th conversion in injected sequence) */
#define ADC_JSQ4_0 ((uint32_t)0x00008000) /* Bit 0 */
#define ADC_JSQ4_1 ((uint32_t)0x00010000) /* Bit 1 */
#define ADC_JSQ4_2 ((uint32_t)0x00020000) /* Bit 2 */
#define ADC_JSQ4_3 ((uint32_t)0x00040000) /* Bit 3 */
#define ADC_JSQ4_4 ((uint32_t)0x00080000) /* Bit 4 */
#define ADC_JL ((uint32_t)0x00300000) /* JL[1:0] bits (Injected Sequence length) */
#define ADC_JL_0 ((uint32_t)0x00100000) /* Bit 0 */
#define ADC_JL_1 ((uint32_t)0x00200000) /* Bit 1 */
/******************* Bit definition for ADC_IDATAR1 register *******************/
#define ADC_IDATAR1_JDATA ((uint16_t)0xFFFF) /* Injected data */
/******************* Bit definition for ADC_IDATAR2 register *******************/
#define ADC_IDATAR2_JDATA ((uint16_t)0xFFFF) /* Injected data */
/******************* Bit definition for ADC_IDATAR3 register *******************/
#define ADC_IDATAR3_JDATA ((uint16_t)0xFFFF) /* Injected data */
/******************* Bit definition for ADC_IDATAR4 register *******************/
#define ADC_IDATAR4_JDATA ((uint16_t)0xFFFF) /* Injected data */
/******************** Bit definition for ADC_RDATAR register ********************/
#define ADC_RDATAR_DATA ((uint32_t)0x0000FFFF) /* Regular data */
#define ADC_RDATAR_ADC2DATA ((uint32_t)0xFFFF0000) /* ADC2 data */
/******************** Bit definition for ADC_AUX register ********************/
#define ADC_SMP_SEL_0 ((uint32_t)0x00000001) /* channel_0 */
#define ADC_SMP_SEL_1 ((uint32_t)0x00000002) /* channel_1 */
#define ADC_SMP_SEL_2 ((uint32_t)0x00000004) /* channel_2 */
#define ADC_SMP_SEL_3 ((uint32_t)0x00000008) /* channel_3 */
#define ADC_SMP_SEL_4 ((uint32_t)0x00000010) /* channel_4 */
#define ADC_SMP_SEL_5 ((uint32_t)0x00000020) /* channel_5 */
#define ADC_SMP_SEL_6 ((uint32_t)0x00000040) /* channel_6 */
#define ADC_SMP_SEL_7 ((uint32_t)0x00000080) /* channel_7 */
#define ADC_SMP_SEL_8 ((uint32_t)0x00000100) /* channel_8 */
#define ADC_SMP_SEL_9 ((uint32_t)0x00000200) /* channel_9 */
#define ADC_SMP_SEL_10 ((uint32_t)0x00000400) /* channel_10 */
#define ADC_SMP_SEL_11 ((uint32_t)0x00000800) /* channel_11 */
#define ADC_SMP_SEL_12 ((uint32_t)0x00001000) /* channel_12 */
#define ADC_SMP_SEL_13 ((uint32_t)0x00002000) /* channel_13 */
#define ADC_SMP_SEL_14 ((uint32_t)0x00004000) /* channel_14 */
#define ADC_SMP_SEL_15 ((uint32_t)0x00008000) /* channel_15 */
#define ADC_SMP_SEL_16 ((uint32_t)0x00010000) /* channel_16 */
#define ADC_SMP_SEL_17 ((uint32_t)0x00020000) /* channel_17 */
#define ADC_TO_DFSDM ((uint32_t)0x80000000)
/******************** Bit definition for ADC_DRV register ********************/
#define ADC_DRV_TKEY_OUTEN ((uint32_t)0x0000FFFF) /* Touchkey enables multi-channel shielding of each channel */
#define ADC_DRV_TKEY_EN ((uint32_t)0x00010000) /* Touchkey Multi Channel Shielding Enable */
/******************************************************************************/
/* High Speed Analog to Digital Converter */
/******************************************************************************/
/******************** Bit definition for HSADC_CFGR register ********************/
#define HSADC_EN ((uint32_t)0x00000001)
#define HSADC_DMAEN ((uint32_t)0x00000002)
#define HSADC_CHSEL ((uint32_t)0x0000001C)
#define HSADC_CHSEL_0 ((uint32_t)0x00000004)
#define HSADC_CHSEL_1 ((uint32_t)0x00000008)
#define HSADC_CHSEL_2 ((uint32_t)0x00000010)
#define HSADC_SETUP ((uint32_t)0x00000060)
#define HSADC_SETUP_0 ((uint32_t)0x00000020)
#define HSADC_SETUP_1 ((uint32_t)0x00000040)
#define HSADC_WIDTH ((uint32_t)0x00000080)
#define HSADC_CLKDIV ((uint32_t)0x00003F00)
#define HSADC_CLKDIV_0 ((uint32_t)0x00000100)
#define HSADC_CLKDIV_1 ((uint32_t)0x00000200)
#define HSADC_CLKDIV_2 ((uint32_t)0x00000400)
#define HSADC_CLKDIV_3 ((uint32_t)0x00000800)
#define HSADC_CLKDIV_4 ((uint32_t)0x00001000)
#define HSADC_CLKDIV_5 ((uint32_t)0x00002000)
#define HSADC_PPMODE ((uint32_t)0x00004000)
#define HSADC_BURST_EN ((uint32_t)0x00008000)
#define HSADC_DMA_LEN ((uint32_t)0xFFFF0000)
/******************** Bit definition for HSADC_CTLR1 register ********************/
#define HSADC_START ((uint32_t)0x00000001)
#define HSADC_BURSTEND ((uint32_t)0x00000002)
#define HSADC_EOCIE ((uint32_t)0x00000100)
#define HSADC_DMAIE ((uint32_t)0x00000200)
#define HSADC_BURSTIE ((uint32_t)0x00000400)
/******************** Bit definition for HSADC_CTLR2 register ********************/
#define HSADC_BURST_LEN ((uint32_t)0x0000FFFF)
#define HSADC_BURST_DMA_LEN ((uint32_t)0xFFFF0000)
/******************** Bit definition for HSADC_STATR register ********************/
#define HSADC_EOCIF ((uint32_t)0x00000001)
#define HSADC_DMAIF ((uint32_t)0x00000002)
#define HSADC_BURSTIF ((uint32_t)0x00000004)
#define HSADC_RXNE ((uint32_t)0x00000008)
#define HSADC_PP_ADDR ((uint32_t)0x00000010)
#define HSADC_FIFO_RDY ((uint32_t)0x00000100)
#define HSADC_FIFO_FULL ((uint32_t)0x00000200)
#define HSADC_FIFO_OV ((uint32_t)0x00000400)
#define HSADC_FIFO_CNT ((uint32_t)0x00003800)
/******************** Bit definition for HSADC_DATAR register ********************/
#define HSADC_DR ((uint32_t)0x000003FF)
/******************** Bit definition for HSADC_ADDR0 register ********************/
#define HSADC_DMA_ADDR0 ((uint32_t)0xFFFFFFFF)
/******************** Bit definition for HSADC_ADDR1 register ********************/
#define HSADC_DMA_ADDR1 ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* Controller Area Network */
/******************************************************************************/
/******************* Bit definition for CAN_CTLR register ********************/
#define CAN_CTLR_INRQ ((uint16_t)0x0001) /* Initialization Request */
#define CAN_CTLR_SLEEP ((uint16_t)0x0002) /* Sleep Mode Request */
#define CAN_CTLR_TXFP ((uint16_t)0x0004) /* Transmit FIFO Priority */
#define CAN_CTLR_RFLM ((uint16_t)0x0008) /* Receive FIFO Locked Mode */
#define CAN_CTLR_NART ((uint16_t)0x0010) /* No Automatic Retransmission */
#define CAN_CTLR_AWUM ((uint16_t)0x0020) /* Automatic Wakeup Mode */
#define CAN_CTLR_ABOM ((uint16_t)0x0040) /* Automatic Bus-Off Management */
#define CAN_CTLR_TTCM ((uint16_t)0x0080) /* Time Triggered Communication Mode */
#define CAN_CTLR_RESET ((uint16_t)0x8000) /* CAN software master reset */
#define CAN_CTLR_DBF ((uint32_t)0x10000)
#define CAN_CTLR_CFGCANM ((uint32_t)0x20000)
/******************* Bit definition for CAN_STATR register ********************/
#define CAN_STATR_INAK ((uint16_t)0x0001) /* Initialization Acknowledge */
#define CAN_STATR_SLAK ((uint16_t)0x0002) /* Sleep Acknowledge */
#define CAN_STATR_ERRI ((uint16_t)0x0004) /* Error Interrupt */
#define CAN_STATR_WKUI ((uint16_t)0x0008) /* Wakeup Interrupt */
#define CAN_STATR_SLAKI ((uint16_t)0x0010) /* Sleep Acknowledge Interrupt */
#define CAN_STATR_TXM ((uint16_t)0x0100) /* Transmit Mode */
#define CAN_STATR_RXM ((uint16_t)0x0200) /* Receive Mode */
#define CAN_STATR_SAMP ((uint16_t)0x0400) /* Last Sample Point */
#define CAN_STATR_RX ((uint16_t)0x0800) /* CAN Rx Signal */
/******************* Bit definition for CAN_TSTATR register ********************/
#define CAN_TSTATR_RQCP0 ((uint32_t)0x00000001) /* Request Completed Mailbox0 */
#define CAN_TSTATR_TXOK0 ((uint32_t)0x00000002) /* Transmission OK of Mailbox0 */
#define CAN_TSTATR_ALST0 ((uint32_t)0x00000004) /* Arbitration Lost for Mailbox0 */
#define CAN_TSTATR_TERR0 ((uint32_t)0x00000008) /* Transmission Error of Mailbox0 */
#define CAN_TSTATR_ABRQ0 ((uint32_t)0x00000080) /* Abort Request for Mailbox0 */
#define CAN_TSTATR_RQCP1 ((uint32_t)0x00000100) /* Request Completed Mailbox1 */
#define CAN_TSTATR_TXOK1 ((uint32_t)0x00000200) /* Transmission OK of Mailbox1 */
#define CAN_TSTATR_ALST1 ((uint32_t)0x00000400) /* Arbitration Lost for Mailbox1 */
#define CAN_TSTATR_TERR1 ((uint32_t)0x00000800) /* Transmission Error of Mailbox1 */
#define CAN_TSTATR_ABRQ1 ((uint32_t)0x00008000) /* Abort Request for Mailbox 1 */
#define CAN_TSTATR_RQCP2 ((uint32_t)0x00010000) /* Request Completed Mailbox2 */
#define CAN_TSTATR_TXOK2 ((uint32_t)0x00020000) /* Transmission OK of Mailbox 2 */
#define CAN_TSTATR_ALST2 ((uint32_t)0x00040000) /* Arbitration Lost for mailbox 2 */
#define CAN_TSTATR_TERR2 ((uint32_t)0x00080000) /* Transmission Error of Mailbox 2 */
#define CAN_TSTATR_ABRQ2 ((uint32_t)0x00800000) /* Abort Request for Mailbox 2 */
#define CAN_TSTATR_CODE ((uint32_t)0x03000000) /* Mailbox Code */
#define CAN_TSTATR_TME ((uint32_t)0x1C000000) /* TME[2:0] bits */
#define CAN_TSTATR_TME0 ((uint32_t)0x04000000) /* Transmit Mailbox 0 Empty */
#define CAN_TSTATR_TME1 ((uint32_t)0x08000000) /* Transmit Mailbox 1 Empty */
#define CAN_TSTATR_TME2 ((uint32_t)0x10000000) /* Transmit Mailbox 2 Empty */
#define CAN_TSTATR_LOW ((uint32_t)0xE0000000) /* LOW[2:0] bits */
#define CAN_TSTATR_LOW0 ((uint32_t)0x20000000) /* Lowest Priority Flag for Mailbox 0 */
#define CAN_TSTATR_LOW1 ((uint32_t)0x40000000) /* Lowest Priority Flag for Mailbox 1 */
#define CAN_TSTATR_LOW2 ((uint32_t)0x80000000) /* Lowest Priority Flag for Mailbox 2 */
/******************* Bit definition for CAN_RFIFO0 register *******************/
#define CAN_RFIFO0_FMP0 ((uint8_t)0x03) /* FIFO 0 Message Pending */
#define CAN_RFIFO0_FULL0 ((uint8_t)0x08) /* FIFO 0 Full */
#define CAN_RFIFO0_FOVR0 ((uint8_t)0x10) /* FIFO 0 Overrun */
#define CAN_RFIFO0_RFOM0 ((uint8_t)0x20) /* Release FIFO 0 Output Mailbox */
/******************* Bit definition for CAN_RFIFO1 register *******************/
#define CAN_RFIFO1_FMP1 ((uint8_t)0x03) /* FIFO 1 Message Pending */
#define CAN_RFIFO1_FULL1 ((uint8_t)0x08) /* FIFO 1 Full */
#define CAN_RFIFO1_FOVR1 ((uint8_t)0x10) /* FIFO 1 Overrun */
#define CAN_RFIFO1_RFOM1 ((uint8_t)0x20) /* Release FIFO 1 Output Mailbox */
/******************** Bit definition for CAN_INTENR register *******************/
#define CAN_INTENR_TMEIE ((uint32_t)0x00000001) /* Transmit Mailbox Empty Interrupt Enable */
#define CAN_INTENR_FMPIE0 ((uint32_t)0x00000002) /* FIFO Message Pending Interrupt Enable */
#define CAN_INTENR_FFIE0 ((uint32_t)0x00000004) /* FIFO Full Interrupt Enable */
#define CAN_INTENR_FOVIE0 ((uint32_t)0x00000008) /* FIFO Overrun Interrupt Enable */
#define CAN_INTENR_EMPIE1 ((uint32_t)0x00000010) /* FIF1 Message Pending Interrupt Enable */
#define CAN_INTENR_FFIE1 ((uint32_t)0x00000020) /* FIF1 Full Interrupt Enable */
#define CAN_INTENR_FOVIE1 ((uint32_t)0x00000040) /* FIF1 Overrun Interrupt Enable */
#define CAN_INTENR_EWGIE ((uint32_t)0x00000100) /* Error Warning Interrupt Enable */
#define CAN_INTENR_EPVIE ((uint32_t)0x00000200) /* Error Passive Interrupt Enable */
#define CAN_INTENR_BOFIE ((uint32_t)0x00000400) /* Bus-Off Interrupt Enable */
#define CAN_INTENR_LECIE ((uint32_t)0x00000800) /* Last Error Code Interrupt Enable */
#define CAN_INTENR_ERRIE ((uint32_t)0x00008000) /* Error Interrupt Enable */
#define CAN_INTENR_WKUIE ((uint32_t)0x00010000) /* Wakeup Interrupt Enable */
#define CAN_INTENR_SLKIE ((uint32_t)0x00020000) /* Sleep Interrupt Enable */
/******************** Bit definition for CAN_ERRSR register *******************/
#define CAN_ERRSR_EWGF ((uint32_t)0x00000001) /* Error Warning Flag */
#define CAN_ERRSR_EPVF ((uint32_t)0x00000002) /* Error Passive Flag */
#define CAN_ERRSR_BOFF ((uint32_t)0x00000004) /* Bus-Off Flag */
#define CAN_ERRSR_LEC ((uint32_t)0x00000070) /* LEC[2:0] bits (Last Error Code) */
#define CAN_ERRSR_LEC_0 ((uint32_t)0x00000010) /* Bit 0 */
#define CAN_ERRSR_LEC_1 ((uint32_t)0x00000020) /* Bit 1 */
#define CAN_ERRSR_LEC_2 ((uint32_t)0x00000040) /* Bit 2 */
#define CAN_ERRSR_TEC ((uint32_t)0x00FF0000) /* Least significant byte of the 9-bit Transmit Error Counter */
#define CAN_ERRSR_REC ((uint32_t)0xFF000000) /* Receive Error Counter */
/******************** Bit definition for CAN_BTIMR register *******************/
#define CAN_BTIMR_BRP ((uint32_t)0x000003FF)
#define CAN_BTIMR_BTR_TS1_T ((uint32_t)0x0000F000)
#define CAN_BTIMR_TS1 ((uint32_t)0x000F0000)
#define CAN_BTIMR_TS2 ((uint32_t)0x00F00000)
#define CAN_BTIMR_SJW ((uint32_t)0x0F000000)
#define CAN_BTIMR_LBKM ((uint32_t)0x40000000)
#define CAN_BTIMR_SILM ((uint32_t)0x80000000)
/******************* Bit definition for CAN_TTCTLR register ********************/
#define CAN_TTCTLR_TIMCMV ((uint32_t)0x0000FFFF)
#define CAN_TTCTLR_TIMRST ((uint32_t)0x00010000)
#define CAN_TTCTLR_MODE ((uint32_t)0x00020000)
/******************* Bit definition for CAN_TTCNT register ********************/
#define CAN_TIMCNT ((uint32_t)0x0000FFFF)
/******************* Bit definition for CAN_TERR_CNT register ********************/
#define CAN_TERR_CNT ((uint32_t)0x000001FF)
/****************** Bit definition for CAN_TXMI0R register ********************/
#define CAN_TXMI0R_TXRQ ((uint32_t)0x00000001) /* Transmit Mailbox Request */
#define CAN_TXMI0R_RTR ((uint32_t)0x00000002) /* Remote Transmission Request */
#define CAN_TXMI0R_IDE ((uint32_t)0x00000004) /* Identifier Extension */
#define CAN_TXMI0R_EXID ((uint32_t)0x001FFFF8) /* Extended Identifier */
#define CAN_TXMI0R_STID ((uint32_t)0xFFE00000) /* Standard Identifier or Extended Identifier */
/****************** Bit definition for CAN_TXMDT0R register *******************/
#define CAN_TXMDT0R_DLC ((uint32_t)0x0000000F) /* Data Length Code */
#define CAN_TXMDT0R_TGT ((uint32_t)0x00000100) /* Transmit Global Time */
#define CAN_TXMDT0R_TIME ((uint32_t)0xFFFF0000) /* Message Time Stamp */
/****************** Bit definition for CAN_TXMDL0R register *******************/
#define CAN_TXMDL0R_DATA0 ((uint32_t)0x000000FF) /* Data byte 0 */
#define CAN_TXMDL0R_DATA1 ((uint32_t)0x0000FF00) /* Data byte 1 */
#define CAN_TXMDL0R_DATA2 ((uint32_t)0x00FF0000) /* Data byte 2 */
#define CAN_TXMDL0R_DATA3 ((uint32_t)0xFF000000) /* Data byte 3 */
/****************** Bit definition for CAN_TXMDH0R register *******************/
#define CAN_TXMDH0R_DATA4 ((uint32_t)0x000000FF) /* Data byte 4 */
#define CAN_TXMDH0R_DATA5 ((uint32_t)0x0000FF00) /* Data byte 5 */
#define CAN_TXMDH0R_DATA6 ((uint32_t)0x00FF0000) /* Data byte 6 */
#define CAN_TXMDH0R_DATA7 ((uint32_t)0xFF000000) /* Data byte 7 */
/******************* Bit definition for CAN_TXMI1R register *******************/
#define CAN_TXMI1R_TXRQ ((uint32_t)0x00000001) /* Transmit Mailbox Request */
#define CAN_TXMI1R_RTR ((uint32_t)0x00000002) /* Remote Transmission Request */
#define CAN_TXMI1R_IDE ((uint32_t)0x00000004) /* Identifier Extension */
#define CAN_TXMI1R_EXID ((uint32_t)0x001FFFF8) /* Extended Identifier */
#define CAN_TXMI1R_STID ((uint32_t)0xFFE00000) /* Standard Identifier or Extended Identifier */
/******************* Bit definition for CAN_TXMDT1R register ******************/
#define CAN_TXMDT1R_DLC ((uint32_t)0x0000000F) /* Data Length Code */
#define CAN_TXMDT1R_TGT ((uint32_t)0x00000100) /* Transmit Global Time */
#define CAN_TXMDT1R_TIME ((uint32_t)0xFFFF0000) /* Message Time Stamp */
/******************* Bit definition for CAN_TXMDL1R register ******************/
#define CAN_TXMDL1R_DATA0 ((uint32_t)0x000000FF) /* Data byte 0 */
#define CAN_TXMDL1R_DATA1 ((uint32_t)0x0000FF00) /* Data byte 1 */
#define CAN_TXMDL1R_DATA2 ((uint32_t)0x00FF0000) /* Data byte 2 */
#define CAN_TXMDL1R_DATA3 ((uint32_t)0xFF000000) /* Data byte 3 */
/******************* Bit definition for CAN_TXMDH1R register ******************/
#define CAN_TXMDH1R_DATA4 ((uint32_t)0x000000FF) /* Data byte 4 */
#define CAN_TXMDH1R_DATA5 ((uint32_t)0x0000FF00) /* Data byte 5 */
#define CAN_TXMDH1R_DATA6 ((uint32_t)0x00FF0000) /* Data byte 6 */
#define CAN_TXMDH1R_DATA7 ((uint32_t)0xFF000000) /* Data byte 7 */
/******************* Bit definition for CAN_TXMI2R register *******************/
#define CAN_TXMI2R_TXRQ ((uint32_t)0x00000001) /* Transmit Mailbox Request */
#define CAN_TXMI2R_RTR ((uint32_t)0x00000002) /* Remote Transmission Request */
#define CAN_TXMI2R_IDE ((uint32_t)0x00000004) /* Identifier Extension */
#define CAN_TXMI2R_EXID ((uint32_t)0x001FFFF8) /* Extended identifier */
#define CAN_TXMI2R_STID ((uint32_t)0xFFE00000) /* Standard Identifier or Extended Identifier */
/******************* Bit definition for CAN_TXMDT2R register ******************/
#define CAN_TXMDT2R_DLC ((uint32_t)0x0000000F) /* Data Length Code */
#define CAN_TXMDT2R_TGT ((uint32_t)0x00000100) /* Transmit Global Time */
#define CAN_TXMDT2R_TIME ((uint32_t)0xFFFF0000) /* Message Time Stamp */
/******************* Bit definition for CAN_TXMDL2R register ******************/
#define CAN_TXMDL2R_DATA0 ((uint32_t)0x000000FF) /* Data byte 0 */
#define CAN_TXMDL2R_DATA1 ((uint32_t)0x0000FF00) /* Data byte 1 */
#define CAN_TXMDL2R_DATA2 ((uint32_t)0x00FF0000) /* Data byte 2 */
#define CAN_TXMDL2R_DATA3 ((uint32_t)0xFF000000) /* Data byte 3 */
/******************* Bit definition for CAN_TXMDH2R register ******************/
#define CAN_TXMDH2R_DATA4 ((uint32_t)0x000000FF) /* Data byte 4 */
#define CAN_TXMDH2R_DATA5 ((uint32_t)0x0000FF00) /* Data byte 5 */
#define CAN_TXMDH2R_DATA6 ((uint32_t)0x00FF0000) /* Data byte 6 */
#define CAN_TXMDH2R_DATA7 ((uint32_t)0xFF000000) /* Data byte 7 */
/******************* Bit definition for CAN_RXMI0R register *******************/
#define CAN_RXMI0R_RTR ((uint32_t)0x00000002) /* Remote Transmission Request */
#define CAN_RXMI0R_IDE ((uint32_t)0x00000004) /* Identifier Extension */
#define CAN_RXMI0R_EXID ((uint32_t)0x001FFFF8) /* Extended Identifier */
#define CAN_RXMI0R_STID ((uint32_t)0xFFE00000) /* Standard Identifier or Extended Identifier */
/******************* Bit definition for CAN_RXMDT0R register ******************/
#define CAN_RXMDT0R_DLC ((uint32_t)0x0000000F) /* Data Length Code */
#define CAN_RXMDT0R_BRS ((uint32_t)0x00000010)
#define CAN_RXMDT0R_ESI ((uint32_t)0x00000020)
#define CAN_RXMDH0R_RES ((uint32_t)0x00000100)
#define CAN_RXMDT0R_TIME ((uint32_t)0xFFFF0000) /* Message Time Stamp */
/******************* Bit definition for CAN_RXMDL0R register ******************/
#define CAN_RXMDL0R_DATA0 ((uint32_t)0x000000FF) /* Data byte 0 */
#define CAN_RXMDL0R_DATA1 ((uint32_t)0x0000FF00) /* Data byte 1 */
#define CAN_RXMDL0R_DATA2 ((uint32_t)0x00FF0000) /* Data byte 2 */
#define CAN_RXMDL0R_DATA3 ((uint32_t)0xFF000000) /* Data byte 3 */
/******************* Bit definition for CAN_RXMDH0R register ******************/
#define CAN_RXMDH0R_DATA4 ((uint32_t)0x000000FF) /* Data byte 4 */
#define CAN_RXMDH0R_DATA5 ((uint32_t)0x0000FF00) /* Data byte 5 */
#define CAN_RXMDH0R_DATA6 ((uint32_t)0x00FF0000) /* Data byte 6 */
#define CAN_RXMDH0R_DATA7 ((uint32_t)0xFF000000) /* Data byte 7 */
/******************* Bit definition for CAN_RXMI1R register *******************/
#define CAN_RXMI1R_RTR ((uint32_t)0x00000002) /* Remote Transmission Request */
#define CAN_RXMI1R_IDE ((uint32_t)0x00000004) /* Identifier Extension */
#define CAN_RXMI1R_EXID ((uint32_t)0x001FFFF8) /* Extended Identifier */
#define CAN_RXMI1R_STID ((uint32_t)0xFFE00000) /* Standard Identifier or Extended Identifier */
/******************* Bit definition for CAN_RXMDT1R register ******************/
#define CAN_RXMDT1R_DLC ((uint32_t)0x0000000F) /* Data Length Code */
#define CAN_RXMDT1R_BRS ((uint32_t)0x00000010)
#define CAN_RXMDT1R_ESI ((uint32_t)0x00000020)
#define CAN_RXMDH1R_RES ((uint32_t)0x00000100)
#define CAN_RXMDT1R_TIME ((uint32_t)0xFFFF0000) /* Message Time Stamp */
/******************* Bit definition for CAN_RXMDL1R register ******************/
#define CAN_RXMDL1R_DATA0 ((uint32_t)0x000000FF) /* Data byte 0 */
#define CAN_RXMDL1R_DATA1 ((uint32_t)0x0000FF00) /* Data byte 1 */
#define CAN_RXMDL1R_DATA2 ((uint32_t)0x00FF0000) /* Data byte 2 */
#define CAN_RXMDL1R_DATA3 ((uint32_t)0xFF000000) /* Data byte 3 */
/******************* Bit definition for CAN_RXMDH1R register ******************/
#define CAN_RXMDH1R_DATA4 ((uint32_t)0x000000FF) /* Data byte 4 */
#define CAN_RXMDH1R_DATA5 ((uint32_t)0x0000FF00) /* Data byte 5 */
#define CAN_RXMDH1R_DATA6 ((uint32_t)0x00FF0000) /* Data byte 6 */
#define CAN_RXMDH1R_DATA7 ((uint32_t)0xFF000000) /* Data byte 7 */
/******************* Bit definition for CAN_FCTLR register *******************/
#define CAN_FCTLR_TINIT ((uint32_t)0x00000001)
#define CAN_FCTLR_CAN2SB ((uint32_t)0x00001F00)
#define CAN_FCTLR_CAN3SB ((uint32_t)0x003F0000)
/****************** Bit definition for CAN_FMCFGR register ******************/
#define CAN_FMCFGR_FBM0 ((uint32_t)0x00000001)
#define CAN_FMCFGR_FBM1 ((uint32_t)0x00000002)
#define CAN_FMCFGR_FBM2 ((uint32_t)0x00000004)
#define CAN_FMCFGR_FBM3 ((uint32_t)0x00000008)
#define CAN_FMCFGR_FBM4 ((uint32_t)0x00000010)
#define CAN_FMCFGR_FBM5 ((uint32_t)0x00000020)
#define CAN_FMCFGR_FBM6 ((uint32_t)0x00000040)
#define CAN_FMCFGR_FBM7 ((uint32_t)0x00000080)
#define CAN_FMCFGR_FBM8 ((uint32_t)0x00000100)
#define CAN_FMCFGR_FBM9 ((uint32_t)0x00000200)
#define CAN_FMCFGR_FBM10 ((uint32_t)0x00000400)
#define CAN_FMCFGR_FBM11 ((uint32_t)0x00000800)
#define CAN_FMCFGR_FBM12 ((uint32_t)0x00001000)
#define CAN_FMCFGR_FBM13 ((uint32_t)0x00002000)
#define CAN_FMCFGR_FBM14 ((uint32_t)0x00004000)
#define CAN_FMCFGR_FBM15 ((uint32_t)0x00008000)
#define CAN_FMCFGR_FBM16 ((uint32_t)0x00010000)
#define CAN_FMCFGR_FBM17 ((uint32_t)0x00020000)
#define CAN_FMCFGR_FBM18 ((uint32_t)0x00040000)
#define CAN_FMCFGR_FBM19 ((uint32_t)0x00080000)
#define CAN_FMCFGR_FBM20 ((uint32_t)0x00100000)
#define CAN_FMCFGR_FBM21 ((uint32_t)0x00200000)
#define CAN_FMCFGR_FBM22 ((uint32_t)0x00400000)
#define CAN_FMCFGR_FBM23 ((uint32_t)0x00800000)
#define CAN_FMCFGR_FBM24 ((uint32_t)0x01000000)
#define CAN_FMCFGR_FBM25 ((uint32_t)0x02000000)
#define CAN_FMCFGR_FBM26 ((uint32_t)0x04000000)
#define CAN_FMCFGR_FBM27 ((uint32_t)0x08000000)
/****************** Bit definition for CAN_FMCFGR1 register ******************/
#define CAN_FMCFGR1_FBM28 ((uint32_t)0x00000001)
#define CAN_FMCFGR1_FBM29 ((uint32_t)0x00000002)
#define CAN_FMCFGR1_FBM30 ((uint32_t)0x00000004)
#define CAN_FMCFGR1_FBM31 ((uint32_t)0x00000008)
#define CAN_FMCFGR1_FBM32 ((uint32_t)0x00000010)
#define CAN_FMCFGR1_FBM33 ((uint32_t)0x00000020)
#define CAN_FMCFGR1_FBM34 ((uint32_t)0x00000040)
#define CAN_FMCFGR1_FBM35 ((uint32_t)0x00000080)
#define CAN_FMCFGR1_FBM36 ((uint32_t)0x00000100)
#define CAN_FMCFGR1_FBM37 ((uint32_t)0x00000200)
#define CAN_FMCFGR1_FBM38 ((uint32_t)0x00000400)
#define CAN_FMCFGR1_FBM39 ((uint32_t)0x00000800)
#define CAN_FMCFGR1_FBM40 ((uint32_t)0x00001000)
#define CAN_FMCFGR1_FBM41 ((uint32_t)0x00002000)
/****************** Bit definition for CAN_FSCFGR register ******************/
#define CAN_FSCFGR_FSC0 ((uint32_t)0x00000001)
#define CAN_FSCFGR_FSC1 ((uint32_t)0x00000002)
#define CAN_FSCFGR_FSC2 ((uint32_t)0x00000004)
#define CAN_FSCFGR_FSC3 ((uint32_t)0x00000008)
#define CAN_FSCFGR_FSC4 ((uint32_t)0x00000010)
#define CAN_FSCFGR_FSC5 ((uint32_t)0x00000020)
#define CAN_FSCFGR_FSC6 ((uint32_t)0x00000040)
#define CAN_FSCFGR_FSC7 ((uint32_t)0x00000080)
#define CAN_FSCFGR_FSC8 ((uint32_t)0x00000100)
#define CAN_FSCFGR_FSC9 ((uint32_t)0x00000200)
#define CAN_FSCFGR_FSC10 ((uint32_t)0x00000400)
#define CAN_FSCFGR_FSC11 ((uint32_t)0x00000800)
#define CAN_FSCFGR_FSC12 ((uint32_t)0x00001000)
#define CAN_FSCFGR_FSC13 ((uint32_t)0x00002000)
#define CAN_FSCFGR_FSC14 ((uint32_t)0x00004000)
#define CAN_FSCFGR_FSC15 ((uint32_t)0x00008000)
#define CAN_FSCFGR_FSC16 ((uint32_t)0x00010000)
#define CAN_FSCFGR_FSC17 ((uint32_t)0x00020000)
#define CAN_FSCFGR_FSC18 ((uint32_t)0x00040000)
#define CAN_FSCFGR_FSC19 ((uint32_t)0x00080000)
#define CAN_FSCFGR_FSC20 ((uint32_t)0x00100000)
#define CAN_FSCFGR_FSC21 ((uint32_t)0x00200000)
#define CAN_FSCFGR_FSC22 ((uint32_t)0x00400000)
#define CAN_FSCFGR_FSC23 ((uint32_t)0x00800000)
#define CAN_FSCFGR_FSC24 ((uint32_t)0x01000000)
#define CAN_FSCFGR_FSC25 ((uint32_t)0x02000000)
#define CAN_FSCFGR_FSC26 ((uint32_t)0x04000000)
#define CAN_FSCFGR_FSC27 ((uint32_t)0x08000000)
/****************** Bit definition for CAN_FSCFGR1 register ******************/
#define CAN_FSCFGR1_FSC28 ((uint32_t)0x00000001)
#define CAN_FSCFGR1_FSC29 ((uint32_t)0x00000002)
#define CAN_FSCFGR1_FSC30 ((uint32_t)0x00000004)
#define CAN_FSCFGR1_FSC31 ((uint32_t)0x00000008)
#define CAN_FSCFGR1_FSC32 ((uint32_t)0x00000010)
#define CAN_FSCFGR1_FSC33 ((uint32_t)0x00000020)
#define CAN_FSCFGR1_FSC34 ((uint32_t)0x00000040)
#define CAN_FSCFGR1_FSC35 ((uint32_t)0x00000080)
#define CAN_FSCFGR1_FSC36 ((uint32_t)0x00000100)
#define CAN_FSCFGR1_FSC37 ((uint32_t)0x00000200)
#define CAN_FSCFGR1_FSC38 ((uint32_t)0x00000400)
#define CAN_FSCFGR1_FSC39 ((uint32_t)0x00000800)
#define CAN_FSCFGR1_FSC40 ((uint32_t)0x00001000)
#define CAN_FSCFGR1_FSC41 ((uint32_t)0x00002000)
/****************** Bit definition for CAN_FAFIFOR register ******************/
#define CAN_FAFIFOR_FFA0 ((uint32_t)0x00000001)
#define CAN_FAFIFOR_FFA1 ((uint32_t)0x00000002)
#define CAN_FAFIFOR_FFA2 ((uint32_t)0x00000004)
#define CAN_FAFIFOR_FFA3 ((uint32_t)0x00000008)
#define CAN_FAFIFOR_FFA4 ((uint32_t)0x00000010)
#define CAN_FAFIFOR_FFA5 ((uint32_t)0x00000020)
#define CAN_FAFIFOR_FFA6 ((uint32_t)0x00000040)
#define CAN_FAFIFOR_FFA7 ((uint32_t)0x00000080)
#define CAN_FAFIFOR_FFA8 ((uint32_t)0x00000100)
#define CAN_FAFIFOR_FFA9 ((uint32_t)0x00000200)
#define CAN_FAFIFOR_FFA10 ((uint32_t)0x00000400)
#define CAN_FAFIFOR_FFA11 ((uint32_t)0x00000800)
#define CAN_FAFIFOR_FFA12 ((uint32_t)0x00001000)
#define CAN_FAFIFOR_FFA13 ((uint32_t)0x00002000)
#define CAN_FAFIFOR_FFA14 ((uint32_t)0x00004000)
#define CAN_FAFIFOR_FFA15 ((uint32_t)0x00008000)
#define CAN_FAFIFOR_FFA16 ((uint32_t)0x00010000)
#define CAN_FAFIFOR_FFA17 ((uint32_t)0x00020000)
#define CAN_FAFIFOR_FFA18 ((uint32_t)0x00040000)
#define CAN_FAFIFOR_FFA19 ((uint32_t)0x00080000)
#define CAN_FAFIFOR_FFA20 ((uint32_t)0x00100000)
#define CAN_FAFIFOR_FFA21 ((uint32_t)0x00200000)
#define CAN_FAFIFOR_FFA22 ((uint32_t)0x00400000)
#define CAN_FAFIFOR_FFA23 ((uint32_t)0x00800000)
#define CAN_FAFIFOR_FFA24 ((uint32_t)0x01000000)
#define CAN_FAFIFOR_FFA25 ((uint32_t)0x02000000)
#define CAN_FAFIFOR_FFA26 ((uint32_t)0x04000000)
#define CAN_FAFIFOR_FFA27 ((uint32_t)0x08000000)
/****************** Bit definition for CAN_FAFIFOR1 register ******************/
#define CAN_FAFIFOR1_FFA28 ((uint32_t)0x00000001)
#define CAN_FAFIFOR1_FFA29 ((uint32_t)0x00000002)
#define CAN_FAFIFOR1_FFA30 ((uint32_t)0x00000004)
#define CAN_FAFIFOR1_FFA31 ((uint32_t)0x00000008)
#define CAN_FAFIFOR1_FFA32 ((uint32_t)0x00000010)
#define CAN_FAFIFOR1_FFA33 ((uint32_t)0x00000020)
#define CAN_FAFIFOR1_FFA34 ((uint32_t)0x00000040)
#define CAN_FAFIFOR1_FFA35 ((uint32_t)0x00000080)
#define CAN_FAFIFOR1_FFA36 ((uint32_t)0x00000100)
#define CAN_FAFIFOR1_FFA37 ((uint32_t)0x00000200)
#define CAN_FAFIFOR1_FFA38 ((uint32_t)0x00000400)
#define CAN_FAFIFOR1_FFA39 ((uint32_t)0x00000800)
#define CAN_FAFIFOR1_FFA40 ((uint32_t)0x00001000)
#define CAN_FAFIFOR1_FFA41 ((uint32_t)0x00002000)
/******************** Bit definition for CAN_FWR register ********************/
#define CAN_FWR_FACT0 ((uint32_t)0x00000001)
#define CAN_FWR_FACT1 ((uint32_t)0x00000002)
#define CAN_FWR_FACT2 ((uint32_t)0x00000004)
#define CAN_FWR_FACT3 ((uint32_t)0x00000008)
#define CAN_FWR_FACT4 ((uint32_t)0x00000010)
#define CAN_FWR_FACT5 ((uint32_t)0x00000020)
#define CAN_FWR_FACT6 ((uint32_t)0x00000040)
#define CAN_FWR_FACT7 ((uint32_t)0x00000080)
#define CAN_FWR_FACT8 ((uint32_t)0x00000100)
#define CAN_FWR_FACT9 ((uint32_t)0x00000200)
#define CAN_FWR_FACT10 ((uint32_t)0x00000400)
#define CAN_FWR_FACT11 ((uint32_t)0x00000800)
#define CAN_FWR_FACT12 ((uint32_t)0x00001000)
#define CAN_FWR_FACT13 ((uint32_t)0x00002000)
#define CAN_FWR_FACT14 ((uint32_t)0x00004000)
#define CAN_FWR_FACT15 ((uint32_t)0x00008000)
#define CAN_FWR_FACT16 ((uint32_t)0x00010000)
#define CAN_FWR_FACT17 ((uint32_t)0x00020000)
#define CAN_FWR_FACT18 ((uint32_t)0x00040000)
#define CAN_FWR_FACT19 ((uint32_t)0x00080000)
#define CAN_FWR_FACT20 ((uint32_t)0x00100000)
#define CAN_FWR_FACT21 ((uint32_t)0x00200000)
#define CAN_FWR_FACT22 ((uint32_t)0x00400000)
#define CAN_FWR_FACT23 ((uint32_t)0x00800000)
#define CAN_FWR_FACT24 ((uint32_t)0x01000000)
#define CAN_FWR_FACT25 ((uint32_t)0x02000000)
#define CAN_FWR_FACT26 ((uint32_t)0x04000000)
#define CAN_FWR_FACT27 ((uint32_t)0x08000000)
/******************** Bit definition for CAN_FWR1 register ********************/
#define CAN_FWR1_FACT28 ((uint32_t)0x00000001)
#define CAN_FWR1_FACT29 ((uint32_t)0x00000002)
#define CAN_FWR1_FACT30 ((uint32_t)0x00000004)
#define CAN_FWR1_FACT31 ((uint32_t)0x00000008)
#define CAN_FWR1_FACT32 ((uint32_t)0x00000010)
#define CAN_FWR1_FACT33 ((uint32_t)0x00000020)
#define CAN_FWR1_FACT34 ((uint32_t)0x00000040)
#define CAN_FWR1_FACT35 ((uint32_t)0x00000080)
#define CAN_FWR1_FACT36 ((uint32_t)0x00000100)
#define CAN_FWR1_FACT37 ((uint32_t)0x00000200)
#define CAN_FWR1_FACT38 ((uint32_t)0x00000400)
#define CAN_FWR1_FACT39 ((uint32_t)0x00000800)
#define CAN_FWR1_FACT40 ((uint32_t)0x00001000)
#define CAN_FWR1_FACT41 ((uint32_t)0x00002000)
/******************** Bit definition for CAN_F0R1 register ********************/
#define CAN_F0R1_FB0 ((uint32_t)0x00000001)
#define CAN_F0R1_FB1 ((uint32_t)0x00000002)
#define CAN_F0R1_FB2 ((uint32_t)0x00000004)
#define CAN_F0R1_FB3 ((uint32_t)0x00000008)
#define CAN_F0R1_FB4 ((uint32_t)0x00000010)
#define CAN_F0R1_FB5 ((uint32_t)0x00000020)
#define CAN_F0R1_FB6 ((uint32_t)0x00000040)
#define CAN_F0R1_FB7 ((uint32_t)0x00000080)
#define CAN_F0R1_FB8 ((uint32_t)0x00000100)
#define CAN_F0R1_FB9 ((uint32_t)0x00000200)
#define CAN_F0R1_FB10 ((uint32_t)0x00000400)
#define CAN_F0R1_FB11 ((uint32_t)0x00000800)
#define CAN_F0R1_FB12 ((uint32_t)0x00001000)
#define CAN_F0R1_FB13 ((uint32_t)0x00002000)
#define CAN_F0R1_FB14 ((uint32_t)0x00004000)
#define CAN_F0R1_FB15 ((uint32_t)0x00008000)
#define CAN_F0R1_FB16 ((uint32_t)0x00010000)
#define CAN_F0R1_FB17 ((uint32_t)0x00020000)
#define CAN_F0R1_FB18 ((uint32_t)0x00040000)
#define CAN_F0R1_FB19 ((uint32_t)0x00080000)
#define CAN_F0R1_FB20 ((uint32_t)0x00100000)
#define CAN_F0R1_FB21 ((uint32_t)0x00200000)
#define CAN_F0R1_FB22 ((uint32_t)0x00400000)
#define CAN_F0R1_FB23 ((uint32_t)0x00800000)
#define CAN_F0R1_FB24 ((uint32_t)0x01000000)
#define CAN_F0R1_FB25 ((uint32_t)0x02000000)
#define CAN_F0R1_FB26 ((uint32_t)0x04000000)
#define CAN_F0R1_FB27 ((uint32_t)0x08000000)
#define CAN_F0R1_FB28 ((uint32_t)0x10000000)
#define CAN_F0R1_FB29 ((uint32_t)0x20000000)
#define CAN_F0R1_FB30 ((uint32_t)0x40000000)
#define CAN_F0R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F1R1 register ********************/
#define CAN_F1R1_FB0 ((uint32_t)0x00000001)
#define CAN_F1R1_FB1 ((uint32_t)0x00000002)
#define CAN_F1R1_FB2 ((uint32_t)0x00000004)
#define CAN_F1R1_FB3 ((uint32_t)0x00000008)
#define CAN_F1R1_FB4 ((uint32_t)0x00000010)
#define CAN_F1R1_FB5 ((uint32_t)0x00000020)
#define CAN_F1R1_FB6 ((uint32_t)0x00000040)
#define CAN_F1R1_FB7 ((uint32_t)0x00000080)
#define CAN_F1R1_FB8 ((uint32_t)0x00000100)
#define CAN_F1R1_FB9 ((uint32_t)0x00000200)
#define CAN_F1R1_FB10 ((uint32_t)0x00000400)
#define CAN_F1R1_FB11 ((uint32_t)0x00000800)
#define CAN_F1R1_FB12 ((uint32_t)0x00001000)
#define CAN_F1R1_FB13 ((uint32_t)0x00002000)
#define CAN_F1R1_FB14 ((uint32_t)0x00004000)
#define CAN_F1R1_FB15 ((uint32_t)0x00008000)
#define CAN_F1R1_FB16 ((uint32_t)0x00010000)
#define CAN_F1R1_FB17 ((uint32_t)0x00020000)
#define CAN_F1R1_FB18 ((uint32_t)0x00040000)
#define CAN_F1R1_FB19 ((uint32_t)0x00080000)
#define CAN_F1R1_FB20 ((uint32_t)0x00100000)
#define CAN_F1R1_FB21 ((uint32_t)0x00200000)
#define CAN_F1R1_FB22 ((uint32_t)0x00400000)
#define CAN_F1R1_FB23 ((uint32_t)0x00800000)
#define CAN_F1R1_FB24 ((uint32_t)0x01000000)
#define CAN_F1R1_FB25 ((uint32_t)0x02000000)
#define CAN_F1R1_FB26 ((uint32_t)0x04000000)
#define CAN_F1R1_FB27 ((uint32_t)0x08000000)
#define CAN_F1R1_FB28 ((uint32_t)0x10000000)
#define CAN_F1R1_FB29 ((uint32_t)0x20000000)
#define CAN_F1R1_FB30 ((uint32_t)0x40000000)
#define CAN_F1R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F2R1 register ********************/
#define CAN_F2R1_FB0 ((uint32_t)0x00000001)
#define CAN_F2R1_FB1 ((uint32_t)0x00000002)
#define CAN_F2R1_FB2 ((uint32_t)0x00000004)
#define CAN_F2R1_FB3 ((uint32_t)0x00000008)
#define CAN_F2R1_FB4 ((uint32_t)0x00000010)
#define CAN_F2R1_FB5 ((uint32_t)0x00000020)
#define CAN_F2R1_FB6 ((uint32_t)0x00000040)
#define CAN_F2R1_FB7 ((uint32_t)0x00000080)
#define CAN_F2R1_FB8 ((uint32_t)0x00000100)
#define CAN_F2R1_FB9 ((uint32_t)0x00000200)
#define CAN_F2R1_FB10 ((uint32_t)0x00000400)
#define CAN_F2R1_FB11 ((uint32_t)0x00000800)
#define CAN_F2R1_FB12 ((uint32_t)0x00001000)
#define CAN_F2R1_FB13 ((uint32_t)0x00002000)
#define CAN_F2R1_FB14 ((uint32_t)0x00004000)
#define CAN_F2R1_FB15 ((uint32_t)0x00008000)
#define CAN_F2R1_FB16 ((uint32_t)0x00010000)
#define CAN_F2R1_FB17 ((uint32_t)0x00020000)
#define CAN_F2R1_FB18 ((uint32_t)0x00040000)
#define CAN_F2R1_FB19 ((uint32_t)0x00080000)
#define CAN_F2R1_FB20 ((uint32_t)0x00100000)
#define CAN_F2R1_FB21 ((uint32_t)0x00200000)
#define CAN_F2R1_FB22 ((uint32_t)0x00400000)
#define CAN_F2R1_FB23 ((uint32_t)0x00800000)
#define CAN_F2R1_FB24 ((uint32_t)0x01000000)
#define CAN_F2R1_FB25 ((uint32_t)0x02000000)
#define CAN_F2R1_FB26 ((uint32_t)0x04000000)
#define CAN_F2R1_FB27 ((uint32_t)0x08000000)
#define CAN_F2R1_FB28 ((uint32_t)0x10000000)
#define CAN_F2R1_FB29 ((uint32_t)0x20000000)
#define CAN_F2R1_FB30 ((uint32_t)0x40000000)
#define CAN_F2R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F3R1 register ********************/
#define CAN_F3R1_FB0 ((uint32_t)0x00000001)
#define CAN_F3R1_FB1 ((uint32_t)0x00000002)
#define CAN_F3R1_FB2 ((uint32_t)0x00000004)
#define CAN_F3R1_FB3 ((uint32_t)0x00000008)
#define CAN_F3R1_FB4 ((uint32_t)0x00000010)
#define CAN_F3R1_FB5 ((uint32_t)0x00000020)
#define CAN_F3R1_FB6 ((uint32_t)0x00000040)
#define CAN_F3R1_FB7 ((uint32_t)0x00000080)
#define CAN_F3R1_FB8 ((uint32_t)0x00000100)
#define CAN_F3R1_FB9 ((uint32_t)0x00000200)
#define CAN_F3R1_FB10 ((uint32_t)0x00000400)
#define CAN_F3R1_FB11 ((uint32_t)0x00000800)
#define CAN_F3R1_FB12 ((uint32_t)0x00001000)
#define CAN_F3R1_FB13 ((uint32_t)0x00002000)
#define CAN_F3R1_FB14 ((uint32_t)0x00004000)
#define CAN_F3R1_FB15 ((uint32_t)0x00008000)
#define CAN_F3R1_FB16 ((uint32_t)0x00010000)
#define CAN_F3R1_FB17 ((uint32_t)0x00020000)
#define CAN_F3R1_FB18 ((uint32_t)0x00040000)
#define CAN_F3R1_FB19 ((uint32_t)0x00080000)
#define CAN_F3R1_FB20 ((uint32_t)0x00100000)
#define CAN_F3R1_FB21 ((uint32_t)0x00200000)
#define CAN_F3R1_FB22 ((uint32_t)0x00400000)
#define CAN_F3R1_FB23 ((uint32_t)0x00800000)
#define CAN_F3R1_FB24 ((uint32_t)0x01000000)
#define CAN_F3R1_FB25 ((uint32_t)0x02000000)
#define CAN_F3R1_FB26 ((uint32_t)0x04000000)
#define CAN_F3R1_FB27 ((uint32_t)0x08000000)
#define CAN_F3R1_FB28 ((uint32_t)0x10000000)
#define CAN_F3R1_FB29 ((uint32_t)0x20000000)
#define CAN_F3R1_FB30 ((uint32_t)0x40000000)
#define CAN_F3R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F4R1 register ********************/
#define CAN_F4R1_FB0 ((uint32_t)0x00000001)
#define CAN_F4R1_FB1 ((uint32_t)0x00000002)
#define CAN_F4R1_FB2 ((uint32_t)0x00000004)
#define CAN_F4R1_FB3 ((uint32_t)0x00000008)
#define CAN_F4R1_FB4 ((uint32_t)0x00000010)
#define CAN_F4R1_FB5 ((uint32_t)0x00000020)
#define CAN_F4R1_FB6 ((uint32_t)0x00000040)
#define CAN_F4R1_FB7 ((uint32_t)0x00000080)
#define CAN_F4R1_FB8 ((uint32_t)0x00000100)
#define CAN_F4R1_FB9 ((uint32_t)0x00000200)
#define CAN_F4R1_FB10 ((uint32_t)0x00000400)
#define CAN_F4R1_FB11 ((uint32_t)0x00000800)
#define CAN_F4R1_FB12 ((uint32_t)0x00001000)
#define CAN_F4R1_FB13 ((uint32_t)0x00002000)
#define CAN_F4R1_FB14 ((uint32_t)0x00004000)
#define CAN_F4R1_FB15 ((uint32_t)0x00008000)
#define CAN_F4R1_FB16 ((uint32_t)0x00010000)
#define CAN_F4R1_FB17 ((uint32_t)0x00020000)
#define CAN_F4R1_FB18 ((uint32_t)0x00040000)
#define CAN_F4R1_FB19 ((uint32_t)0x00080000)
#define CAN_F4R1_FB20 ((uint32_t)0x00100000)
#define CAN_F4R1_FB21 ((uint32_t)0x00200000)
#define CAN_F4R1_FB22 ((uint32_t)0x00400000)
#define CAN_F4R1_FB23 ((uint32_t)0x00800000)
#define CAN_F4R1_FB24 ((uint32_t)0x01000000)
#define CAN_F4R1_FB25 ((uint32_t)0x02000000)
#define CAN_F4R1_FB26 ((uint32_t)0x04000000)
#define CAN_F4R1_FB27 ((uint32_t)0x08000000)
#define CAN_F4R1_FB28 ((uint32_t)0x10000000)
#define CAN_F4R1_FB29 ((uint32_t)0x20000000)
#define CAN_F4R1_FB30 ((uint32_t)0x40000000)
#define CAN_F4R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F5R1 register ********************/
#define CAN_F5R1_FB0 ((uint32_t)0x00000001)
#define CAN_F5R1_FB1 ((uint32_t)0x00000002)
#define CAN_F5R1_FB2 ((uint32_t)0x00000004)
#define CAN_F5R1_FB3 ((uint32_t)0x00000008)
#define CAN_F5R1_FB4 ((uint32_t)0x00000010)
#define CAN_F5R1_FB5 ((uint32_t)0x00000020)
#define CAN_F5R1_FB6 ((uint32_t)0x00000040)
#define CAN_F5R1_FB7 ((uint32_t)0x00000080)
#define CAN_F5R1_FB8 ((uint32_t)0x00000100)
#define CAN_F5R1_FB9 ((uint32_t)0x00000200)
#define CAN_F5R1_FB10 ((uint32_t)0x00000400)
#define CAN_F5R1_FB11 ((uint32_t)0x00000800)
#define CAN_F5R1_FB12 ((uint32_t)0x00001000)
#define CAN_F5R1_FB13 ((uint32_t)0x00002000)
#define CAN_F5R1_FB14 ((uint32_t)0x00004000)
#define CAN_F5R1_FB15 ((uint32_t)0x00008000)
#define CAN_F5R1_FB16 ((uint32_t)0x00010000)
#define CAN_F5R1_FB17 ((uint32_t)0x00020000)
#define CAN_F5R1_FB18 ((uint32_t)0x00040000)
#define CAN_F5R1_FB19 ((uint32_t)0x00080000)
#define CAN_F5R1_FB20 ((uint32_t)0x00100000)
#define CAN_F5R1_FB21 ((uint32_t)0x00200000)
#define CAN_F5R1_FB22 ((uint32_t)0x00400000)
#define CAN_F5R1_FB23 ((uint32_t)0x00800000)
#define CAN_F5R1_FB24 ((uint32_t)0x01000000)
#define CAN_F5R1_FB25 ((uint32_t)0x02000000)
#define CAN_F5R1_FB26 ((uint32_t)0x04000000)
#define CAN_F5R1_FB27 ((uint32_t)0x08000000)
#define CAN_F5R1_FB28 ((uint32_t)0x10000000)
#define CAN_F5R1_FB29 ((uint32_t)0x20000000)
#define CAN_F5R1_FB30 ((uint32_t)0x40000000)
#define CAN_F5R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F6R1 register ********************/
#define CAN_F6R1_FB0 ((uint32_t)0x00000001)
#define CAN_F6R1_FB1 ((uint32_t)0x00000002)
#define CAN_F6R1_FB2 ((uint32_t)0x00000004)
#define CAN_F6R1_FB3 ((uint32_t)0x00000008)
#define CAN_F6R1_FB4 ((uint32_t)0x00000010)
#define CAN_F6R1_FB5 ((uint32_t)0x00000020)
#define CAN_F6R1_FB6 ((uint32_t)0x00000040)
#define CAN_F6R1_FB7 ((uint32_t)0x00000080)
#define CAN_F6R1_FB8 ((uint32_t)0x00000100)
#define CAN_F6R1_FB9 ((uint32_t)0x00000200)
#define CAN_F6R1_FB10 ((uint32_t)0x00000400)
#define CAN_F6R1_FB11 ((uint32_t)0x00000800)
#define CAN_F6R1_FB12 ((uint32_t)0x00001000)
#define CAN_F6R1_FB13 ((uint32_t)0x00002000)
#define CAN_F6R1_FB14 ((uint32_t)0x00004000)
#define CAN_F6R1_FB15 ((uint32_t)0x00008000)
#define CAN_F6R1_FB16 ((uint32_t)0x00010000)
#define CAN_F6R1_FB17 ((uint32_t)0x00020000)
#define CAN_F6R1_FB18 ((uint32_t)0x00040000)
#define CAN_F6R1_FB19 ((uint32_t)0x00080000)
#define CAN_F6R1_FB20 ((uint32_t)0x00100000)
#define CAN_F6R1_FB21 ((uint32_t)0x00200000)
#define CAN_F6R1_FB22 ((uint32_t)0x00400000)
#define CAN_F6R1_FB23 ((uint32_t)0x00800000)
#define CAN_F6R1_FB24 ((uint32_t)0x01000000)
#define CAN_F6R1_FB25 ((uint32_t)0x02000000)
#define CAN_F6R1_FB26 ((uint32_t)0x04000000)
#define CAN_F6R1_FB27 ((uint32_t)0x08000000)
#define CAN_F6R1_FB28 ((uint32_t)0x10000000)
#define CAN_F6R1_FB29 ((uint32_t)0x20000000)
#define CAN_F6R1_FB30 ((uint32_t)0x40000000)
#define CAN_F6R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F7R1 register ********************/
#define CAN_F7R1_FB0 ((uint32_t)0x00000001)
#define CAN_F7R1_FB1 ((uint32_t)0x00000002)
#define CAN_F7R1_FB2 ((uint32_t)0x00000004)
#define CAN_F7R1_FB3 ((uint32_t)0x00000008)
#define CAN_F7R1_FB4 ((uint32_t)0x00000010)
#define CAN_F7R1_FB5 ((uint32_t)0x00000020)
#define CAN_F7R1_FB6 ((uint32_t)0x00000040)
#define CAN_F7R1_FB7 ((uint32_t)0x00000080)
#define CAN_F7R1_FB8 ((uint32_t)0x00000100)
#define CAN_F7R1_FB9 ((uint32_t)0x00000200)
#define CAN_F7R1_FB10 ((uint32_t)0x00000400)
#define CAN_F7R1_FB11 ((uint32_t)0x00000800)
#define CAN_F7R1_FB12 ((uint32_t)0x00001000)
#define CAN_F7R1_FB13 ((uint32_t)0x00002000)
#define CAN_F7R1_FB14 ((uint32_t)0x00004000)
#define CAN_F7R1_FB15 ((uint32_t)0x00008000)
#define CAN_F7R1_FB16 ((uint32_t)0x00010000)
#define CAN_F7R1_FB17 ((uint32_t)0x00020000)
#define CAN_F7R1_FB18 ((uint32_t)0x00040000)
#define CAN_F7R1_FB19 ((uint32_t)0x00080000)
#define CAN_F7R1_FB20 ((uint32_t)0x00100000)
#define CAN_F7R1_FB21 ((uint32_t)0x00200000)
#define CAN_F7R1_FB22 ((uint32_t)0x00400000)
#define CAN_F7R1_FB23 ((uint32_t)0x00800000)
#define CAN_F7R1_FB24 ((uint32_t)0x01000000)
#define CAN_F7R1_FB25 ((uint32_t)0x02000000)
#define CAN_F7R1_FB26 ((uint32_t)0x04000000)
#define CAN_F7R1_FB27 ((uint32_t)0x08000000)
#define CAN_F7R1_FB28 ((uint32_t)0x10000000)
#define CAN_F7R1_FB29 ((uint32_t)0x20000000)
#define CAN_F7R1_FB30 ((uint32_t)0x40000000)
#define CAN_F7R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F8R1 register ********************/
#define CAN_F8R1_FB0 ((uint32_t)0x00000001)
#define CAN_F8R1_FB1 ((uint32_t)0x00000002)
#define CAN_F8R1_FB2 ((uint32_t)0x00000004)
#define CAN_F8R1_FB3 ((uint32_t)0x00000008)
#define CAN_F8R1_FB4 ((uint32_t)0x00000010)
#define CAN_F8R1_FB5 ((uint32_t)0x00000020)
#define CAN_F8R1_FB6 ((uint32_t)0x00000040)
#define CAN_F8R1_FB7 ((uint32_t)0x00000080)
#define CAN_F8R1_FB8 ((uint32_t)0x00000100)
#define CAN_F8R1_FB9 ((uint32_t)0x00000200)
#define CAN_F8R1_FB10 ((uint32_t)0x00000400)
#define CAN_F8R1_FB11 ((uint32_t)0x00000800)
#define CAN_F8R1_FB12 ((uint32_t)0x00001000)
#define CAN_F8R1_FB13 ((uint32_t)0x00002000)
#define CAN_F8R1_FB14 ((uint32_t)0x00004000)
#define CAN_F8R1_FB15 ((uint32_t)0x00008000)
#define CAN_F8R1_FB16 ((uint32_t)0x00010000)
#define CAN_F8R1_FB17 ((uint32_t)0x00020000)
#define CAN_F8R1_FB18 ((uint32_t)0x00040000)
#define CAN_F8R1_FB19 ((uint32_t)0x00080000)
#define CAN_F8R1_FB20 ((uint32_t)0x00100000)
#define CAN_F8R1_FB21 ((uint32_t)0x00200000)
#define CAN_F8R1_FB22 ((uint32_t)0x00400000)
#define CAN_F8R1_FB23 ((uint32_t)0x00800000)
#define CAN_F8R1_FB24 ((uint32_t)0x01000000)
#define CAN_F8R1_FB25 ((uint32_t)0x02000000)
#define CAN_F8R1_FB26 ((uint32_t)0x04000000)
#define CAN_F8R1_FB27 ((uint32_t)0x08000000)
#define CAN_F8R1_FB28 ((uint32_t)0x10000000)
#define CAN_F8R1_FB29 ((uint32_t)0x20000000)
#define CAN_F8R1_FB30 ((uint32_t)0x40000000)
#define CAN_F8R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F9R1 register ********************/
#define CAN_F9R1_FB0 ((uint32_t)0x00000001)
#define CAN_F9R1_FB1 ((uint32_t)0x00000002)
#define CAN_F9R1_FB2 ((uint32_t)0x00000004)
#define CAN_F9R1_FB3 ((uint32_t)0x00000008)
#define CAN_F9R1_FB4 ((uint32_t)0x00000010)
#define CAN_F9R1_FB5 ((uint32_t)0x00000020)
#define CAN_F9R1_FB6 ((uint32_t)0x00000040)
#define CAN_F9R1_FB7 ((uint32_t)0x00000080)
#define CAN_F9R1_FB8 ((uint32_t)0x00000100)
#define CAN_F9R1_FB9 ((uint32_t)0x00000200)
#define CAN_F9R1_FB10 ((uint32_t)0x00000400)
#define CAN_F9R1_FB11 ((uint32_t)0x00000800)
#define CAN_F9R1_FB12 ((uint32_t)0x00001000)
#define CAN_F9R1_FB13 ((uint32_t)0x00002000)
#define CAN_F9R1_FB14 ((uint32_t)0x00004000)
#define CAN_F9R1_FB15 ((uint32_t)0x00008000)
#define CAN_F9R1_FB16 ((uint32_t)0x00010000)
#define CAN_F9R1_FB17 ((uint32_t)0x00020000)
#define CAN_F9R1_FB18 ((uint32_t)0x00040000)
#define CAN_F9R1_FB19 ((uint32_t)0x00080000)
#define CAN_F9R1_FB20 ((uint32_t)0x00100000)
#define CAN_F9R1_FB21 ((uint32_t)0x00200000)
#define CAN_F9R1_FB22 ((uint32_t)0x00400000)
#define CAN_F9R1_FB23 ((uint32_t)0x00800000)
#define CAN_F9R1_FB24 ((uint32_t)0x01000000)
#define CAN_F9R1_FB25 ((uint32_t)0x02000000)
#define CAN_F9R1_FB26 ((uint32_t)0x04000000)
#define CAN_F9R1_FB27 ((uint32_t)0x08000000)
#define CAN_F9R1_FB28 ((uint32_t)0x10000000)
#define CAN_F9R1_FB29 ((uint32_t)0x20000000)
#define CAN_F9R1_FB30 ((uint32_t)0x40000000)
#define CAN_F9R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F10R1 register ********************/
#define CAN_F10R1_FB0 ((uint32_t)0x00000001)
#define CAN_F10R1_FB1 ((uint32_t)0x00000002)
#define CAN_F10R1_FB2 ((uint32_t)0x00000004)
#define CAN_F10R1_FB3 ((uint32_t)0x00000008)
#define CAN_F10R1_FB4 ((uint32_t)0x00000010)
#define CAN_F10R1_FB5 ((uint32_t)0x00000020)
#define CAN_F10R1_FB6 ((uint32_t)0x00000040)
#define CAN_F10R1_FB7 ((uint32_t)0x00000080)
#define CAN_F10R1_FB8 ((uint32_t)0x00000100)
#define CAN_F10R1_FB9 ((uint32_t)0x00000200)
#define CAN_F10R1_FB10 ((uint32_t)0x00000400)
#define CAN_F10R1_FB11 ((uint32_t)0x00000800)
#define CAN_F10R1_FB12 ((uint32_t)0x00001000)
#define CAN_F10R1_FB13 ((uint32_t)0x00002000)
#define CAN_F10R1_FB14 ((uint32_t)0x00004000)
#define CAN_F10R1_FB15 ((uint32_t)0x00008000)
#define CAN_F10R1_FB16 ((uint32_t)0x00010000)
#define CAN_F10R1_FB17 ((uint32_t)0x00020000)
#define CAN_F10R1_FB18 ((uint32_t)0x00040000)
#define CAN_F10R1_FB19 ((uint32_t)0x00080000)
#define CAN_F10R1_FB20 ((uint32_t)0x00100000)
#define CAN_F10R1_FB21 ((uint32_t)0x00200000)
#define CAN_F10R1_FB22 ((uint32_t)0x00400000)
#define CAN_F10R1_FB23 ((uint32_t)0x00800000)
#define CAN_F10R1_FB24 ((uint32_t)0x01000000)
#define CAN_F10R1_FB25 ((uint32_t)0x02000000)
#define CAN_F10R1_FB26 ((uint32_t)0x04000000)
#define CAN_F10R1_FB27 ((uint32_t)0x08000000)
#define CAN_F10R1_FB28 ((uint32_t)0x10000000)
#define CAN_F10R1_FB29 ((uint32_t)0x20000000)
#define CAN_F10R1_FB30 ((uint32_t)0x40000000)
#define CAN_F10R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F11R1 register ********************/
#define CAN_F11R1_FB0 ((uint32_t)0x00000001)
#define CAN_F11R1_FB1 ((uint32_t)0x00000002)
#define CAN_F11R1_FB2 ((uint32_t)0x00000004)
#define CAN_F11R1_FB3 ((uint32_t)0x00000008)
#define CAN_F11R1_FB4 ((uint32_t)0x00000010)
#define CAN_F11R1_FB5 ((uint32_t)0x00000020)
#define CAN_F11R1_FB6 ((uint32_t)0x00000040)
#define CAN_F11R1_FB7 ((uint32_t)0x00000080)
#define CAN_F11R1_FB8 ((uint32_t)0x00000100)
#define CAN_F11R1_FB9 ((uint32_t)0x00000200)
#define CAN_F11R1_FB10 ((uint32_t)0x00000400)
#define CAN_F11R1_FB11 ((uint32_t)0x00000800)
#define CAN_F11R1_FB12 ((uint32_t)0x00001000)
#define CAN_F11R1_FB13 ((uint32_t)0x00002000)
#define CAN_F11R1_FB14 ((uint32_t)0x00004000)
#define CAN_F11R1_FB15 ((uint32_t)0x00008000)
#define CAN_F11R1_FB16 ((uint32_t)0x00010000)
#define CAN_F11R1_FB17 ((uint32_t)0x00020000)
#define CAN_F11R1_FB18 ((uint32_t)0x00040000)
#define CAN_F11R1_FB19 ((uint32_t)0x00080000)
#define CAN_F11R1_FB20 ((uint32_t)0x00100000)
#define CAN_F11R1_FB21 ((uint32_t)0x00200000)
#define CAN_F11R1_FB22 ((uint32_t)0x00400000)
#define CAN_F11R1_FB23 ((uint32_t)0x00800000)
#define CAN_F11R1_FB24 ((uint32_t)0x01000000)
#define CAN_F11R1_FB25 ((uint32_t)0x02000000)
#define CAN_F11R1_FB26 ((uint32_t)0x04000000)
#define CAN_F11R1_FB27 ((uint32_t)0x08000000)
#define CAN_F11R1_FB28 ((uint32_t)0x10000000)
#define CAN_F11R1_FB29 ((uint32_t)0x20000000)
#define CAN_F11R1_FB30 ((uint32_t)0x40000000)
#define CAN_F11R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F12R1 register ********************/
#define CAN_F12R1_FB0 ((uint32_t)0x00000001)
#define CAN_F12R1_FB1 ((uint32_t)0x00000002)
#define CAN_F12R1_FB2 ((uint32_t)0x00000004)
#define CAN_F12R1_FB3 ((uint32_t)0x00000008)
#define CAN_F12R1_FB4 ((uint32_t)0x00000010)
#define CAN_F12R1_FB5 ((uint32_t)0x00000020)
#define CAN_F12R1_FB6 ((uint32_t)0x00000040)
#define CAN_F12R1_FB7 ((uint32_t)0x00000080)
#define CAN_F12R1_FB8 ((uint32_t)0x00000100)
#define CAN_F12R1_FB9 ((uint32_t)0x00000200)
#define CAN_F12R1_FB10 ((uint32_t)0x00000400)
#define CAN_F12R1_FB11 ((uint32_t)0x00000800)
#define CAN_F12R1_FB12 ((uint32_t)0x00001000)
#define CAN_F12R1_FB13 ((uint32_t)0x00002000)
#define CAN_F12R1_FB14 ((uint32_t)0x00004000)
#define CAN_F12R1_FB15 ((uint32_t)0x00008000)
#define CAN_F12R1_FB16 ((uint32_t)0x00010000)
#define CAN_F12R1_FB17 ((uint32_t)0x00020000)
#define CAN_F12R1_FB18 ((uint32_t)0x00040000)
#define CAN_F12R1_FB19 ((uint32_t)0x00080000)
#define CAN_F12R1_FB20 ((uint32_t)0x00100000)
#define CAN_F12R1_FB21 ((uint32_t)0x00200000)
#define CAN_F12R1_FB22 ((uint32_t)0x00400000)
#define CAN_F12R1_FB23 ((uint32_t)0x00800000)
#define CAN_F12R1_FB24 ((uint32_t)0x01000000)
#define CAN_F12R1_FB25 ((uint32_t)0x02000000)
#define CAN_F12R1_FB26 ((uint32_t)0x04000000)
#define CAN_F12R1_FB27 ((uint32_t)0x08000000)
#define CAN_F12R1_FB28 ((uint32_t)0x10000000)
#define CAN_F12R1_FB29 ((uint32_t)0x20000000)
#define CAN_F12R1_FB30 ((uint32_t)0x40000000)
#define CAN_F12R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F13R1 register ********************/
#define CAN_F13R1_FB0 ((uint32_t)0x00000001)
#define CAN_F13R1_FB1 ((uint32_t)0x00000002)
#define CAN_F13R1_FB2 ((uint32_t)0x00000004)
#define CAN_F13R1_FB3 ((uint32_t)0x00000008)
#define CAN_F13R1_FB4 ((uint32_t)0x00000010)
#define CAN_F13R1_FB5 ((uint32_t)0x00000020)
#define CAN_F13R1_FB6 ((uint32_t)0x00000040)
#define CAN_F13R1_FB7 ((uint32_t)0x00000080)
#define CAN_F13R1_FB8 ((uint32_t)0x00000100)
#define CAN_F13R1_FB9 ((uint32_t)0x00000200)
#define CAN_F13R1_FB10 ((uint32_t)0x00000400)
#define CAN_F13R1_FB11 ((uint32_t)0x00000800)
#define CAN_F13R1_FB12 ((uint32_t)0x00001000)
#define CAN_F13R1_FB13 ((uint32_t)0x00002000)
#define CAN_F13R1_FB14 ((uint32_t)0x00004000)
#define CAN_F13R1_FB15 ((uint32_t)0x00008000)
#define CAN_F13R1_FB16 ((uint32_t)0x00010000)
#define CAN_F13R1_FB17 ((uint32_t)0x00020000)
#define CAN_F13R1_FB18 ((uint32_t)0x00040000)
#define CAN_F13R1_FB19 ((uint32_t)0x00080000)
#define CAN_F13R1_FB20 ((uint32_t)0x00100000)
#define CAN_F13R1_FB21 ((uint32_t)0x00200000)
#define CAN_F13R1_FB22 ((uint32_t)0x00400000)
#define CAN_F13R1_FB23 ((uint32_t)0x00800000)
#define CAN_F13R1_FB24 ((uint32_t)0x01000000)
#define CAN_F13R1_FB25 ((uint32_t)0x02000000)
#define CAN_F13R1_FB26 ((uint32_t)0x04000000)
#define CAN_F13R1_FB27 ((uint32_t)0x08000000)
#define CAN_F13R1_FB28 ((uint32_t)0x10000000)
#define CAN_F13R1_FB29 ((uint32_t)0x20000000)
#define CAN_F13R1_FB30 ((uint32_t)0x40000000)
#define CAN_F13R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F14R1 register ********************/
#define CAN_F14R1_FB0 ((uint32_t)0x00000001)
#define CAN_F14R1_FB1 ((uint32_t)0x00000002)
#define CAN_F14R1_FB2 ((uint32_t)0x00000004)
#define CAN_F14R1_FB3 ((uint32_t)0x00000008)
#define CAN_F14R1_FB4 ((uint32_t)0x00000010)
#define CAN_F14R1_FB5 ((uint32_t)0x00000020)
#define CAN_F14R1_FB6 ((uint32_t)0x00000040)
#define CAN_F14R1_FB7 ((uint32_t)0x00000080)
#define CAN_F14R1_FB8 ((uint32_t)0x00000100)
#define CAN_F14R1_FB9 ((uint32_t)0x00000200)
#define CAN_F14R1_FB10 ((uint32_t)0x00000400)
#define CAN_F14R1_FB11 ((uint32_t)0x00000800)
#define CAN_F14R1_FB12 ((uint32_t)0x00001000)
#define CAN_F14R1_FB13 ((uint32_t)0x00002000)
#define CAN_F14R1_FB14 ((uint32_t)0x00004000)
#define CAN_F14R1_FB15 ((uint32_t)0x00008000)
#define CAN_F14R1_FB16 ((uint32_t)0x00010000)
#define CAN_F14R1_FB17 ((uint32_t)0x00020000)
#define CAN_F14R1_FB18 ((uint32_t)0x00040000)
#define CAN_F14R1_FB19 ((uint32_t)0x00080000)
#define CAN_F14R1_FB20 ((uint32_t)0x00100000)
#define CAN_F14R1_FB21 ((uint32_t)0x00200000)
#define CAN_F14R1_FB22 ((uint32_t)0x00400000)
#define CAN_F14R1_FB23 ((uint32_t)0x00800000)
#define CAN_F14R1_FB24 ((uint32_t)0x01000000)
#define CAN_F14R1_FB25 ((uint32_t)0x02000000)
#define CAN_F14R1_FB26 ((uint32_t)0x04000000)
#define CAN_F14R1_FB27 ((uint32_t)0x08000000)
#define CAN_F14R1_FB28 ((uint32_t)0x10000000)
#define CAN_F14R1_FB29 ((uint32_t)0x20000000)
#define CAN_F14R1_FB30 ((uint32_t)0x40000000)
#define CAN_F14R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F15R1 register ********************/
#define CAN_F15R1_FB0 ((uint32_t)0x00000001)
#define CAN_F15R1_FB1 ((uint32_t)0x00000002)
#define CAN_F15R1_FB2 ((uint32_t)0x00000004)
#define CAN_F15R1_FB3 ((uint32_t)0x00000008)
#define CAN_F15R1_FB4 ((uint32_t)0x00000010)
#define CAN_F15R1_FB5 ((uint32_t)0x00000020)
#define CAN_F15R1_FB6 ((uint32_t)0x00000040)
#define CAN_F15R1_FB7 ((uint32_t)0x00000080)
#define CAN_F15R1_FB8 ((uint32_t)0x00000100)
#define CAN_F15R1_FB9 ((uint32_t)0x00000200)
#define CAN_F15R1_FB10 ((uint32_t)0x00000400)
#define CAN_F15R1_FB11 ((uint32_t)0x00000800)
#define CAN_F15R1_FB12 ((uint32_t)0x00001000)
#define CAN_F15R1_FB13 ((uint32_t)0x00002000)
#define CAN_F15R1_FB14 ((uint32_t)0x00004000)
#define CAN_F15R1_FB15 ((uint32_t)0x00008000)
#define CAN_F15R1_FB16 ((uint32_t)0x00010000)
#define CAN_F15R1_FB17 ((uint32_t)0x00020000)
#define CAN_F15R1_FB18 ((uint32_t)0x00040000)
#define CAN_F15R1_FB19 ((uint32_t)0x00080000)
#define CAN_F15R1_FB20 ((uint32_t)0x00100000)
#define CAN_F15R1_FB21 ((uint32_t)0x00200000)
#define CAN_F15R1_FB22 ((uint32_t)0x00400000)
#define CAN_F15R1_FB23 ((uint32_t)0x00800000)
#define CAN_F15R1_FB24 ((uint32_t)0x01000000)
#define CAN_F15R1_FB25 ((uint32_t)0x02000000)
#define CAN_F15R1_FB26 ((uint32_t)0x04000000)
#define CAN_F15R1_FB27 ((uint32_t)0x08000000)
#define CAN_F15R1_FB28 ((uint32_t)0x10000000)
#define CAN_F15R1_FB29 ((uint32_t)0x20000000)
#define CAN_F15R1_FB30 ((uint32_t)0x40000000)
#define CAN_F15R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F16R1 register ********************/
#define CAN_F16R1_FB0 ((uint32_t)0x00000001)
#define CAN_F16R1_FB1 ((uint32_t)0x00000002)
#define CAN_F16R1_FB2 ((uint32_t)0x00000004)
#define CAN_F16R1_FB3 ((uint32_t)0x00000008)
#define CAN_F16R1_FB4 ((uint32_t)0x00000010)
#define CAN_F16R1_FB5 ((uint32_t)0x00000020)
#define CAN_F16R1_FB6 ((uint32_t)0x00000040)
#define CAN_F16R1_FB7 ((uint32_t)0x00000080)
#define CAN_F16R1_FB8 ((uint32_t)0x00000100)
#define CAN_F16R1_FB9 ((uint32_t)0x00000200)
#define CAN_F16R1_FB10 ((uint32_t)0x00000400)
#define CAN_F16R1_FB11 ((uint32_t)0x00000800)
#define CAN_F16R1_FB12 ((uint32_t)0x00001000)
#define CAN_F16R1_FB13 ((uint32_t)0x00002000)
#define CAN_F16R1_FB14 ((uint32_t)0x00004000)
#define CAN_F16R1_FB15 ((uint32_t)0x00008000)
#define CAN_F16R1_FB16 ((uint32_t)0x00010000)
#define CAN_F16R1_FB17 ((uint32_t)0x00020000)
#define CAN_F16R1_FB18 ((uint32_t)0x00040000)
#define CAN_F16R1_FB19 ((uint32_t)0x00080000)
#define CAN_F16R1_FB20 ((uint32_t)0x00100000)
#define CAN_F16R1_FB21 ((uint32_t)0x00200000)
#define CAN_F16R1_FB22 ((uint32_t)0x00400000)
#define CAN_F16R1_FB23 ((uint32_t)0x00800000)
#define CAN_F16R1_FB24 ((uint32_t)0x01000000)
#define CAN_F16R1_FB25 ((uint32_t)0x02000000)
#define CAN_F16R1_FB26 ((uint32_t)0x04000000)
#define CAN_F16R1_FB27 ((uint32_t)0x08000000)
#define CAN_F16R1_FB28 ((uint32_t)0x10000000)
#define CAN_F16R1_FB29 ((uint32_t)0x20000000)
#define CAN_F16R1_FB30 ((uint32_t)0x40000000)
#define CAN_F16R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F17R1 register ********************/
#define CAN_F17R1_FB0 ((uint32_t)0x00000001)
#define CAN_F17R1_FB1 ((uint32_t)0x00000002)
#define CAN_F17R1_FB2 ((uint32_t)0x00000004)
#define CAN_F17R1_FB3 ((uint32_t)0x00000008)
#define CAN_F17R1_FB4 ((uint32_t)0x00000010)
#define CAN_F17R1_FB5 ((uint32_t)0x00000020)
#define CAN_F17R1_FB6 ((uint32_t)0x00000040)
#define CAN_F17R1_FB7 ((uint32_t)0x00000080)
#define CAN_F17R1_FB8 ((uint32_t)0x00000100)
#define CAN_F17R1_FB9 ((uint32_t)0x00000200)
#define CAN_F17R1_FB10 ((uint32_t)0x00000400)
#define CAN_F17R1_FB11 ((uint32_t)0x00000800)
#define CAN_F17R1_FB12 ((uint32_t)0x00001000)
#define CAN_F17R1_FB13 ((uint32_t)0x00002000)
#define CAN_F17R1_FB14 ((uint32_t)0x00004000)
#define CAN_F17R1_FB15 ((uint32_t)0x00008000)
#define CAN_F17R1_FB16 ((uint32_t)0x00010000)
#define CAN_F17R1_FB17 ((uint32_t)0x00020000)
#define CAN_F17R1_FB18 ((uint32_t)0x00040000)
#define CAN_F17R1_FB19 ((uint32_t)0x00080000)
#define CAN_F17R1_FB20 ((uint32_t)0x00100000)
#define CAN_F17R1_FB21 ((uint32_t)0x00200000)
#define CAN_F17R1_FB22 ((uint32_t)0x00400000)
#define CAN_F17R1_FB23 ((uint32_t)0x00800000)
#define CAN_F17R1_FB24 ((uint32_t)0x01000000)
#define CAN_F17R1_FB25 ((uint32_t)0x02000000)
#define CAN_F17R1_FB26 ((uint32_t)0x04000000)
#define CAN_F17R1_FB27 ((uint32_t)0x08000000)
#define CAN_F17R1_FB28 ((uint32_t)0x10000000)
#define CAN_F17R1_FB29 ((uint32_t)0x20000000)
#define CAN_F17R1_FB30 ((uint32_t)0x40000000)
#define CAN_F17R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F18R1 register ********************/
#define CAN_F18R1_FB0 ((uint32_t)0x00000001)
#define CAN_F18R1_FB1 ((uint32_t)0x00000002)
#define CAN_F18R1_FB2 ((uint32_t)0x00000004)
#define CAN_F18R1_FB3 ((uint32_t)0x00000008)
#define CAN_F18R1_FB4 ((uint32_t)0x00000010)
#define CAN_F18R1_FB5 ((uint32_t)0x00000020)
#define CAN_F18R1_FB6 ((uint32_t)0x00000040)
#define CAN_F18R1_FB7 ((uint32_t)0x00000080)
#define CAN_F18R1_FB8 ((uint32_t)0x00000100)
#define CAN_F18R1_FB9 ((uint32_t)0x00000200)
#define CAN_F18R1_FB10 ((uint32_t)0x00000400)
#define CAN_F18R1_FB11 ((uint32_t)0x00000800)
#define CAN_F18R1_FB12 ((uint32_t)0x00001000)
#define CAN_F18R1_FB13 ((uint32_t)0x00002000)
#define CAN_F18R1_FB14 ((uint32_t)0x00004000)
#define CAN_F18R1_FB15 ((uint32_t)0x00008000)
#define CAN_F18R1_FB16 ((uint32_t)0x00010000)
#define CAN_F18R1_FB17 ((uint32_t)0x00020000)
#define CAN_F18R1_FB18 ((uint32_t)0x00040000)
#define CAN_F18R1_FB19 ((uint32_t)0x00080000)
#define CAN_F18R1_FB20 ((uint32_t)0x00100000)
#define CAN_F18R1_FB21 ((uint32_t)0x00200000)
#define CAN_F18R1_FB22 ((uint32_t)0x00400000)
#define CAN_F18R1_FB23 ((uint32_t)0x00800000)
#define CAN_F18R1_FB24 ((uint32_t)0x01000000)
#define CAN_F18R1_FB25 ((uint32_t)0x02000000)
#define CAN_F18R1_FB26 ((uint32_t)0x04000000)
#define CAN_F18R1_FB27 ((uint32_t)0x08000000)
#define CAN_F18R1_FB28 ((uint32_t)0x10000000)
#define CAN_F18R1_FB29 ((uint32_t)0x20000000)
#define CAN_F18R1_FB30 ((uint32_t)0x40000000)
#define CAN_F18R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F19R1 register ********************/
#define CAN_F19R1_FB0 ((uint32_t)0x00000001)
#define CAN_F19R1_FB1 ((uint32_t)0x00000002)
#define CAN_F19R1_FB2 ((uint32_t)0x00000004)
#define CAN_F19R1_FB3 ((uint32_t)0x00000008)
#define CAN_F19R1_FB4 ((uint32_t)0x00000010)
#define CAN_F19R1_FB5 ((uint32_t)0x00000020)
#define CAN_F19R1_FB6 ((uint32_t)0x00000040)
#define CAN_F19R1_FB7 ((uint32_t)0x00000080)
#define CAN_F19R1_FB8 ((uint32_t)0x00000100)
#define CAN_F19R1_FB9 ((uint32_t)0x00000200)
#define CAN_F19R1_FB10 ((uint32_t)0x00000400)
#define CAN_F19R1_FB11 ((uint32_t)0x00000800)
#define CAN_F19R1_FB12 ((uint32_t)0x00001000)
#define CAN_F19R1_FB13 ((uint32_t)0x00002000)
#define CAN_F19R1_FB14 ((uint32_t)0x00004000)
#define CAN_F19R1_FB15 ((uint32_t)0x00008000)
#define CAN_F19R1_FB16 ((uint32_t)0x00010000)
#define CAN_F19R1_FB17 ((uint32_t)0x00020000)
#define CAN_F19R1_FB18 ((uint32_t)0x00040000)
#define CAN_F19R1_FB19 ((uint32_t)0x00080000)
#define CAN_F19R1_FB20 ((uint32_t)0x00100000)
#define CAN_F19R1_FB21 ((uint32_t)0x00200000)
#define CAN_F19R1_FB22 ((uint32_t)0x00400000)
#define CAN_F19R1_FB23 ((uint32_t)0x00800000)
#define CAN_F19R1_FB24 ((uint32_t)0x01000000)
#define CAN_F19R1_FB25 ((uint32_t)0x02000000)
#define CAN_F19R1_FB26 ((uint32_t)0x04000000)
#define CAN_F19R1_FB27 ((uint32_t)0x08000000)
#define CAN_F19R1_FB28 ((uint32_t)0x10000000)
#define CAN_F19R1_FB29 ((uint32_t)0x20000000)
#define CAN_F19R1_FB30 ((uint32_t)0x40000000)
#define CAN_F19R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F20R1 register ********************/
#define CAN_F20R1_FB0 ((uint32_t)0x00000001)
#define CAN_F20R1_FB1 ((uint32_t)0x00000002)
#define CAN_F20R1_FB2 ((uint32_t)0x00000004)
#define CAN_F20R1_FB3 ((uint32_t)0x00000008)
#define CAN_F20R1_FB4 ((uint32_t)0x00000010)
#define CAN_F20R1_FB5 ((uint32_t)0x00000020)
#define CAN_F20R1_FB6 ((uint32_t)0x00000040)
#define CAN_F20R1_FB7 ((uint32_t)0x00000080)
#define CAN_F20R1_FB8 ((uint32_t)0x00000100)
#define CAN_F20R1_FB9 ((uint32_t)0x00000200)
#define CAN_F20R1_FB10 ((uint32_t)0x00000400)
#define CAN_F20R1_FB11 ((uint32_t)0x00000800)
#define CAN_F20R1_FB12 ((uint32_t)0x00001000)
#define CAN_F20R1_FB13 ((uint32_t)0x00002000)
#define CAN_F20R1_FB14 ((uint32_t)0x00004000)
#define CAN_F20R1_FB15 ((uint32_t)0x00008000)
#define CAN_F20R1_FB16 ((uint32_t)0x00010000)
#define CAN_F20R1_FB17 ((uint32_t)0x00020000)
#define CAN_F20R1_FB18 ((uint32_t)0x00040000)
#define CAN_F20R1_FB19 ((uint32_t)0x00080000)
#define CAN_F20R1_FB20 ((uint32_t)0x00100000)
#define CAN_F20R1_FB21 ((uint32_t)0x00200000)
#define CAN_F20R1_FB22 ((uint32_t)0x00400000)
#define CAN_F20R1_FB23 ((uint32_t)0x00800000)
#define CAN_F20R1_FB24 ((uint32_t)0x01000000)
#define CAN_F20R1_FB25 ((uint32_t)0x02000000)
#define CAN_F20R1_FB26 ((uint32_t)0x04000000)
#define CAN_F20R1_FB27 ((uint32_t)0x08000000)
#define CAN_F20R1_FB28 ((uint32_t)0x10000000)
#define CAN_F20R1_FB29 ((uint32_t)0x20000000)
#define CAN_F20R1_FB30 ((uint32_t)0x40000000)
#define CAN_F20R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F21R1 register ********************/
#define CAN_F21R1_FB0 ((uint32_t)0x00000001)
#define CAN_F21R1_FB1 ((uint32_t)0x00000002)
#define CAN_F21R1_FB2 ((uint32_t)0x00000004)
#define CAN_F21R1_FB3 ((uint32_t)0x00000008)
#define CAN_F21R1_FB4 ((uint32_t)0x00000010)
#define CAN_F21R1_FB5 ((uint32_t)0x00000020)
#define CAN_F21R1_FB6 ((uint32_t)0x00000040)
#define CAN_F21R1_FB7 ((uint32_t)0x00000080)
#define CAN_F21R1_FB8 ((uint32_t)0x00000100)
#define CAN_F21R1_FB9 ((uint32_t)0x00000200)
#define CAN_F21R1_FB10 ((uint32_t)0x00000400)
#define CAN_F21R1_FB11 ((uint32_t)0x00000800)
#define CAN_F21R1_FB12 ((uint32_t)0x00001000)
#define CAN_F21R1_FB13 ((uint32_t)0x00002000)
#define CAN_F21R1_FB14 ((uint32_t)0x00004000)
#define CAN_F21R1_FB15 ((uint32_t)0x00008000)
#define CAN_F21R1_FB16 ((uint32_t)0x00010000)
#define CAN_F21R1_FB17 ((uint32_t)0x00020000)
#define CAN_F21R1_FB18 ((uint32_t)0x00040000)
#define CAN_F21R1_FB19 ((uint32_t)0x00080000)
#define CAN_F21R1_FB20 ((uint32_t)0x00100000)
#define CAN_F21R1_FB21 ((uint32_t)0x00200000)
#define CAN_F21R1_FB22 ((uint32_t)0x00400000)
#define CAN_F21R1_FB23 ((uint32_t)0x00800000)
#define CAN_F21R1_FB24 ((uint32_t)0x01000000)
#define CAN_F21R1_FB25 ((uint32_t)0x02000000)
#define CAN_F21R1_FB26 ((uint32_t)0x04000000)
#define CAN_F21R1_FB27 ((uint32_t)0x08000000)
#define CAN_F21R1_FB28 ((uint32_t)0x10000000)
#define CAN_F21R1_FB29 ((uint32_t)0x20000000)
#define CAN_F21R1_FB30 ((uint32_t)0x40000000)
#define CAN_F21R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F22R1 register ********************/
#define CAN_F22R1_FB0 ((uint32_t)0x00000001)
#define CAN_F22R1_FB1 ((uint32_t)0x00000002)
#define CAN_F22R1_FB2 ((uint32_t)0x00000004)
#define CAN_F22R1_FB3 ((uint32_t)0x00000008)
#define CAN_F22R1_FB4 ((uint32_t)0x00000010)
#define CAN_F22R1_FB5 ((uint32_t)0x00000020)
#define CAN_F22R1_FB6 ((uint32_t)0x00000040)
#define CAN_F22R1_FB7 ((uint32_t)0x00000080)
#define CAN_F22R1_FB8 ((uint32_t)0x00000100)
#define CAN_F22R1_FB9 ((uint32_t)0x00000200)
#define CAN_F22R1_FB10 ((uint32_t)0x00000400)
#define CAN_F22R1_FB11 ((uint32_t)0x00000800)
#define CAN_F22R1_FB12 ((uint32_t)0x00001000)
#define CAN_F22R1_FB13 ((uint32_t)0x00002000)
#define CAN_F22R1_FB14 ((uint32_t)0x00004000)
#define CAN_F22R1_FB15 ((uint32_t)0x00008000)
#define CAN_F22R1_FB16 ((uint32_t)0x00010000)
#define CAN_F22R1_FB17 ((uint32_t)0x00020000)
#define CAN_F22R1_FB18 ((uint32_t)0x00040000)
#define CAN_F22R1_FB19 ((uint32_t)0x00080000)
#define CAN_F22R1_FB20 ((uint32_t)0x00100000)
#define CAN_F22R1_FB21 ((uint32_t)0x00200000)
#define CAN_F22R1_FB22 ((uint32_t)0x00400000)
#define CAN_F22R1_FB23 ((uint32_t)0x00800000)
#define CAN_F22R1_FB24 ((uint32_t)0x01000000)
#define CAN_F22R1_FB25 ((uint32_t)0x02000000)
#define CAN_F22R1_FB26 ((uint32_t)0x04000000)
#define CAN_F22R1_FB27 ((uint32_t)0x08000000)
#define CAN_F22R1_FB28 ((uint32_t)0x10000000)
#define CAN_F22R1_FB29 ((uint32_t)0x20000000)
#define CAN_F22R1_FB30 ((uint32_t)0x40000000)
#define CAN_F22R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F23R1 register ********************/
#define CAN_F23R1_FB0 ((uint32_t)0x00000001)
#define CAN_F23R1_FB1 ((uint32_t)0x00000002)
#define CAN_F23R1_FB2 ((uint32_t)0x00000004)
#define CAN_F23R1_FB3 ((uint32_t)0x00000008)
#define CAN_F23R1_FB4 ((uint32_t)0x00000010)
#define CAN_F23R1_FB5 ((uint32_t)0x00000020)
#define CAN_F23R1_FB6 ((uint32_t)0x00000040)
#define CAN_F23R1_FB7 ((uint32_t)0x00000080)
#define CAN_F23R1_FB8 ((uint32_t)0x00000100)
#define CAN_F23R1_FB9 ((uint32_t)0x00000200)
#define CAN_F23R1_FB10 ((uint32_t)0x00000400)
#define CAN_F23R1_FB11 ((uint32_t)0x00000800)
#define CAN_F23R1_FB12 ((uint32_t)0x00001000)
#define CAN_F23R1_FB13 ((uint32_t)0x00002000)
#define CAN_F23R1_FB14 ((uint32_t)0x00004000)
#define CAN_F23R1_FB15 ((uint32_t)0x00008000)
#define CAN_F23R1_FB16 ((uint32_t)0x00010000)
#define CAN_F23R1_FB17 ((uint32_t)0x00020000)
#define CAN_F23R1_FB18 ((uint32_t)0x00040000)
#define CAN_F23R1_FB19 ((uint32_t)0x00080000)
#define CAN_F23R1_FB20 ((uint32_t)0x00100000)
#define CAN_F23R1_FB21 ((uint32_t)0x00200000)
#define CAN_F23R1_FB22 ((uint32_t)0x00400000)
#define CAN_F23R1_FB23 ((uint32_t)0x00800000)
#define CAN_F23R1_FB24 ((uint32_t)0x01000000)
#define CAN_F23R1_FB25 ((uint32_t)0x02000000)
#define CAN_F23R1_FB26 ((uint32_t)0x04000000)
#define CAN_F23R1_FB27 ((uint32_t)0x08000000)
#define CAN_F23R1_FB28 ((uint32_t)0x10000000)
#define CAN_F23R1_FB29 ((uint32_t)0x20000000)
#define CAN_F23R1_FB30 ((uint32_t)0x40000000)
#define CAN_F23R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F24R1 register ********************/
#define CAN_F24R1_FB0 ((uint32_t)0x00000001)
#define CAN_F24R1_FB1 ((uint32_t)0x00000002)
#define CAN_F24R1_FB2 ((uint32_t)0x00000004)
#define CAN_F24R1_FB3 ((uint32_t)0x00000008)
#define CAN_F24R1_FB4 ((uint32_t)0x00000010)
#define CAN_F24R1_FB5 ((uint32_t)0x00000020)
#define CAN_F24R1_FB6 ((uint32_t)0x00000040)
#define CAN_F24R1_FB7 ((uint32_t)0x00000080)
#define CAN_F24R1_FB8 ((uint32_t)0x00000100)
#define CAN_F24R1_FB9 ((uint32_t)0x00000200)
#define CAN_F24R1_FB10 ((uint32_t)0x00000400)
#define CAN_F24R1_FB11 ((uint32_t)0x00000800)
#define CAN_F24R1_FB12 ((uint32_t)0x00001000)
#define CAN_F24R1_FB13 ((uint32_t)0x00002000)
#define CAN_F24R1_FB14 ((uint32_t)0x00004000)
#define CAN_F24R1_FB15 ((uint32_t)0x00008000)
#define CAN_F24R1_FB16 ((uint32_t)0x00010000)
#define CAN_F24R1_FB17 ((uint32_t)0x00020000)
#define CAN_F24R1_FB18 ((uint32_t)0x00040000)
#define CAN_F24R1_FB19 ((uint32_t)0x00080000)
#define CAN_F24R1_FB20 ((uint32_t)0x00100000)
#define CAN_F24R1_FB21 ((uint32_t)0x00200000)
#define CAN_F24R1_FB22 ((uint32_t)0x00400000)
#define CAN_F24R1_FB23 ((uint32_t)0x00800000)
#define CAN_F24R1_FB24 ((uint32_t)0x01000000)
#define CAN_F24R1_FB25 ((uint32_t)0x02000000)
#define CAN_F24R1_FB26 ((uint32_t)0x04000000)
#define CAN_F24R1_FB27 ((uint32_t)0x08000000)
#define CAN_F24R1_FB28 ((uint32_t)0x10000000)
#define CAN_F24R1_FB29 ((uint32_t)0x20000000)
#define CAN_F24R1_FB30 ((uint32_t)0x40000000)
#define CAN_F24R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F25R1 register ********************/
#define CAN_F25R1_FB0 ((uint32_t)0x00000001)
#define CAN_F25R1_FB1 ((uint32_t)0x00000002)
#define CAN_F25R1_FB2 ((uint32_t)0x00000004)
#define CAN_F25R1_FB3 ((uint32_t)0x00000008)
#define CAN_F25R1_FB4 ((uint32_t)0x00000010)
#define CAN_F25R1_FB5 ((uint32_t)0x00000020)
#define CAN_F25R1_FB6 ((uint32_t)0x00000040)
#define CAN_F25R1_FB7 ((uint32_t)0x00000080)
#define CAN_F25R1_FB8 ((uint32_t)0x00000100)
#define CAN_F25R1_FB9 ((uint32_t)0x00000200)
#define CAN_F25R1_FB10 ((uint32_t)0x00000400)
#define CAN_F25R1_FB11 ((uint32_t)0x00000800)
#define CAN_F25R1_FB12 ((uint32_t)0x00001000)
#define CAN_F25R1_FB13 ((uint32_t)0x00002000)
#define CAN_F25R1_FB14 ((uint32_t)0x00004000)
#define CAN_F25R1_FB15 ((uint32_t)0x00008000)
#define CAN_F25R1_FB16 ((uint32_t)0x00010000)
#define CAN_F25R1_FB17 ((uint32_t)0x00020000)
#define CAN_F25R1_FB18 ((uint32_t)0x00040000)
#define CAN_F25R1_FB19 ((uint32_t)0x00080000)
#define CAN_F25R1_FB20 ((uint32_t)0x00100000)
#define CAN_F25R1_FB21 ((uint32_t)0x00200000)
#define CAN_F25R1_FB22 ((uint32_t)0x00400000)
#define CAN_F25R1_FB23 ((uint32_t)0x00800000)
#define CAN_F25R1_FB24 ((uint32_t)0x01000000)
#define CAN_F25R1_FB25 ((uint32_t)0x02000000)
#define CAN_F25R1_FB26 ((uint32_t)0x04000000)
#define CAN_F25R1_FB27 ((uint32_t)0x08000000)
#define CAN_F25R1_FB28 ((uint32_t)0x10000000)
#define CAN_F25R1_FB29 ((uint32_t)0x20000000)
#define CAN_F25R1_FB30 ((uint32_t)0x40000000)
#define CAN_F25R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F26R1 register ********************/
#define CAN_F26R1_FB0 ((uint32_t)0x00000001)
#define CAN_F26R1_FB1 ((uint32_t)0x00000002)
#define CAN_F26R1_FB2 ((uint32_t)0x00000004)
#define CAN_F26R1_FB3 ((uint32_t)0x00000008)
#define CAN_F26R1_FB4 ((uint32_t)0x00000010)
#define CAN_F26R1_FB5 ((uint32_t)0x00000020)
#define CAN_F26R1_FB6 ((uint32_t)0x00000040)
#define CAN_F26R1_FB7 ((uint32_t)0x00000080)
#define CAN_F26R1_FB8 ((uint32_t)0x00000100)
#define CAN_F26R1_FB9 ((uint32_t)0x00000200)
#define CAN_F26R1_FB10 ((uint32_t)0x00000400)
#define CAN_F26R1_FB11 ((uint32_t)0x00000800)
#define CAN_F26R1_FB12 ((uint32_t)0x00001000)
#define CAN_F26R1_FB13 ((uint32_t)0x00002000)
#define CAN_F26R1_FB14 ((uint32_t)0x00004000)
#define CAN_F26R1_FB15 ((uint32_t)0x00008000)
#define CAN_F26R1_FB16 ((uint32_t)0x00010000)
#define CAN_F26R1_FB17 ((uint32_t)0x00020000)
#define CAN_F26R1_FB18 ((uint32_t)0x00040000)
#define CAN_F26R1_FB19 ((uint32_t)0x00080000)
#define CAN_F26R1_FB20 ((uint32_t)0x00100000)
#define CAN_F26R1_FB21 ((uint32_t)0x00200000)
#define CAN_F26R1_FB22 ((uint32_t)0x00400000)
#define CAN_F26R1_FB23 ((uint32_t)0x00800000)
#define CAN_F26R1_FB24 ((uint32_t)0x01000000)
#define CAN_F26R1_FB25 ((uint32_t)0x02000000)
#define CAN_F26R1_FB26 ((uint32_t)0x04000000)
#define CAN_F26R1_FB27 ((uint32_t)0x08000000)
#define CAN_F26R1_FB28 ((uint32_t)0x10000000)
#define CAN_F26R1_FB29 ((uint32_t)0x20000000)
#define CAN_F26R1_FB30 ((uint32_t)0x40000000)
#define CAN_F26R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F27R1 register ********************/
#define CAN_F27R1_FB0 ((uint32_t)0x00000001)
#define CAN_F27R1_FB1 ((uint32_t)0x00000002)
#define CAN_F27R1_FB2 ((uint32_t)0x00000004)
#define CAN_F27R1_FB3 ((uint32_t)0x00000008)
#define CAN_F27R1_FB4 ((uint32_t)0x00000010)
#define CAN_F27R1_FB5 ((uint32_t)0x00000020)
#define CAN_F27R1_FB6 ((uint32_t)0x00000040)
#define CAN_F27R1_FB7 ((uint32_t)0x00000080)
#define CAN_F27R1_FB8 ((uint32_t)0x00000100)
#define CAN_F27R1_FB9 ((uint32_t)0x00000200)
#define CAN_F27R1_FB10 ((uint32_t)0x00000400)
#define CAN_F27R1_FB11 ((uint32_t)0x00000800)
#define CAN_F27R1_FB12 ((uint32_t)0x00001000)
#define CAN_F27R1_FB13 ((uint32_t)0x00002000)
#define CAN_F27R1_FB14 ((uint32_t)0x00004000)
#define CAN_F27R1_FB15 ((uint32_t)0x00008000)
#define CAN_F27R1_FB16 ((uint32_t)0x00010000)
#define CAN_F27R1_FB17 ((uint32_t)0x00020000)
#define CAN_F27R1_FB18 ((uint32_t)0x00040000)
#define CAN_F27R1_FB19 ((uint32_t)0x00080000)
#define CAN_F27R1_FB20 ((uint32_t)0x00100000)
#define CAN_F27R1_FB21 ((uint32_t)0x00200000)
#define CAN_F27R1_FB22 ((uint32_t)0x00400000)
#define CAN_F27R1_FB23 ((uint32_t)0x00800000)
#define CAN_F27R1_FB24 ((uint32_t)0x01000000)
#define CAN_F27R1_FB25 ((uint32_t)0x02000000)
#define CAN_F27R1_FB26 ((uint32_t)0x04000000)
#define CAN_F27R1_FB27 ((uint32_t)0x08000000)
#define CAN_F27R1_FB28 ((uint32_t)0x10000000)
#define CAN_F27R1_FB29 ((uint32_t)0x20000000)
#define CAN_F27R1_FB30 ((uint32_t)0x40000000)
#define CAN_F27R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F28R1 register ********************/
#define CAN_F28R1_FB0 ((uint32_t)0x00000001)
#define CAN_F28R1_FB1 ((uint32_t)0x00000002)
#define CAN_F28R1_FB2 ((uint32_t)0x00000004)
#define CAN_F28R1_FB3 ((uint32_t)0x00000008)
#define CAN_F28R1_FB4 ((uint32_t)0x00000010)
#define CAN_F28R1_FB5 ((uint32_t)0x00000020)
#define CAN_F28R1_FB6 ((uint32_t)0x00000040)
#define CAN_F28R1_FB7 ((uint32_t)0x00000080)
#define CAN_F28R1_FB8 ((uint32_t)0x00000100)
#define CAN_F28R1_FB9 ((uint32_t)0x00000200)
#define CAN_F28R1_FB10 ((uint32_t)0x00000400)
#define CAN_F28R1_FB11 ((uint32_t)0x00000800)
#define CAN_F28R1_FB12 ((uint32_t)0x00001000)
#define CAN_F28R1_FB13 ((uint32_t)0x00002000)
#define CAN_F28R1_FB14 ((uint32_t)0x00004000)
#define CAN_F28R1_FB15 ((uint32_t)0x00008000)
#define CAN_F28R1_FB16 ((uint32_t)0x00010000)
#define CAN_F28R1_FB17 ((uint32_t)0x00020000)
#define CAN_F28R1_FB18 ((uint32_t)0x00040000)
#define CAN_F28R1_FB19 ((uint32_t)0x00080000)
#define CAN_F28R1_FB20 ((uint32_t)0x00100000)
#define CAN_F28R1_FB21 ((uint32_t)0x00200000)
#define CAN_F28R1_FB22 ((uint32_t)0x00400000)
#define CAN_F28R1_FB23 ((uint32_t)0x00800000)
#define CAN_F28R1_FB24 ((uint32_t)0x01000000)
#define CAN_F28R1_FB25 ((uint32_t)0x02000000)
#define CAN_F28R1_FB26 ((uint32_t)0x04000000)
#define CAN_F28R1_FB27 ((uint32_t)0x08000000)
#define CAN_F28R1_FB28 ((uint32_t)0x10000000)
#define CAN_F28R1_FB29 ((uint32_t)0x20000000)
#define CAN_F28R1_FB30 ((uint32_t)0x40000000)
#define CAN_F28R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F29R1 register ********************/
#define CAN_F29R1_FB0 ((uint32_t)0x00000001)
#define CAN_F29R1_FB1 ((uint32_t)0x00000002)
#define CAN_F29R1_FB2 ((uint32_t)0x00000004)
#define CAN_F29R1_FB3 ((uint32_t)0x00000008)
#define CAN_F29R1_FB4 ((uint32_t)0x00000010)
#define CAN_F29R1_FB5 ((uint32_t)0x00000020)
#define CAN_F29R1_FB6 ((uint32_t)0x00000040)
#define CAN_F29R1_FB7 ((uint32_t)0x00000080)
#define CAN_F29R1_FB8 ((uint32_t)0x00000100)
#define CAN_F29R1_FB9 ((uint32_t)0x00000200)
#define CAN_F29R1_FB10 ((uint32_t)0x00000400)
#define CAN_F29R1_FB11 ((uint32_t)0x00000800)
#define CAN_F29R1_FB12 ((uint32_t)0x00001000)
#define CAN_F29R1_FB13 ((uint32_t)0x00002000)
#define CAN_F29R1_FB14 ((uint32_t)0x00004000)
#define CAN_F29R1_FB15 ((uint32_t)0x00008000)
#define CAN_F29R1_FB16 ((uint32_t)0x00010000)
#define CAN_F29R1_FB17 ((uint32_t)0x00020000)
#define CAN_F29R1_FB18 ((uint32_t)0x00040000)
#define CAN_F29R1_FB19 ((uint32_t)0x00080000)
#define CAN_F29R1_FB20 ((uint32_t)0x00100000)
#define CAN_F29R1_FB21 ((uint32_t)0x00200000)
#define CAN_F29R1_FB22 ((uint32_t)0x00400000)
#define CAN_F29R1_FB23 ((uint32_t)0x00800000)
#define CAN_F29R1_FB24 ((uint32_t)0x01000000)
#define CAN_F29R1_FB25 ((uint32_t)0x02000000)
#define CAN_F29R1_FB26 ((uint32_t)0x04000000)
#define CAN_F29R1_FB27 ((uint32_t)0x08000000)
#define CAN_F29R1_FB28 ((uint32_t)0x10000000)
#define CAN_F29R1_FB29 ((uint32_t)0x20000000)
#define CAN_F29R1_FB30 ((uint32_t)0x40000000)
#define CAN_F29R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F30R1 register ********************/
#define CAN_F30R1_FB0 ((uint32_t)0x00000001)
#define CAN_F30R1_FB1 ((uint32_t)0x00000002)
#define CAN_F30R1_FB2 ((uint32_t)0x00000004)
#define CAN_F30R1_FB3 ((uint32_t)0x00000008)
#define CAN_F30R1_FB4 ((uint32_t)0x00000010)
#define CAN_F30R1_FB5 ((uint32_t)0x00000020)
#define CAN_F30R1_FB6 ((uint32_t)0x00000040)
#define CAN_F30R1_FB7 ((uint32_t)0x00000080)
#define CAN_F30R1_FB8 ((uint32_t)0x00000100)
#define CAN_F30R1_FB9 ((uint32_t)0x00000200)
#define CAN_F30R1_FB10 ((uint32_t)0x00000400)
#define CAN_F30R1_FB11 ((uint32_t)0x00000800)
#define CAN_F30R1_FB12 ((uint32_t)0x00001000)
#define CAN_F30R1_FB13 ((uint32_t)0x00002000)
#define CAN_F30R1_FB14 ((uint32_t)0x00004000)
#define CAN_F30R1_FB15 ((uint32_t)0x00008000)
#define CAN_F30R1_FB16 ((uint32_t)0x00010000)
#define CAN_F30R1_FB17 ((uint32_t)0x00020000)
#define CAN_F30R1_FB18 ((uint32_t)0x00040000)
#define CAN_F30R1_FB19 ((uint32_t)0x00080000)
#define CAN_F30R1_FB20 ((uint32_t)0x00100000)
#define CAN_F30R1_FB21 ((uint32_t)0x00200000)
#define CAN_F30R1_FB22 ((uint32_t)0x00400000)
#define CAN_F30R1_FB23 ((uint32_t)0x00800000)
#define CAN_F30R1_FB24 ((uint32_t)0x01000000)
#define CAN_F30R1_FB25 ((uint32_t)0x02000000)
#define CAN_F30R1_FB26 ((uint32_t)0x04000000)
#define CAN_F30R1_FB27 ((uint32_t)0x08000000)
#define CAN_F30R1_FB28 ((uint32_t)0x10000000)
#define CAN_F30R1_FB29 ((uint32_t)0x20000000)
#define CAN_F30R1_FB30 ((uint32_t)0x40000000)
#define CAN_F30R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F31R1 register ********************/
#define CAN_F31R1_FB0 ((uint32_t)0x00000001)
#define CAN_F31R1_FB1 ((uint32_t)0x00000002)
#define CAN_F31R1_FB2 ((uint32_t)0x00000004)
#define CAN_F31R1_FB3 ((uint32_t)0x00000008)
#define CAN_F31R1_FB4 ((uint32_t)0x00000010)
#define CAN_F31R1_FB5 ((uint32_t)0x00000020)
#define CAN_F31R1_FB6 ((uint32_t)0x00000040)
#define CAN_F31R1_FB7 ((uint32_t)0x00000080)
#define CAN_F31R1_FB8 ((uint32_t)0x00000100)
#define CAN_F31R1_FB9 ((uint32_t)0x00000200)
#define CAN_F31R1_FB10 ((uint32_t)0x00000400)
#define CAN_F31R1_FB11 ((uint32_t)0x00000800)
#define CAN_F31R1_FB12 ((uint32_t)0x00001000)
#define CAN_F31R1_FB13 ((uint32_t)0x00002000)
#define CAN_F31R1_FB14 ((uint32_t)0x00004000)
#define CAN_F31R1_FB15 ((uint32_t)0x00008000)
#define CAN_F31R1_FB16 ((uint32_t)0x00010000)
#define CAN_F31R1_FB17 ((uint32_t)0x00020000)
#define CAN_F31R1_FB18 ((uint32_t)0x00040000)
#define CAN_F31R1_FB19 ((uint32_t)0x00080000)
#define CAN_F31R1_FB20 ((uint32_t)0x00100000)
#define CAN_F31R1_FB21 ((uint32_t)0x00200000)
#define CAN_F31R1_FB22 ((uint32_t)0x00400000)
#define CAN_F31R1_FB23 ((uint32_t)0x00800000)
#define CAN_F31R1_FB24 ((uint32_t)0x01000000)
#define CAN_F31R1_FB25 ((uint32_t)0x02000000)
#define CAN_F31R1_FB26 ((uint32_t)0x04000000)
#define CAN_F31R1_FB27 ((uint32_t)0x08000000)
#define CAN_F31R1_FB28 ((uint32_t)0x10000000)
#define CAN_F31R1_FB29 ((uint32_t)0x20000000)
#define CAN_F31R1_FB30 ((uint32_t)0x40000000)
#define CAN_F31R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F32R1 register ********************/
#define CAN_F32R1_FB0 ((uint32_t)0x00000001)
#define CAN_F32R1_FB1 ((uint32_t)0x00000002)
#define CAN_F32R1_FB2 ((uint32_t)0x00000004)
#define CAN_F32R1_FB3 ((uint32_t)0x00000008)
#define CAN_F32R1_FB4 ((uint32_t)0x00000010)
#define CAN_F32R1_FB5 ((uint32_t)0x00000020)
#define CAN_F32R1_FB6 ((uint32_t)0x00000040)
#define CAN_F32R1_FB7 ((uint32_t)0x00000080)
#define CAN_F32R1_FB8 ((uint32_t)0x00000100)
#define CAN_F32R1_FB9 ((uint32_t)0x00000200)
#define CAN_F32R1_FB10 ((uint32_t)0x00000400)
#define CAN_F32R1_FB11 ((uint32_t)0x00000800)
#define CAN_F32R1_FB12 ((uint32_t)0x00001000)
#define CAN_F32R1_FB13 ((uint32_t)0x00002000)
#define CAN_F32R1_FB14 ((uint32_t)0x00004000)
#define CAN_F32R1_FB15 ((uint32_t)0x00008000)
#define CAN_F32R1_FB16 ((uint32_t)0x00010000)
#define CAN_F32R1_FB17 ((uint32_t)0x00020000)
#define CAN_F32R1_FB18 ((uint32_t)0x00040000)
#define CAN_F32R1_FB19 ((uint32_t)0x00080000)
#define CAN_F32R1_FB20 ((uint32_t)0x00100000)
#define CAN_F32R1_FB21 ((uint32_t)0x00200000)
#define CAN_F32R1_FB22 ((uint32_t)0x00400000)
#define CAN_F32R1_FB23 ((uint32_t)0x00800000)
#define CAN_F32R1_FB24 ((uint32_t)0x01000000)
#define CAN_F32R1_FB25 ((uint32_t)0x02000000)
#define CAN_F32R1_FB26 ((uint32_t)0x04000000)
#define CAN_F32R1_FB27 ((uint32_t)0x08000000)
#define CAN_F32R1_FB28 ((uint32_t)0x10000000)
#define CAN_F32R1_FB29 ((uint32_t)0x20000000)
#define CAN_F32R1_FB30 ((uint32_t)0x40000000)
#define CAN_F32R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F33R1 register ********************/
#define CAN_F33R1_FB0 ((uint32_t)0x00000001)
#define CAN_F33R1_FB1 ((uint32_t)0x00000002)
#define CAN_F33R1_FB2 ((uint32_t)0x00000004)
#define CAN_F33R1_FB3 ((uint32_t)0x00000008)
#define CAN_F33R1_FB4 ((uint32_t)0x00000010)
#define CAN_F33R1_FB5 ((uint32_t)0x00000020)
#define CAN_F33R1_FB6 ((uint32_t)0x00000040)
#define CAN_F33R1_FB7 ((uint32_t)0x00000080)
#define CAN_F33R1_FB8 ((uint32_t)0x00000100)
#define CAN_F33R1_FB9 ((uint32_t)0x00000200)
#define CAN_F33R1_FB10 ((uint32_t)0x00000400)
#define CAN_F33R1_FB11 ((uint32_t)0x00000800)
#define CAN_F33R1_FB12 ((uint32_t)0x00001000)
#define CAN_F33R1_FB13 ((uint32_t)0x00002000)
#define CAN_F33R1_FB14 ((uint32_t)0x00004000)
#define CAN_F33R1_FB15 ((uint32_t)0x00008000)
#define CAN_F33R1_FB16 ((uint32_t)0x00010000)
#define CAN_F33R1_FB17 ((uint32_t)0x00020000)
#define CAN_F33R1_FB18 ((uint32_t)0x00040000)
#define CAN_F33R1_FB19 ((uint32_t)0x00080000)
#define CAN_F33R1_FB20 ((uint32_t)0x00100000)
#define CAN_F33R1_FB21 ((uint32_t)0x00200000)
#define CAN_F33R1_FB22 ((uint32_t)0x00400000)
#define CAN_F33R1_FB23 ((uint32_t)0x00800000)
#define CAN_F33R1_FB24 ((uint32_t)0x01000000)
#define CAN_F33R1_FB25 ((uint32_t)0x02000000)
#define CAN_F33R1_FB26 ((uint32_t)0x04000000)
#define CAN_F33R1_FB27 ((uint32_t)0x08000000)
#define CAN_F33R1_FB28 ((uint32_t)0x10000000)
#define CAN_F33R1_FB29 ((uint32_t)0x20000000)
#define CAN_F33R1_FB30 ((uint32_t)0x40000000)
#define CAN_F33R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F34R1 register ********************/
#define CAN_F34R1_FB0 ((uint32_t)0x00000001)
#define CAN_F34R1_FB1 ((uint32_t)0x00000002)
#define CAN_F34R1_FB2 ((uint32_t)0x00000004)
#define CAN_F34R1_FB3 ((uint32_t)0x00000008)
#define CAN_F34R1_FB4 ((uint32_t)0x00000010)
#define CAN_F34R1_FB5 ((uint32_t)0x00000020)
#define CAN_F34R1_FB6 ((uint32_t)0x00000040)
#define CAN_F34R1_FB7 ((uint32_t)0x00000080)
#define CAN_F34R1_FB8 ((uint32_t)0x00000100)
#define CAN_F34R1_FB9 ((uint32_t)0x00000200)
#define CAN_F34R1_FB10 ((uint32_t)0x00000400)
#define CAN_F34R1_FB11 ((uint32_t)0x00000800)
#define CAN_F34R1_FB12 ((uint32_t)0x00001000)
#define CAN_F34R1_FB13 ((uint32_t)0x00002000)
#define CAN_F34R1_FB14 ((uint32_t)0x00004000)
#define CAN_F34R1_FB15 ((uint32_t)0x00008000)
#define CAN_F34R1_FB16 ((uint32_t)0x00010000)
#define CAN_F34R1_FB17 ((uint32_t)0x00020000)
#define CAN_F34R1_FB18 ((uint32_t)0x00040000)
#define CAN_F34R1_FB19 ((uint32_t)0x00080000)
#define CAN_F34R1_FB20 ((uint32_t)0x00100000)
#define CAN_F34R1_FB21 ((uint32_t)0x00200000)
#define CAN_F34R1_FB22 ((uint32_t)0x00400000)
#define CAN_F34R1_FB23 ((uint32_t)0x00800000)
#define CAN_F34R1_FB24 ((uint32_t)0x01000000)
#define CAN_F34R1_FB25 ((uint32_t)0x02000000)
#define CAN_F34R1_FB26 ((uint32_t)0x04000000)
#define CAN_F34R1_FB27 ((uint32_t)0x08000000)
#define CAN_F34R1_FB28 ((uint32_t)0x10000000)
#define CAN_F34R1_FB29 ((uint32_t)0x20000000)
#define CAN_F34R1_FB30 ((uint32_t)0x40000000)
#define CAN_F34R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F35R1 register ********************/
#define CAN_F35R1_FB0 ((uint32_t)0x00000001)
#define CAN_F35R1_FB1 ((uint32_t)0x00000002)
#define CAN_F35R1_FB2 ((uint32_t)0x00000004)
#define CAN_F35R1_FB3 ((uint32_t)0x00000008)
#define CAN_F35R1_FB4 ((uint32_t)0x00000010)
#define CAN_F35R1_FB5 ((uint32_t)0x00000020)
#define CAN_F35R1_FB6 ((uint32_t)0x00000040)
#define CAN_F35R1_FB7 ((uint32_t)0x00000080)
#define CAN_F35R1_FB8 ((uint32_t)0x00000100)
#define CAN_F35R1_FB9 ((uint32_t)0x00000200)
#define CAN_F35R1_FB10 ((uint32_t)0x00000400)
#define CAN_F35R1_FB11 ((uint32_t)0x00000800)
#define CAN_F35R1_FB12 ((uint32_t)0x00001000)
#define CAN_F35R1_FB13 ((uint32_t)0x00002000)
#define CAN_F35R1_FB14 ((uint32_t)0x00004000)
#define CAN_F35R1_FB15 ((uint32_t)0x00008000)
#define CAN_F35R1_FB16 ((uint32_t)0x00010000)
#define CAN_F35R1_FB17 ((uint32_t)0x00020000)
#define CAN_F35R1_FB18 ((uint32_t)0x00040000)
#define CAN_F35R1_FB19 ((uint32_t)0x00080000)
#define CAN_F35R1_FB20 ((uint32_t)0x00100000)
#define CAN_F35R1_FB21 ((uint32_t)0x00200000)
#define CAN_F35R1_FB22 ((uint32_t)0x00400000)
#define CAN_F35R1_FB23 ((uint32_t)0x00800000)
#define CAN_F35R1_FB24 ((uint32_t)0x01000000)
#define CAN_F35R1_FB25 ((uint32_t)0x02000000)
#define CAN_F35R1_FB26 ((uint32_t)0x04000000)
#define CAN_F35R1_FB27 ((uint32_t)0x08000000)
#define CAN_F35R1_FB28 ((uint32_t)0x10000000)
#define CAN_F35R1_FB29 ((uint32_t)0x20000000)
#define CAN_F35R1_FB30 ((uint32_t)0x40000000)
#define CAN_F35R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F36R1 register ********************/
#define CAN_F36R1_FB0 ((uint32_t)0x00000001)
#define CAN_F36R1_FB1 ((uint32_t)0x00000002)
#define CAN_F36R1_FB2 ((uint32_t)0x00000004)
#define CAN_F36R1_FB3 ((uint32_t)0x00000008)
#define CAN_F36R1_FB4 ((uint32_t)0x00000010)
#define CAN_F36R1_FB5 ((uint32_t)0x00000020)
#define CAN_F36R1_FB6 ((uint32_t)0x00000040)
#define CAN_F36R1_FB7 ((uint32_t)0x00000080)
#define CAN_F36R1_FB8 ((uint32_t)0x00000100)
#define CAN_F36R1_FB9 ((uint32_t)0x00000200)
#define CAN_F36R1_FB10 ((uint32_t)0x00000400)
#define CAN_F36R1_FB11 ((uint32_t)0x00000800)
#define CAN_F36R1_FB12 ((uint32_t)0x00001000)
#define CAN_F36R1_FB13 ((uint32_t)0x00002000)
#define CAN_F36R1_FB14 ((uint32_t)0x00004000)
#define CAN_F36R1_FB15 ((uint32_t)0x00008000)
#define CAN_F36R1_FB16 ((uint32_t)0x00010000)
#define CAN_F36R1_FB17 ((uint32_t)0x00020000)
#define CAN_F36R1_FB18 ((uint32_t)0x00040000)
#define CAN_F36R1_FB19 ((uint32_t)0x00080000)
#define CAN_F36R1_FB20 ((uint32_t)0x00100000)
#define CAN_F36R1_FB21 ((uint32_t)0x00200000)
#define CAN_F36R1_FB22 ((uint32_t)0x00400000)
#define CAN_F36R1_FB23 ((uint32_t)0x00800000)
#define CAN_F36R1_FB24 ((uint32_t)0x01000000)
#define CAN_F36R1_FB25 ((uint32_t)0x02000000)
#define CAN_F36R1_FB26 ((uint32_t)0x04000000)
#define CAN_F36R1_FB27 ((uint32_t)0x08000000)
#define CAN_F36R1_FB28 ((uint32_t)0x10000000)
#define CAN_F36R1_FB29 ((uint32_t)0x20000000)
#define CAN_F36R1_FB30 ((uint32_t)0x40000000)
#define CAN_F36R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F37R1 register ********************/
#define CAN_F37R1_FB0 ((uint32_t)0x00000001)
#define CAN_F37R1_FB1 ((uint32_t)0x00000002)
#define CAN_F37R1_FB2 ((uint32_t)0x00000004)
#define CAN_F37R1_FB3 ((uint32_t)0x00000008)
#define CAN_F37R1_FB4 ((uint32_t)0x00000010)
#define CAN_F37R1_FB5 ((uint32_t)0x00000020)
#define CAN_F37R1_FB6 ((uint32_t)0x00000040)
#define CAN_F37R1_FB7 ((uint32_t)0x00000080)
#define CAN_F37R1_FB8 ((uint32_t)0x00000100)
#define CAN_F37R1_FB9 ((uint32_t)0x00000200)
#define CAN_F37R1_FB10 ((uint32_t)0x00000400)
#define CAN_F37R1_FB11 ((uint32_t)0x00000800)
#define CAN_F37R1_FB12 ((uint32_t)0x00001000)
#define CAN_F37R1_FB13 ((uint32_t)0x00002000)
#define CAN_F37R1_FB14 ((uint32_t)0x00004000)
#define CAN_F37R1_FB15 ((uint32_t)0x00008000)
#define CAN_F37R1_FB16 ((uint32_t)0x00010000)
#define CAN_F37R1_FB17 ((uint32_t)0x00020000)
#define CAN_F37R1_FB18 ((uint32_t)0x00040000)
#define CAN_F37R1_FB19 ((uint32_t)0x00080000)
#define CAN_F37R1_FB20 ((uint32_t)0x00100000)
#define CAN_F37R1_FB21 ((uint32_t)0x00200000)
#define CAN_F37R1_FB22 ((uint32_t)0x00400000)
#define CAN_F37R1_FB23 ((uint32_t)0x00800000)
#define CAN_F37R1_FB24 ((uint32_t)0x01000000)
#define CAN_F37R1_FB25 ((uint32_t)0x02000000)
#define CAN_F37R1_FB26 ((uint32_t)0x04000000)
#define CAN_F37R1_FB27 ((uint32_t)0x08000000)
#define CAN_F37R1_FB28 ((uint32_t)0x10000000)
#define CAN_F37R1_FB29 ((uint32_t)0x20000000)
#define CAN_F37R1_FB30 ((uint32_t)0x40000000)
#define CAN_F37R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F38R1 register ********************/
#define CAN_F38R1_FB0 ((uint32_t)0x00000001)
#define CAN_F38R1_FB1 ((uint32_t)0x00000002)
#define CAN_F38R1_FB2 ((uint32_t)0x00000004)
#define CAN_F38R1_FB3 ((uint32_t)0x00000008)
#define CAN_F38R1_FB4 ((uint32_t)0x00000010)
#define CAN_F38R1_FB5 ((uint32_t)0x00000020)
#define CAN_F38R1_FB6 ((uint32_t)0x00000040)
#define CAN_F38R1_FB7 ((uint32_t)0x00000080)
#define CAN_F38R1_FB8 ((uint32_t)0x00000100)
#define CAN_F38R1_FB9 ((uint32_t)0x00000200)
#define CAN_F38R1_FB10 ((uint32_t)0x00000400)
#define CAN_F38R1_FB11 ((uint32_t)0x00000800)
#define CAN_F38R1_FB12 ((uint32_t)0x00001000)
#define CAN_F38R1_FB13 ((uint32_t)0x00002000)
#define CAN_F38R1_FB14 ((uint32_t)0x00004000)
#define CAN_F38R1_FB15 ((uint32_t)0x00008000)
#define CAN_F38R1_FB16 ((uint32_t)0x00010000)
#define CAN_F38R1_FB17 ((uint32_t)0x00020000)
#define CAN_F38R1_FB18 ((uint32_t)0x00040000)
#define CAN_F38R1_FB19 ((uint32_t)0x00080000)
#define CAN_F38R1_FB20 ((uint32_t)0x00100000)
#define CAN_F38R1_FB21 ((uint32_t)0x00200000)
#define CAN_F38R1_FB22 ((uint32_t)0x00400000)
#define CAN_F38R1_FB23 ((uint32_t)0x00800000)
#define CAN_F38R1_FB24 ((uint32_t)0x01000000)
#define CAN_F38R1_FB25 ((uint32_t)0x02000000)
#define CAN_F38R1_FB26 ((uint32_t)0x04000000)
#define CAN_F38R1_FB27 ((uint32_t)0x08000000)
#define CAN_F38R1_FB28 ((uint32_t)0x10000000)
#define CAN_F38R1_FB29 ((uint32_t)0x20000000)
#define CAN_F38R1_FB30 ((uint32_t)0x40000000)
#define CAN_F38R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F39R1 register ********************/
#define CAN_F39R1_FB0 ((uint32_t)0x00000001)
#define CAN_F39R1_FB1 ((uint32_t)0x00000002)
#define CAN_F39R1_FB2 ((uint32_t)0x00000004)
#define CAN_F39R1_FB3 ((uint32_t)0x00000008)
#define CAN_F39R1_FB4 ((uint32_t)0x00000010)
#define CAN_F39R1_FB5 ((uint32_t)0x00000020)
#define CAN_F39R1_FB6 ((uint32_t)0x00000040)
#define CAN_F39R1_FB7 ((uint32_t)0x00000080)
#define CAN_F39R1_FB8 ((uint32_t)0x00000100)
#define CAN_F39R1_FB9 ((uint32_t)0x00000200)
#define CAN_F39R1_FB10 ((uint32_t)0x00000400)
#define CAN_F39R1_FB11 ((uint32_t)0x00000800)
#define CAN_F39R1_FB12 ((uint32_t)0x00001000)
#define CAN_F39R1_FB13 ((uint32_t)0x00002000)
#define CAN_F39R1_FB14 ((uint32_t)0x00004000)
#define CAN_F39R1_FB15 ((uint32_t)0x00008000)
#define CAN_F39R1_FB16 ((uint32_t)0x00010000)
#define CAN_F39R1_FB17 ((uint32_t)0x00020000)
#define CAN_F39R1_FB18 ((uint32_t)0x00040000)
#define CAN_F39R1_FB19 ((uint32_t)0x00080000)
#define CAN_F39R1_FB20 ((uint32_t)0x00100000)
#define CAN_F39R1_FB21 ((uint32_t)0x00200000)
#define CAN_F39R1_FB22 ((uint32_t)0x00400000)
#define CAN_F39R1_FB23 ((uint32_t)0x00800000)
#define CAN_F39R1_FB24 ((uint32_t)0x01000000)
#define CAN_F39R1_FB25 ((uint32_t)0x02000000)
#define CAN_F39R1_FB26 ((uint32_t)0x04000000)
#define CAN_F39R1_FB27 ((uint32_t)0x08000000)
#define CAN_F39R1_FB28 ((uint32_t)0x10000000)
#define CAN_F39R1_FB29 ((uint32_t)0x20000000)
#define CAN_F39R1_FB30 ((uint32_t)0x40000000)
#define CAN_F39R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F40R1 register ********************/
#define CAN_F40R1_FB0 ((uint32_t)0x00000001)
#define CAN_F40R1_FB1 ((uint32_t)0x00000002)
#define CAN_F40R1_FB2 ((uint32_t)0x00000004)
#define CAN_F40R1_FB3 ((uint32_t)0x00000008)
#define CAN_F40R1_FB4 ((uint32_t)0x00000010)
#define CAN_F40R1_FB5 ((uint32_t)0x00000020)
#define CAN_F40R1_FB6 ((uint32_t)0x00000040)
#define CAN_F40R1_FB7 ((uint32_t)0x00000080)
#define CAN_F40R1_FB8 ((uint32_t)0x00000100)
#define CAN_F40R1_FB9 ((uint32_t)0x00000200)
#define CAN_F40R1_FB10 ((uint32_t)0x00000400)
#define CAN_F40R1_FB11 ((uint32_t)0x00000800)
#define CAN_F40R1_FB12 ((uint32_t)0x00001000)
#define CAN_F40R1_FB13 ((uint32_t)0x00002000)
#define CAN_F40R1_FB14 ((uint32_t)0x00004000)
#define CAN_F40R1_FB15 ((uint32_t)0x00008000)
#define CAN_F40R1_FB16 ((uint32_t)0x00010000)
#define CAN_F40R1_FB17 ((uint32_t)0x00020000)
#define CAN_F40R1_FB18 ((uint32_t)0x00040000)
#define CAN_F40R1_FB19 ((uint32_t)0x00080000)
#define CAN_F40R1_FB20 ((uint32_t)0x00100000)
#define CAN_F40R1_FB21 ((uint32_t)0x00200000)
#define CAN_F40R1_FB22 ((uint32_t)0x00400000)
#define CAN_F40R1_FB23 ((uint32_t)0x00800000)
#define CAN_F40R1_FB24 ((uint32_t)0x01000000)
#define CAN_F40R1_FB25 ((uint32_t)0x02000000)
#define CAN_F40R1_FB26 ((uint32_t)0x04000000)
#define CAN_F40R1_FB27 ((uint32_t)0x08000000)
#define CAN_F40R1_FB28 ((uint32_t)0x10000000)
#define CAN_F40R1_FB29 ((uint32_t)0x20000000)
#define CAN_F40R1_FB30 ((uint32_t)0x40000000)
#define CAN_F40R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F41R1 register ********************/
#define CAN_F41R1_FB0 ((uint32_t)0x00000001)
#define CAN_F41R1_FB1 ((uint32_t)0x00000002)
#define CAN_F41R1_FB2 ((uint32_t)0x00000004)
#define CAN_F41R1_FB3 ((uint32_t)0x00000008)
#define CAN_F41R1_FB4 ((uint32_t)0x00000010)
#define CAN_F41R1_FB5 ((uint32_t)0x00000020)
#define CAN_F41R1_FB6 ((uint32_t)0x00000040)
#define CAN_F41R1_FB7 ((uint32_t)0x00000080)
#define CAN_F41R1_FB8 ((uint32_t)0x00000100)
#define CAN_F41R1_FB9 ((uint32_t)0x00000200)
#define CAN_F41R1_FB10 ((uint32_t)0x00000400)
#define CAN_F41R1_FB11 ((uint32_t)0x00000800)
#define CAN_F41R1_FB12 ((uint32_t)0x00001000)
#define CAN_F41R1_FB13 ((uint32_t)0x00002000)
#define CAN_F41R1_FB14 ((uint32_t)0x00004000)
#define CAN_F41R1_FB15 ((uint32_t)0x00008000)
#define CAN_F41R1_FB16 ((uint32_t)0x00010000)
#define CAN_F41R1_FB17 ((uint32_t)0x00020000)
#define CAN_F41R1_FB18 ((uint32_t)0x00040000)
#define CAN_F41R1_FB19 ((uint32_t)0x00080000)
#define CAN_F41R1_FB20 ((uint32_t)0x00100000)
#define CAN_F41R1_FB21 ((uint32_t)0x00200000)
#define CAN_F41R1_FB22 ((uint32_t)0x00400000)
#define CAN_F41R1_FB23 ((uint32_t)0x00800000)
#define CAN_F41R1_FB24 ((uint32_t)0x01000000)
#define CAN_F41R1_FB25 ((uint32_t)0x02000000)
#define CAN_F41R1_FB26 ((uint32_t)0x04000000)
#define CAN_F41R1_FB27 ((uint32_t)0x08000000)
#define CAN_F41R1_FB28 ((uint32_t)0x10000000)
#define CAN_F41R1_FB29 ((uint32_t)0x20000000)
#define CAN_F41R1_FB30 ((uint32_t)0x40000000)
#define CAN_F41R1_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F0R2 register ********************/
#define CAN_F0R2_FB0 ((uint32_t)0x00000001)
#define CAN_F0R2_FB1 ((uint32_t)0x00000002)
#define CAN_F0R2_FB2 ((uint32_t)0x00000004)
#define CAN_F0R2_FB3 ((uint32_t)0x00000008)
#define CAN_F0R2_FB4 ((uint32_t)0x00000010)
#define CAN_F0R2_FB5 ((uint32_t)0x00000020)
#define CAN_F0R2_FB6 ((uint32_t)0x00000040)
#define CAN_F0R2_FB7 ((uint32_t)0x00000080)
#define CAN_F0R2_FB8 ((uint32_t)0x00000100)
#define CAN_F0R2_FB9 ((uint32_t)0x00000200)
#define CAN_F0R2_FB10 ((uint32_t)0x00000400)
#define CAN_F0R2_FB11 ((uint32_t)0x00000800)
#define CAN_F0R2_FB12 ((uint32_t)0x00001000)
#define CAN_F0R2_FB13 ((uint32_t)0x00002000)
#define CAN_F0R2_FB14 ((uint32_t)0x00004000)
#define CAN_F0R2_FB15 ((uint32_t)0x00008000)
#define CAN_F0R2_FB16 ((uint32_t)0x00010000)
#define CAN_F0R2_FB17 ((uint32_t)0x00020000)
#define CAN_F0R2_FB18 ((uint32_t)0x00040000)
#define CAN_F0R2_FB19 ((uint32_t)0x00080000)
#define CAN_F0R2_FB20 ((uint32_t)0x00100000)
#define CAN_F0R2_FB21 ((uint32_t)0x00200000)
#define CAN_F0R2_FB22 ((uint32_t)0x00400000)
#define CAN_F0R2_FB23 ((uint32_t)0x00800000)
#define CAN_F0R2_FB24 ((uint32_t)0x01000000)
#define CAN_F0R2_FB25 ((uint32_t)0x02000000)
#define CAN_F0R2_FB26 ((uint32_t)0x04000000)
#define CAN_F0R2_FB27 ((uint32_t)0x08000000)
#define CAN_F0R2_FB28 ((uint32_t)0x10000000)
#define CAN_F0R2_FB29 ((uint32_t)0x20000000)
#define CAN_F0R2_FB30 ((uint32_t)0x40000000)
#define CAN_F0R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F1R2 register ********************/
#define CAN_F1R2_FB0 ((uint32_t)0x00000001)
#define CAN_F1R2_FB1 ((uint32_t)0x00000002)
#define CAN_F1R2_FB2 ((uint32_t)0x00000004)
#define CAN_F1R2_FB3 ((uint32_t)0x00000008)
#define CAN_F1R2_FB4 ((uint32_t)0x00000010)
#define CAN_F1R2_FB5 ((uint32_t)0x00000020)
#define CAN_F1R2_FB6 ((uint32_t)0x00000040)
#define CAN_F1R2_FB7 ((uint32_t)0x00000080)
#define CAN_F1R2_FB8 ((uint32_t)0x00000100)
#define CAN_F1R2_FB9 ((uint32_t)0x00000200)
#define CAN_F1R2_FB10 ((uint32_t)0x00000400)
#define CAN_F1R2_FB11 ((uint32_t)0x00000800)
#define CAN_F1R2_FB12 ((uint32_t)0x00001000)
#define CAN_F1R2_FB13 ((uint32_t)0x00002000)
#define CAN_F1R2_FB14 ((uint32_t)0x00004000)
#define CAN_F1R2_FB15 ((uint32_t)0x00008000)
#define CAN_F1R2_FB16 ((uint32_t)0x00010000)
#define CAN_F1R2_FB17 ((uint32_t)0x00020000)
#define CAN_F1R2_FB18 ((uint32_t)0x00040000)
#define CAN_F1R2_FB19 ((uint32_t)0x00080000)
#define CAN_F1R2_FB20 ((uint32_t)0x00100000)
#define CAN_F1R2_FB21 ((uint32_t)0x00200000)
#define CAN_F1R2_FB22 ((uint32_t)0x00400000)
#define CAN_F1R2_FB23 ((uint32_t)0x00800000)
#define CAN_F1R2_FB24 ((uint32_t)0x01000000)
#define CAN_F1R2_FB25 ((uint32_t)0x02000000)
#define CAN_F1R2_FB26 ((uint32_t)0x04000000)
#define CAN_F1R2_FB27 ((uint32_t)0x08000000)
#define CAN_F1R2_FB28 ((uint32_t)0x10000000)
#define CAN_F1R2_FB29 ((uint32_t)0x20000000)
#define CAN_F1R2_FB30 ((uint32_t)0x40000000)
#define CAN_F1R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F2R2 register ********************/
#define CAN_F2R2_FB0 ((uint32_t)0x00000001)
#define CAN_F2R2_FB1 ((uint32_t)0x00000002)
#define CAN_F2R2_FB2 ((uint32_t)0x00000004)
#define CAN_F2R2_FB3 ((uint32_t)0x00000008)
#define CAN_F2R2_FB4 ((uint32_t)0x00000010)
#define CAN_F2R2_FB5 ((uint32_t)0x00000020)
#define CAN_F2R2_FB6 ((uint32_t)0x00000040)
#define CAN_F2R2_FB7 ((uint32_t)0x00000080)
#define CAN_F2R2_FB8 ((uint32_t)0x00000100)
#define CAN_F2R2_FB9 ((uint32_t)0x00000200)
#define CAN_F2R2_FB10 ((uint32_t)0x00000400)
#define CAN_F2R2_FB11 ((uint32_t)0x00000800)
#define CAN_F2R2_FB12 ((uint32_t)0x00001000)
#define CAN_F2R2_FB13 ((uint32_t)0x00002000)
#define CAN_F2R2_FB14 ((uint32_t)0x00004000)
#define CAN_F2R2_FB15 ((uint32_t)0x00008000)
#define CAN_F2R2_FB16 ((uint32_t)0x00010000)
#define CAN_F2R2_FB17 ((uint32_t)0x00020000)
#define CAN_F2R2_FB18 ((uint32_t)0x00040000)
#define CAN_F2R2_FB19 ((uint32_t)0x00080000)
#define CAN_F2R2_FB20 ((uint32_t)0x00100000)
#define CAN_F2R2_FB21 ((uint32_t)0x00200000)
#define CAN_F2R2_FB22 ((uint32_t)0x00400000)
#define CAN_F2R2_FB23 ((uint32_t)0x00800000)
#define CAN_F2R2_FB24 ((uint32_t)0x01000000)
#define CAN_F2R2_FB25 ((uint32_t)0x02000000)
#define CAN_F2R2_FB26 ((uint32_t)0x04000000)
#define CAN_F2R2_FB27 ((uint32_t)0x08000000)
#define CAN_F2R2_FB28 ((uint32_t)0x10000000)
#define CAN_F2R2_FB29 ((uint32_t)0x20000000)
#define CAN_F2R2_FB30 ((uint32_t)0x40000000)
#define CAN_F2R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F3R2 register ********************/
#define CAN_F3R2_FB0 ((uint32_t)0x00000001)
#define CAN_F3R2_FB1 ((uint32_t)0x00000002)
#define CAN_F3R2_FB2 ((uint32_t)0x00000004)
#define CAN_F3R2_FB3 ((uint32_t)0x00000008)
#define CAN_F3R2_FB4 ((uint32_t)0x00000010)
#define CAN_F3R2_FB5 ((uint32_t)0x00000020)
#define CAN_F3R2_FB6 ((uint32_t)0x00000040)
#define CAN_F3R2_FB7 ((uint32_t)0x00000080)
#define CAN_F3R2_FB8 ((uint32_t)0x00000100)
#define CAN_F3R2_FB9 ((uint32_t)0x00000200)
#define CAN_F3R2_FB10 ((uint32_t)0x00000400)
#define CAN_F3R2_FB11 ((uint32_t)0x00000800)
#define CAN_F3R2_FB12 ((uint32_t)0x00001000)
#define CAN_F3R2_FB13 ((uint32_t)0x00002000)
#define CAN_F3R2_FB14 ((uint32_t)0x00004000)
#define CAN_F3R2_FB15 ((uint32_t)0x00008000)
#define CAN_F3R2_FB16 ((uint32_t)0x00010000)
#define CAN_F3R2_FB17 ((uint32_t)0x00020000)
#define CAN_F3R2_FB18 ((uint32_t)0x00040000)
#define CAN_F3R2_FB19 ((uint32_t)0x00080000)
#define CAN_F3R2_FB20 ((uint32_t)0x00100000)
#define CAN_F3R2_FB21 ((uint32_t)0x00200000)
#define CAN_F3R2_FB22 ((uint32_t)0x00400000)
#define CAN_F3R2_FB23 ((uint32_t)0x00800000)
#define CAN_F3R2_FB24 ((uint32_t)0x01000000)
#define CAN_F3R2_FB25 ((uint32_t)0x02000000)
#define CAN_F3R2_FB26 ((uint32_t)0x04000000)
#define CAN_F3R2_FB27 ((uint32_t)0x08000000)
#define CAN_F3R2_FB28 ((uint32_t)0x10000000)
#define CAN_F3R2_FB29 ((uint32_t)0x20000000)
#define CAN_F3R2_FB30 ((uint32_t)0x40000000)
#define CAN_F3R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F4R2 register ********************/
#define CAN_F4R2_FB0 ((uint32_t)0x00000001)
#define CAN_F4R2_FB1 ((uint32_t)0x00000002)
#define CAN_F4R2_FB2 ((uint32_t)0x00000004)
#define CAN_F4R2_FB3 ((uint32_t)0x00000008)
#define CAN_F4R2_FB4 ((uint32_t)0x00000010)
#define CAN_F4R2_FB5 ((uint32_t)0x00000020)
#define CAN_F4R2_FB6 ((uint32_t)0x00000040)
#define CAN_F4R2_FB7 ((uint32_t)0x00000080)
#define CAN_F4R2_FB8 ((uint32_t)0x00000100)
#define CAN_F4R2_FB9 ((uint32_t)0x00000200)
#define CAN_F4R2_FB10 ((uint32_t)0x00000400)
#define CAN_F4R2_FB11 ((uint32_t)0x00000800)
#define CAN_F4R2_FB12 ((uint32_t)0x00001000)
#define CAN_F4R2_FB13 ((uint32_t)0x00002000)
#define CAN_F4R2_FB14 ((uint32_t)0x00004000)
#define CAN_F4R2_FB15 ((uint32_t)0x00008000)
#define CAN_F4R2_FB16 ((uint32_t)0x00010000)
#define CAN_F4R2_FB17 ((uint32_t)0x00020000)
#define CAN_F4R2_FB18 ((uint32_t)0x00040000)
#define CAN_F4R2_FB19 ((uint32_t)0x00080000)
#define CAN_F4R2_FB20 ((uint32_t)0x00100000)
#define CAN_F4R2_FB21 ((uint32_t)0x00200000)
#define CAN_F4R2_FB22 ((uint32_t)0x00400000)
#define CAN_F4R2_FB23 ((uint32_t)0x00800000)
#define CAN_F4R2_FB24 ((uint32_t)0x01000000)
#define CAN_F4R2_FB25 ((uint32_t)0x02000000)
#define CAN_F4R2_FB26 ((uint32_t)0x04000000)
#define CAN_F4R2_FB27 ((uint32_t)0x08000000)
#define CAN_F4R2_FB28 ((uint32_t)0x10000000)
#define CAN_F4R2_FB29 ((uint32_t)0x20000000)
#define CAN_F4R2_FB30 ((uint32_t)0x40000000)
#define CAN_F4R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F5R2 register ********************/
#define CAN_F5R2_FB0 ((uint32_t)0x00000001)
#define CAN_F5R2_FB1 ((uint32_t)0x00000002)
#define CAN_F5R2_FB2 ((uint32_t)0x00000004)
#define CAN_F5R2_FB3 ((uint32_t)0x00000008)
#define CAN_F5R2_FB4 ((uint32_t)0x00000010)
#define CAN_F5R2_FB5 ((uint32_t)0x00000020)
#define CAN_F5R2_FB6 ((uint32_t)0x00000040)
#define CAN_F5R2_FB7 ((uint32_t)0x00000080)
#define CAN_F5R2_FB8 ((uint32_t)0x00000100)
#define CAN_F5R2_FB9 ((uint32_t)0x00000200)
#define CAN_F5R2_FB10 ((uint32_t)0x00000400)
#define CAN_F5R2_FB11 ((uint32_t)0x00000800)
#define CAN_F5R2_FB12 ((uint32_t)0x00001000)
#define CAN_F5R2_FB13 ((uint32_t)0x00002000)
#define CAN_F5R2_FB14 ((uint32_t)0x00004000)
#define CAN_F5R2_FB15 ((uint32_t)0x00008000)
#define CAN_F5R2_FB16 ((uint32_t)0x00010000)
#define CAN_F5R2_FB17 ((uint32_t)0x00020000)
#define CAN_F5R2_FB18 ((uint32_t)0x00040000)
#define CAN_F5R2_FB19 ((uint32_t)0x00080000)
#define CAN_F5R2_FB20 ((uint32_t)0x00100000)
#define CAN_F5R2_FB21 ((uint32_t)0x00200000)
#define CAN_F5R2_FB22 ((uint32_t)0x00400000)
#define CAN_F5R2_FB23 ((uint32_t)0x00800000)
#define CAN_F5R2_FB24 ((uint32_t)0x01000000)
#define CAN_F5R2_FB25 ((uint32_t)0x02000000)
#define CAN_F5R2_FB26 ((uint32_t)0x04000000)
#define CAN_F5R2_FB27 ((uint32_t)0x08000000)
#define CAN_F5R2_FB28 ((uint32_t)0x10000000)
#define CAN_F5R2_FB29 ((uint32_t)0x20000000)
#define CAN_F5R2_FB30 ((uint32_t)0x40000000)
#define CAN_F5R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F6R2 register ********************/
#define CAN_F6R2_FB0 ((uint32_t)0x00000001)
#define CAN_F6R2_FB1 ((uint32_t)0x00000002)
#define CAN_F6R2_FB2 ((uint32_t)0x00000004)
#define CAN_F6R2_FB3 ((uint32_t)0x00000008)
#define CAN_F6R2_FB4 ((uint32_t)0x00000010)
#define CAN_F6R2_FB5 ((uint32_t)0x00000020)
#define CAN_F6R2_FB6 ((uint32_t)0x00000040)
#define CAN_F6R2_FB7 ((uint32_t)0x00000080)
#define CAN_F6R2_FB8 ((uint32_t)0x00000100)
#define CAN_F6R2_FB9 ((uint32_t)0x00000200)
#define CAN_F6R2_FB10 ((uint32_t)0x00000400)
#define CAN_F6R2_FB11 ((uint32_t)0x00000800)
#define CAN_F6R2_FB12 ((uint32_t)0x00001000)
#define CAN_F6R2_FB13 ((uint32_t)0x00002000)
#define CAN_F6R2_FB14 ((uint32_t)0x00004000)
#define CAN_F6R2_FB15 ((uint32_t)0x00008000)
#define CAN_F6R2_FB16 ((uint32_t)0x00010000)
#define CAN_F6R2_FB17 ((uint32_t)0x00020000)
#define CAN_F6R2_FB18 ((uint32_t)0x00040000)
#define CAN_F6R2_FB19 ((uint32_t)0x00080000)
#define CAN_F6R2_FB20 ((uint32_t)0x00100000)
#define CAN_F6R2_FB21 ((uint32_t)0x00200000)
#define CAN_F6R2_FB22 ((uint32_t)0x00400000)
#define CAN_F6R2_FB23 ((uint32_t)0x00800000)
#define CAN_F6R2_FB24 ((uint32_t)0x01000000)
#define CAN_F6R2_FB25 ((uint32_t)0x02000000)
#define CAN_F6R2_FB26 ((uint32_t)0x04000000)
#define CAN_F6R2_FB27 ((uint32_t)0x08000000)
#define CAN_F6R2_FB28 ((uint32_t)0x10000000)
#define CAN_F6R2_FB29 ((uint32_t)0x20000000)
#define CAN_F6R2_FB30 ((uint32_t)0x40000000)
#define CAN_F6R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F7R2 register ********************/
#define CAN_F7R2_FB0 ((uint32_t)0x00000001)
#define CAN_F7R2_FB1 ((uint32_t)0x00000002)
#define CAN_F7R2_FB2 ((uint32_t)0x00000004)
#define CAN_F7R2_FB3 ((uint32_t)0x00000008)
#define CAN_F7R2_FB4 ((uint32_t)0x00000010)
#define CAN_F7R2_FB5 ((uint32_t)0x00000020)
#define CAN_F7R2_FB6 ((uint32_t)0x00000040)
#define CAN_F7R2_FB7 ((uint32_t)0x00000080)
#define CAN_F7R2_FB8 ((uint32_t)0x00000100)
#define CAN_F7R2_FB9 ((uint32_t)0x00000200)
#define CAN_F7R2_FB10 ((uint32_t)0x00000400)
#define CAN_F7R2_FB11 ((uint32_t)0x00000800)
#define CAN_F7R2_FB12 ((uint32_t)0x00001000)
#define CAN_F7R2_FB13 ((uint32_t)0x00002000)
#define CAN_F7R2_FB14 ((uint32_t)0x00004000)
#define CAN_F7R2_FB15 ((uint32_t)0x00008000)
#define CAN_F7R2_FB16 ((uint32_t)0x00010000)
#define CAN_F7R2_FB17 ((uint32_t)0x00020000)
#define CAN_F7R2_FB18 ((uint32_t)0x00040000)
#define CAN_F7R2_FB19 ((uint32_t)0x00080000)
#define CAN_F7R2_FB20 ((uint32_t)0x00100000)
#define CAN_F7R2_FB21 ((uint32_t)0x00200000)
#define CAN_F7R2_FB22 ((uint32_t)0x00400000)
#define CAN_F7R2_FB23 ((uint32_t)0x00800000)
#define CAN_F7R2_FB24 ((uint32_t)0x01000000)
#define CAN_F7R2_FB25 ((uint32_t)0x02000000)
#define CAN_F7R2_FB26 ((uint32_t)0x04000000)
#define CAN_F7R2_FB27 ((uint32_t)0x08000000)
#define CAN_F7R2_FB28 ((uint32_t)0x10000000)
#define CAN_F7R2_FB29 ((uint32_t)0x20000000)
#define CAN_F7R2_FB30 ((uint32_t)0x40000000)
#define CAN_F7R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F8R2 register ********************/
#define CAN_F8R2_FB0 ((uint32_t)0x00000001)
#define CAN_F8R2_FB1 ((uint32_t)0x00000002)
#define CAN_F8R2_FB2 ((uint32_t)0x00000004)
#define CAN_F8R2_FB3 ((uint32_t)0x00000008)
#define CAN_F8R2_FB4 ((uint32_t)0x00000010)
#define CAN_F8R2_FB5 ((uint32_t)0x00000020)
#define CAN_F8R2_FB6 ((uint32_t)0x00000040)
#define CAN_F8R2_FB7 ((uint32_t)0x00000080)
#define CAN_F8R2_FB8 ((uint32_t)0x00000100)
#define CAN_F8R2_FB9 ((uint32_t)0x00000200)
#define CAN_F8R2_FB10 ((uint32_t)0x00000400)
#define CAN_F8R2_FB11 ((uint32_t)0x00000800)
#define CAN_F8R2_FB12 ((uint32_t)0x00001000)
#define CAN_F8R2_FB13 ((uint32_t)0x00002000)
#define CAN_F8R2_FB14 ((uint32_t)0x00004000)
#define CAN_F8R2_FB15 ((uint32_t)0x00008000)
#define CAN_F8R2_FB16 ((uint32_t)0x00010000)
#define CAN_F8R2_FB17 ((uint32_t)0x00020000)
#define CAN_F8R2_FB18 ((uint32_t)0x00040000)
#define CAN_F8R2_FB19 ((uint32_t)0x00080000)
#define CAN_F8R2_FB20 ((uint32_t)0x00100000)
#define CAN_F8R2_FB21 ((uint32_t)0x00200000)
#define CAN_F8R2_FB22 ((uint32_t)0x00400000)
#define CAN_F8R2_FB23 ((uint32_t)0x00800000)
#define CAN_F8R2_FB24 ((uint32_t)0x01000000)
#define CAN_F8R2_FB25 ((uint32_t)0x02000000)
#define CAN_F8R2_FB26 ((uint32_t)0x04000000)
#define CAN_F8R2_FB27 ((uint32_t)0x08000000)
#define CAN_F8R2_FB28 ((uint32_t)0x10000000)
#define CAN_F8R2_FB29 ((uint32_t)0x20000000)
#define CAN_F8R2_FB30 ((uint32_t)0x40000000)
#define CAN_F8R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F9R2 register ********************/
#define CAN_F9R2_FB0 ((uint32_t)0x00000001)
#define CAN_F9R2_FB1 ((uint32_t)0x00000002)
#define CAN_F9R2_FB2 ((uint32_t)0x00000004)
#define CAN_F9R2_FB3 ((uint32_t)0x00000008)
#define CAN_F9R2_FB4 ((uint32_t)0x00000010)
#define CAN_F9R2_FB5 ((uint32_t)0x00000020)
#define CAN_F9R2_FB6 ((uint32_t)0x00000040)
#define CAN_F9R2_FB7 ((uint32_t)0x00000080)
#define CAN_F9R2_FB8 ((uint32_t)0x00000100)
#define CAN_F9R2_FB9 ((uint32_t)0x00000200)
#define CAN_F9R2_FB10 ((uint32_t)0x00000400)
#define CAN_F9R2_FB11 ((uint32_t)0x00000800)
#define CAN_F9R2_FB12 ((uint32_t)0x00001000)
#define CAN_F9R2_FB13 ((uint32_t)0x00002000)
#define CAN_F9R2_FB14 ((uint32_t)0x00004000)
#define CAN_F9R2_FB15 ((uint32_t)0x00008000)
#define CAN_F9R2_FB16 ((uint32_t)0x00010000)
#define CAN_F9R2_FB17 ((uint32_t)0x00020000)
#define CAN_F9R2_FB18 ((uint32_t)0x00040000)
#define CAN_F9R2_FB19 ((uint32_t)0x00080000)
#define CAN_F9R2_FB20 ((uint32_t)0x00100000)
#define CAN_F9R2_FB21 ((uint32_t)0x00200000)
#define CAN_F9R2_FB22 ((uint32_t)0x00400000)
#define CAN_F9R2_FB23 ((uint32_t)0x00800000)
#define CAN_F9R2_FB24 ((uint32_t)0x01000000)
#define CAN_F9R2_FB25 ((uint32_t)0x02000000)
#define CAN_F9R2_FB26 ((uint32_t)0x04000000)
#define CAN_F9R2_FB27 ((uint32_t)0x08000000)
#define CAN_F9R2_FB28 ((uint32_t)0x10000000)
#define CAN_F9R2_FB29 ((uint32_t)0x20000000)
#define CAN_F9R2_FB30 ((uint32_t)0x40000000)
#define CAN_F9R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F10R2 register ********************/
#define CAN_F10R2_FB0 ((uint32_t)0x00000001)
#define CAN_F10R2_FB1 ((uint32_t)0x00000002)
#define CAN_F10R2_FB2 ((uint32_t)0x00000004)
#define CAN_F10R2_FB3 ((uint32_t)0x00000008)
#define CAN_F10R2_FB4 ((uint32_t)0x00000010)
#define CAN_F10R2_FB5 ((uint32_t)0x00000020)
#define CAN_F10R2_FB6 ((uint32_t)0x00000040)
#define CAN_F10R2_FB7 ((uint32_t)0x00000080)
#define CAN_F10R2_FB8 ((uint32_t)0x00000100)
#define CAN_F10R2_FB9 ((uint32_t)0x00000200)
#define CAN_F10R2_FB10 ((uint32_t)0x00000400)
#define CAN_F10R2_FB11 ((uint32_t)0x00000800)
#define CAN_F10R2_FB12 ((uint32_t)0x00001000)
#define CAN_F10R2_FB13 ((uint32_t)0x00002000)
#define CAN_F10R2_FB14 ((uint32_t)0x00004000)
#define CAN_F10R2_FB15 ((uint32_t)0x00008000)
#define CAN_F10R2_FB16 ((uint32_t)0x00010000)
#define CAN_F10R2_FB17 ((uint32_t)0x00020000)
#define CAN_F10R2_FB18 ((uint32_t)0x00040000)
#define CAN_F10R2_FB19 ((uint32_t)0x00080000)
#define CAN_F10R2_FB20 ((uint32_t)0x00100000)
#define CAN_F10R2_FB21 ((uint32_t)0x00200000)
#define CAN_F10R2_FB22 ((uint32_t)0x00400000)
#define CAN_F10R2_FB23 ((uint32_t)0x00800000)
#define CAN_F10R2_FB24 ((uint32_t)0x01000000)
#define CAN_F10R2_FB25 ((uint32_t)0x02000000)
#define CAN_F10R2_FB26 ((uint32_t)0x04000000)
#define CAN_F10R2_FB27 ((uint32_t)0x08000000)
#define CAN_F10R2_FB28 ((uint32_t)0x10000000)
#define CAN_F10R2_FB29 ((uint32_t)0x20000000)
#define CAN_F10R2_FB30 ((uint32_t)0x40000000)
#define CAN_F10R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F11R2 register ********************/
#define CAN_F11R2_FB0 ((uint32_t)0x00000001)
#define CAN_F11R2_FB1 ((uint32_t)0x00000002)
#define CAN_F11R2_FB2 ((uint32_t)0x00000004)
#define CAN_F11R2_FB3 ((uint32_t)0x00000008)
#define CAN_F11R2_FB4 ((uint32_t)0x00000010)
#define CAN_F11R2_FB5 ((uint32_t)0x00000020)
#define CAN_F11R2_FB6 ((uint32_t)0x00000040)
#define CAN_F11R2_FB7 ((uint32_t)0x00000080)
#define CAN_F11R2_FB8 ((uint32_t)0x00000100)
#define CAN_F11R2_FB9 ((uint32_t)0x00000200)
#define CAN_F11R2_FB10 ((uint32_t)0x00000400)
#define CAN_F11R2_FB11 ((uint32_t)0x00000800)
#define CAN_F11R2_FB12 ((uint32_t)0x00001000)
#define CAN_F11R2_FB13 ((uint32_t)0x00002000)
#define CAN_F11R2_FB14 ((uint32_t)0x00004000)
#define CAN_F11R2_FB15 ((uint32_t)0x00008000)
#define CAN_F11R2_FB16 ((uint32_t)0x00010000)
#define CAN_F11R2_FB17 ((uint32_t)0x00020000)
#define CAN_F11R2_FB18 ((uint32_t)0x00040000)
#define CAN_F11R2_FB19 ((uint32_t)0x00080000)
#define CAN_F11R2_FB20 ((uint32_t)0x00100000)
#define CAN_F11R2_FB21 ((uint32_t)0x00200000)
#define CAN_F11R2_FB22 ((uint32_t)0x00400000)
#define CAN_F11R2_FB23 ((uint32_t)0x00800000)
#define CAN_F11R2_FB24 ((uint32_t)0x01000000)
#define CAN_F11R2_FB25 ((uint32_t)0x02000000)
#define CAN_F11R2_FB26 ((uint32_t)0x04000000)
#define CAN_F11R2_FB27 ((uint32_t)0x08000000)
#define CAN_F11R2_FB28 ((uint32_t)0x10000000)
#define CAN_F11R2_FB29 ((uint32_t)0x20000000)
#define CAN_F11R2_FB30 ((uint32_t)0x40000000)
#define CAN_F11R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F12R2 register ********************/
#define CAN_F12R2_FB0 ((uint32_t)0x00000001)
#define CAN_F12R2_FB1 ((uint32_t)0x00000002)
#define CAN_F12R2_FB2 ((uint32_t)0x00000004)
#define CAN_F12R2_FB3 ((uint32_t)0x00000008)
#define CAN_F12R2_FB4 ((uint32_t)0x00000010)
#define CAN_F12R2_FB5 ((uint32_t)0x00000020)
#define CAN_F12R2_FB6 ((uint32_t)0x00000040)
#define CAN_F12R2_FB7 ((uint32_t)0x00000080)
#define CAN_F12R2_FB8 ((uint32_t)0x00000100)
#define CAN_F12R2_FB9 ((uint32_t)0x00000200)
#define CAN_F12R2_FB10 ((uint32_t)0x00000400)
#define CAN_F12R2_FB11 ((uint32_t)0x00000800)
#define CAN_F12R2_FB12 ((uint32_t)0x00001000)
#define CAN_F12R2_FB13 ((uint32_t)0x00002000)
#define CAN_F12R2_FB14 ((uint32_t)0x00004000)
#define CAN_F12R2_FB15 ((uint32_t)0x00008000)
#define CAN_F12R2_FB16 ((uint32_t)0x00010000)
#define CAN_F12R2_FB17 ((uint32_t)0x00020000)
#define CAN_F12R2_FB18 ((uint32_t)0x00040000)
#define CAN_F12R2_FB19 ((uint32_t)0x00080000)
#define CAN_F12R2_FB20 ((uint32_t)0x00100000)
#define CAN_F12R2_FB21 ((uint32_t)0x00200000)
#define CAN_F12R2_FB22 ((uint32_t)0x00400000)
#define CAN_F12R2_FB23 ((uint32_t)0x00800000)
#define CAN_F12R2_FB24 ((uint32_t)0x01000000)
#define CAN_F12R2_FB25 ((uint32_t)0x02000000)
#define CAN_F12R2_FB26 ((uint32_t)0x04000000)
#define CAN_F12R2_FB27 ((uint32_t)0x08000000)
#define CAN_F12R2_FB28 ((uint32_t)0x10000000)
#define CAN_F12R2_FB29 ((uint32_t)0x20000000)
#define CAN_F12R2_FB30 ((uint32_t)0x40000000)
#define CAN_F12R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F13R2 register ********************/
#define CAN_F13R2_FB0 ((uint32_t)0x00000001)
#define CAN_F13R2_FB1 ((uint32_t)0x00000002)
#define CAN_F13R2_FB2 ((uint32_t)0x00000004)
#define CAN_F13R2_FB3 ((uint32_t)0x00000008)
#define CAN_F13R2_FB4 ((uint32_t)0x00000010)
#define CAN_F13R2_FB5 ((uint32_t)0x00000020)
#define CAN_F13R2_FB6 ((uint32_t)0x00000040)
#define CAN_F13R2_FB7 ((uint32_t)0x00000080)
#define CAN_F13R2_FB8 ((uint32_t)0x00000100)
#define CAN_F13R2_FB9 ((uint32_t)0x00000200)
#define CAN_F13R2_FB10 ((uint32_t)0x00000400)
#define CAN_F13R2_FB11 ((uint32_t)0x00000800)
#define CAN_F13R2_FB12 ((uint32_t)0x00001000)
#define CAN_F13R2_FB13 ((uint32_t)0x00002000)
#define CAN_F13R2_FB14 ((uint32_t)0x00004000)
#define CAN_F13R2_FB15 ((uint32_t)0x00008000)
#define CAN_F13R2_FB16 ((uint32_t)0x00010000)
#define CAN_F13R2_FB17 ((uint32_t)0x00020000)
#define CAN_F13R2_FB18 ((uint32_t)0x00040000)
#define CAN_F13R2_FB19 ((uint32_t)0x00080000)
#define CAN_F13R2_FB20 ((uint32_t)0x00100000)
#define CAN_F13R2_FB21 ((uint32_t)0x00200000)
#define CAN_F13R2_FB22 ((uint32_t)0x00400000)
#define CAN_F13R2_FB23 ((uint32_t)0x00800000)
#define CAN_F13R2_FB24 ((uint32_t)0x01000000)
#define CAN_F13R2_FB25 ((uint32_t)0x02000000)
#define CAN_F13R2_FB26 ((uint32_t)0x04000000)
#define CAN_F13R2_FB27 ((uint32_t)0x08000000)
#define CAN_F13R2_FB28 ((uint32_t)0x10000000)
#define CAN_F13R2_FB29 ((uint32_t)0x20000000)
#define CAN_F13R2_FB30 ((uint32_t)0x40000000)
#define CAN_F13R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F14R2 register ********************/
#define CAN_F14R2_FB0 ((uint32_t)0x00000001)
#define CAN_F14R2_FB1 ((uint32_t)0x00000002)
#define CAN_F14R2_FB2 ((uint32_t)0x00000004)
#define CAN_F14R2_FB3 ((uint32_t)0x00000008)
#define CAN_F14R2_FB4 ((uint32_t)0x00000010)
#define CAN_F14R2_FB5 ((uint32_t)0x00000020)
#define CAN_F14R2_FB6 ((uint32_t)0x00000040)
#define CAN_F14R2_FB7 ((uint32_t)0x00000080)
#define CAN_F14R2_FB8 ((uint32_t)0x00000100)
#define CAN_F14R2_FB9 ((uint32_t)0x00000200)
#define CAN_F14R2_FB10 ((uint32_t)0x00000400)
#define CAN_F14R2_FB11 ((uint32_t)0x00000800)
#define CAN_F14R2_FB12 ((uint32_t)0x00001000)
#define CAN_F14R2_FB13 ((uint32_t)0x00002000)
#define CAN_F14R2_FB14 ((uint32_t)0x00004000)
#define CAN_F14R2_FB15 ((uint32_t)0x00008000)
#define CAN_F14R2_FB16 ((uint32_t)0x00010000)
#define CAN_F14R2_FB17 ((uint32_t)0x00020000)
#define CAN_F14R2_FB18 ((uint32_t)0x00040000)
#define CAN_F14R2_FB19 ((uint32_t)0x00080000)
#define CAN_F14R2_FB20 ((uint32_t)0x00100000)
#define CAN_F14R2_FB21 ((uint32_t)0x00200000)
#define CAN_F14R2_FB22 ((uint32_t)0x00400000)
#define CAN_F14R2_FB23 ((uint32_t)0x00800000)
#define CAN_F14R2_FB24 ((uint32_t)0x01000000)
#define CAN_F14R2_FB25 ((uint32_t)0x02000000)
#define CAN_F14R2_FB26 ((uint32_t)0x04000000)
#define CAN_F14R2_FB27 ((uint32_t)0x08000000)
#define CAN_F14R2_FB28 ((uint32_t)0x10000000)
#define CAN_F14R2_FB29 ((uint32_t)0x20000000)
#define CAN_F14R2_FB30 ((uint32_t)0x40000000)
#define CAN_F14R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F15R2 register ********************/
#define CAN_F15R2_FB0 ((uint32_t)0x00000001)
#define CAN_F15R2_FB1 ((uint32_t)0x00000002)
#define CAN_F15R2_FB2 ((uint32_t)0x00000004)
#define CAN_F15R2_FB3 ((uint32_t)0x00000008)
#define CAN_F15R2_FB4 ((uint32_t)0x00000010)
#define CAN_F15R2_FB5 ((uint32_t)0x00000020)
#define CAN_F15R2_FB6 ((uint32_t)0x00000040)
#define CAN_F15R2_FB7 ((uint32_t)0x00000080)
#define CAN_F15R2_FB8 ((uint32_t)0x00000100)
#define CAN_F15R2_FB9 ((uint32_t)0x00000200)
#define CAN_F15R2_FB10 ((uint32_t)0x00000400)
#define CAN_F15R2_FB11 ((uint32_t)0x00000800)
#define CAN_F15R2_FB12 ((uint32_t)0x00001000)
#define CAN_F15R2_FB13 ((uint32_t)0x00002000)
#define CAN_F15R2_FB14 ((uint32_t)0x00004000)
#define CAN_F15R2_FB15 ((uint32_t)0x00008000)
#define CAN_F15R2_FB16 ((uint32_t)0x00010000)
#define CAN_F15R2_FB17 ((uint32_t)0x00020000)
#define CAN_F15R2_FB18 ((uint32_t)0x00040000)
#define CAN_F15R2_FB19 ((uint32_t)0x00080000)
#define CAN_F15R2_FB20 ((uint32_t)0x00100000)
#define CAN_F15R2_FB21 ((uint32_t)0x00200000)
#define CAN_F15R2_FB22 ((uint32_t)0x00400000)
#define CAN_F15R2_FB23 ((uint32_t)0x00800000)
#define CAN_F15R2_FB24 ((uint32_t)0x01000000)
#define CAN_F15R2_FB25 ((uint32_t)0x02000000)
#define CAN_F15R2_FB26 ((uint32_t)0x04000000)
#define CAN_F15R2_FB27 ((uint32_t)0x08000000)
#define CAN_F15R2_FB28 ((uint32_t)0x10000000)
#define CAN_F15R2_FB29 ((uint32_t)0x20000000)
#define CAN_F15R2_FB30 ((uint32_t)0x40000000)
#define CAN_F15R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F16R2 register ********************/
#define CAN_F16R2_FB0 ((uint32_t)0x00000001)
#define CAN_F16R2_FB1 ((uint32_t)0x00000002)
#define CAN_F16R2_FB2 ((uint32_t)0x00000004)
#define CAN_F16R2_FB3 ((uint32_t)0x00000008)
#define CAN_F16R2_FB4 ((uint32_t)0x00000010)
#define CAN_F16R2_FB5 ((uint32_t)0x00000020)
#define CAN_F16R2_FB6 ((uint32_t)0x00000040)
#define CAN_F16R2_FB7 ((uint32_t)0x00000080)
#define CAN_F16R2_FB8 ((uint32_t)0x00000100)
#define CAN_F16R2_FB9 ((uint32_t)0x00000200)
#define CAN_F16R2_FB10 ((uint32_t)0x00000400)
#define CAN_F16R2_FB11 ((uint32_t)0x00000800)
#define CAN_F16R2_FB12 ((uint32_t)0x00001000)
#define CAN_F16R2_FB13 ((uint32_t)0x00002000)
#define CAN_F16R2_FB14 ((uint32_t)0x00004000)
#define CAN_F16R2_FB15 ((uint32_t)0x00008000)
#define CAN_F16R2_FB16 ((uint32_t)0x00010000)
#define CAN_F16R2_FB17 ((uint32_t)0x00020000)
#define CAN_F16R2_FB18 ((uint32_t)0x00040000)
#define CAN_F16R2_FB19 ((uint32_t)0x00080000)
#define CAN_F16R2_FB20 ((uint32_t)0x00100000)
#define CAN_F16R2_FB21 ((uint32_t)0x00200000)
#define CAN_F16R2_FB22 ((uint32_t)0x00400000)
#define CAN_F16R2_FB23 ((uint32_t)0x00800000)
#define CAN_F16R2_FB24 ((uint32_t)0x01000000)
#define CAN_F16R2_FB25 ((uint32_t)0x02000000)
#define CAN_F16R2_FB26 ((uint32_t)0x04000000)
#define CAN_F16R2_FB27 ((uint32_t)0x08000000)
#define CAN_F16R2_FB28 ((uint32_t)0x10000000)
#define CAN_F16R2_FB29 ((uint32_t)0x20000000)
#define CAN_F16R2_FB30 ((uint32_t)0x40000000)
#define CAN_F16R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F17R2 register ********************/
#define CAN_F17R2_FB0 ((uint32_t)0x00000001)
#define CAN_F17R2_FB1 ((uint32_t)0x00000002)
#define CAN_F17R2_FB2 ((uint32_t)0x00000004)
#define CAN_F17R2_FB3 ((uint32_t)0x00000008)
#define CAN_F17R2_FB4 ((uint32_t)0x00000010)
#define CAN_F17R2_FB5 ((uint32_t)0x00000020)
#define CAN_F17R2_FB6 ((uint32_t)0x00000040)
#define CAN_F17R2_FB7 ((uint32_t)0x00000080)
#define CAN_F17R2_FB8 ((uint32_t)0x00000100)
#define CAN_F17R2_FB9 ((uint32_t)0x00000200)
#define CAN_F17R2_FB10 ((uint32_t)0x00000400)
#define CAN_F17R2_FB11 ((uint32_t)0x00000800)
#define CAN_F17R2_FB12 ((uint32_t)0x00001000)
#define CAN_F17R2_FB13 ((uint32_t)0x00002000)
#define CAN_F17R2_FB14 ((uint32_t)0x00004000)
#define CAN_F17R2_FB15 ((uint32_t)0x00008000)
#define CAN_F17R2_FB16 ((uint32_t)0x00010000)
#define CAN_F17R2_FB17 ((uint32_t)0x00020000)
#define CAN_F17R2_FB18 ((uint32_t)0x00040000)
#define CAN_F17R2_FB19 ((uint32_t)0x00080000)
#define CAN_F17R2_FB20 ((uint32_t)0x00100000)
#define CAN_F17R2_FB21 ((uint32_t)0x00200000)
#define CAN_F17R2_FB22 ((uint32_t)0x00400000)
#define CAN_F17R2_FB23 ((uint32_t)0x00800000)
#define CAN_F17R2_FB24 ((uint32_t)0x01000000)
#define CAN_F17R2_FB25 ((uint32_t)0x02000000)
#define CAN_F17R2_FB26 ((uint32_t)0x04000000)
#define CAN_F17R2_FB27 ((uint32_t)0x08000000)
#define CAN_F17R2_FB28 ((uint32_t)0x10000000)
#define CAN_F17R2_FB29 ((uint32_t)0x20000000)
#define CAN_F17R2_FB30 ((uint32_t)0x40000000)
#define CAN_F17R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F18R2 register ********************/
#define CAN_F18R2_FB0 ((uint32_t)0x00000001)
#define CAN_F18R2_FB1 ((uint32_t)0x00000002)
#define CAN_F18R2_FB2 ((uint32_t)0x00000004)
#define CAN_F18R2_FB3 ((uint32_t)0x00000008)
#define CAN_F18R2_FB4 ((uint32_t)0x00000010)
#define CAN_F18R2_FB5 ((uint32_t)0x00000020)
#define CAN_F18R2_FB6 ((uint32_t)0x00000040)
#define CAN_F18R2_FB7 ((uint32_t)0x00000080)
#define CAN_F18R2_FB8 ((uint32_t)0x00000100)
#define CAN_F18R2_FB9 ((uint32_t)0x00000200)
#define CAN_F18R2_FB10 ((uint32_t)0x00000400)
#define CAN_F18R2_FB11 ((uint32_t)0x00000800)
#define CAN_F18R2_FB12 ((uint32_t)0x00001000)
#define CAN_F18R2_FB13 ((uint32_t)0x00002000)
#define CAN_F18R2_FB14 ((uint32_t)0x00004000)
#define CAN_F18R2_FB15 ((uint32_t)0x00008000)
#define CAN_F18R2_FB16 ((uint32_t)0x00010000)
#define CAN_F18R2_FB17 ((uint32_t)0x00020000)
#define CAN_F18R2_FB18 ((uint32_t)0x00040000)
#define CAN_F18R2_FB19 ((uint32_t)0x00080000)
#define CAN_F18R2_FB20 ((uint32_t)0x00100000)
#define CAN_F18R2_FB21 ((uint32_t)0x00200000)
#define CAN_F18R2_FB22 ((uint32_t)0x00400000)
#define CAN_F18R2_FB23 ((uint32_t)0x00800000)
#define CAN_F18R2_FB24 ((uint32_t)0x01000000)
#define CAN_F18R2_FB25 ((uint32_t)0x02000000)
#define CAN_F18R2_FB26 ((uint32_t)0x04000000)
#define CAN_F18R2_FB27 ((uint32_t)0x08000000)
#define CAN_F18R2_FB28 ((uint32_t)0x10000000)
#define CAN_F18R2_FB29 ((uint32_t)0x20000000)
#define CAN_F18R2_FB30 ((uint32_t)0x40000000)
#define CAN_F18R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F19R2 register ********************/
#define CAN_F19R2_FB0 ((uint32_t)0x00000001)
#define CAN_F19R2_FB1 ((uint32_t)0x00000002)
#define CAN_F19R2_FB2 ((uint32_t)0x00000004)
#define CAN_F19R2_FB3 ((uint32_t)0x00000008)
#define CAN_F19R2_FB4 ((uint32_t)0x00000010)
#define CAN_F19R2_FB5 ((uint32_t)0x00000020)
#define CAN_F19R2_FB6 ((uint32_t)0x00000040)
#define CAN_F19R2_FB7 ((uint32_t)0x00000080)
#define CAN_F19R2_FB8 ((uint32_t)0x00000100)
#define CAN_F19R2_FB9 ((uint32_t)0x00000200)
#define CAN_F19R2_FB10 ((uint32_t)0x00000400)
#define CAN_F19R2_FB11 ((uint32_t)0x00000800)
#define CAN_F19R2_FB12 ((uint32_t)0x00001000)
#define CAN_F19R2_FB13 ((uint32_t)0x00002000)
#define CAN_F19R2_FB14 ((uint32_t)0x00004000)
#define CAN_F19R2_FB15 ((uint32_t)0x00008000)
#define CAN_F19R2_FB16 ((uint32_t)0x00010000)
#define CAN_F19R2_FB17 ((uint32_t)0x00020000)
#define CAN_F19R2_FB18 ((uint32_t)0x00040000)
#define CAN_F19R2_FB19 ((uint32_t)0x00080000)
#define CAN_F19R2_FB20 ((uint32_t)0x00100000)
#define CAN_F19R2_FB21 ((uint32_t)0x00200000)
#define CAN_F19R2_FB22 ((uint32_t)0x00400000)
#define CAN_F19R2_FB23 ((uint32_t)0x00800000)
#define CAN_F19R2_FB24 ((uint32_t)0x01000000)
#define CAN_F19R2_FB25 ((uint32_t)0x02000000)
#define CAN_F19R2_FB26 ((uint32_t)0x04000000)
#define CAN_F19R2_FB27 ((uint32_t)0x08000000)
#define CAN_F19R2_FB28 ((uint32_t)0x10000000)
#define CAN_F19R2_FB29 ((uint32_t)0x20000000)
#define CAN_F19R2_FB30 ((uint32_t)0x40000000)
#define CAN_F19R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F20R2 register ********************/
#define CAN_F20R2_FB0 ((uint32_t)0x00000001)
#define CAN_F20R2_FB1 ((uint32_t)0x00000002)
#define CAN_F20R2_FB2 ((uint32_t)0x00000004)
#define CAN_F20R2_FB3 ((uint32_t)0x00000008)
#define CAN_F20R2_FB4 ((uint32_t)0x00000010)
#define CAN_F20R2_FB5 ((uint32_t)0x00000020)
#define CAN_F20R2_FB6 ((uint32_t)0x00000040)
#define CAN_F20R2_FB7 ((uint32_t)0x00000080)
#define CAN_F20R2_FB8 ((uint32_t)0x00000100)
#define CAN_F20R2_FB9 ((uint32_t)0x00000200)
#define CAN_F20R2_FB10 ((uint32_t)0x00000400)
#define CAN_F20R2_FB11 ((uint32_t)0x00000800)
#define CAN_F20R2_FB12 ((uint32_t)0x00001000)
#define CAN_F20R2_FB13 ((uint32_t)0x00002000)
#define CAN_F20R2_FB14 ((uint32_t)0x00004000)
#define CAN_F20R2_FB15 ((uint32_t)0x00008000)
#define CAN_F20R2_FB16 ((uint32_t)0x00010000)
#define CAN_F20R2_FB17 ((uint32_t)0x00020000)
#define CAN_F20R2_FB18 ((uint32_t)0x00040000)
#define CAN_F20R2_FB19 ((uint32_t)0x00080000)
#define CAN_F20R2_FB20 ((uint32_t)0x00100000)
#define CAN_F20R2_FB21 ((uint32_t)0x00200000)
#define CAN_F20R2_FB22 ((uint32_t)0x00400000)
#define CAN_F20R2_FB23 ((uint32_t)0x00800000)
#define CAN_F20R2_FB24 ((uint32_t)0x01000000)
#define CAN_F20R2_FB25 ((uint32_t)0x02000000)
#define CAN_F20R2_FB26 ((uint32_t)0x04000000)
#define CAN_F20R2_FB27 ((uint32_t)0x08000000)
#define CAN_F20R2_FB28 ((uint32_t)0x10000000)
#define CAN_F20R2_FB29 ((uint32_t)0x20000000)
#define CAN_F20R2_FB30 ((uint32_t)0x40000000)
#define CAN_F20R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F21R2 register ********************/
#define CAN_F21R2_FB0 ((uint32_t)0x00000001)
#define CAN_F21R2_FB1 ((uint32_t)0x00000002)
#define CAN_F21R2_FB2 ((uint32_t)0x00000004)
#define CAN_F21R2_FB3 ((uint32_t)0x00000008)
#define CAN_F21R2_FB4 ((uint32_t)0x00000010)
#define CAN_F21R2_FB5 ((uint32_t)0x00000020)
#define CAN_F21R2_FB6 ((uint32_t)0x00000040)
#define CAN_F21R2_FB7 ((uint32_t)0x00000080)
#define CAN_F21R2_FB8 ((uint32_t)0x00000100)
#define CAN_F21R2_FB9 ((uint32_t)0x00000200)
#define CAN_F21R2_FB10 ((uint32_t)0x00000400)
#define CAN_F21R2_FB11 ((uint32_t)0x00000800)
#define CAN_F21R2_FB12 ((uint32_t)0x00001000)
#define CAN_F21R2_FB13 ((uint32_t)0x00002000)
#define CAN_F21R2_FB14 ((uint32_t)0x00004000)
#define CAN_F21R2_FB15 ((uint32_t)0x00008000)
#define CAN_F21R2_FB16 ((uint32_t)0x00010000)
#define CAN_F21R2_FB17 ((uint32_t)0x00020000)
#define CAN_F21R2_FB18 ((uint32_t)0x00040000)
#define CAN_F21R2_FB19 ((uint32_t)0x00080000)
#define CAN_F21R2_FB20 ((uint32_t)0x00100000)
#define CAN_F21R2_FB21 ((uint32_t)0x00200000)
#define CAN_F21R2_FB22 ((uint32_t)0x00400000)
#define CAN_F21R2_FB23 ((uint32_t)0x00800000)
#define CAN_F21R2_FB24 ((uint32_t)0x01000000)
#define CAN_F21R2_FB25 ((uint32_t)0x02000000)
#define CAN_F21R2_FB26 ((uint32_t)0x04000000)
#define CAN_F21R2_FB27 ((uint32_t)0x08000000)
#define CAN_F21R2_FB28 ((uint32_t)0x10000000)
#define CAN_F21R2_FB29 ((uint32_t)0x20000000)
#define CAN_F21R2_FB30 ((uint32_t)0x40000000)
#define CAN_F21R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F22R2 register ********************/
#define CAN_F22R2_FB0 ((uint32_t)0x00000001)
#define CAN_F22R2_FB1 ((uint32_t)0x00000002)
#define CAN_F22R2_FB2 ((uint32_t)0x00000004)
#define CAN_F22R2_FB3 ((uint32_t)0x00000008)
#define CAN_F22R2_FB4 ((uint32_t)0x00000010)
#define CAN_F22R2_FB5 ((uint32_t)0x00000020)
#define CAN_F22R2_FB6 ((uint32_t)0x00000040)
#define CAN_F22R2_FB7 ((uint32_t)0x00000080)
#define CAN_F22R2_FB8 ((uint32_t)0x00000100)
#define CAN_F22R2_FB9 ((uint32_t)0x00000200)
#define CAN_F22R2_FB10 ((uint32_t)0x00000400)
#define CAN_F22R2_FB11 ((uint32_t)0x00000800)
#define CAN_F22R2_FB12 ((uint32_t)0x00001000)
#define CAN_F22R2_FB13 ((uint32_t)0x00002000)
#define CAN_F22R2_FB14 ((uint32_t)0x00004000)
#define CAN_F22R2_FB15 ((uint32_t)0x00008000)
#define CAN_F22R2_FB16 ((uint32_t)0x00010000)
#define CAN_F22R2_FB17 ((uint32_t)0x00020000)
#define CAN_F22R2_FB18 ((uint32_t)0x00040000)
#define CAN_F22R2_FB19 ((uint32_t)0x00080000)
#define CAN_F22R2_FB20 ((uint32_t)0x00100000)
#define CAN_F22R2_FB21 ((uint32_t)0x00200000)
#define CAN_F22R2_FB22 ((uint32_t)0x00400000)
#define CAN_F22R2_FB23 ((uint32_t)0x00800000)
#define CAN_F22R2_FB24 ((uint32_t)0x01000000)
#define CAN_F22R2_FB25 ((uint32_t)0x02000000)
#define CAN_F22R2_FB26 ((uint32_t)0x04000000)
#define CAN_F22R2_FB27 ((uint32_t)0x08000000)
#define CAN_F22R2_FB28 ((uint32_t)0x10000000)
#define CAN_F22R2_FB29 ((uint32_t)0x20000000)
#define CAN_F22R2_FB30 ((uint32_t)0x40000000)
#define CAN_F22R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F23R2 register ********************/
#define CAN_F23R2_FB0 ((uint32_t)0x00000001)
#define CAN_F23R2_FB1 ((uint32_t)0x00000002)
#define CAN_F23R2_FB2 ((uint32_t)0x00000004)
#define CAN_F23R2_FB3 ((uint32_t)0x00000008)
#define CAN_F23R2_FB4 ((uint32_t)0x00000010)
#define CAN_F23R2_FB5 ((uint32_t)0x00000020)
#define CAN_F23R2_FB6 ((uint32_t)0x00000040)
#define CAN_F23R2_FB7 ((uint32_t)0x00000080)
#define CAN_F23R2_FB8 ((uint32_t)0x00000100)
#define CAN_F23R2_FB9 ((uint32_t)0x00000200)
#define CAN_F23R2_FB10 ((uint32_t)0x00000400)
#define CAN_F23R2_FB11 ((uint32_t)0x00000800)
#define CAN_F23R2_FB12 ((uint32_t)0x00001000)
#define CAN_F23R2_FB13 ((uint32_t)0x00002000)
#define CAN_F23R2_FB14 ((uint32_t)0x00004000)
#define CAN_F23R2_FB15 ((uint32_t)0x00008000)
#define CAN_F23R2_FB16 ((uint32_t)0x00010000)
#define CAN_F23R2_FB17 ((uint32_t)0x00020000)
#define CAN_F23R2_FB18 ((uint32_t)0x00040000)
#define CAN_F23R2_FB19 ((uint32_t)0x00080000)
#define CAN_F23R2_FB20 ((uint32_t)0x00100000)
#define CAN_F23R2_FB21 ((uint32_t)0x00200000)
#define CAN_F23R2_FB22 ((uint32_t)0x00400000)
#define CAN_F23R2_FB23 ((uint32_t)0x00800000)
#define CAN_F23R2_FB24 ((uint32_t)0x01000000)
#define CAN_F23R2_FB25 ((uint32_t)0x02000000)
#define CAN_F23R2_FB26 ((uint32_t)0x04000000)
#define CAN_F23R2_FB27 ((uint32_t)0x08000000)
#define CAN_F23R2_FB28 ((uint32_t)0x10000000)
#define CAN_F23R2_FB29 ((uint32_t)0x20000000)
#define CAN_F23R2_FB30 ((uint32_t)0x40000000)
#define CAN_F23R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F24R2 register ********************/
#define CAN_F24R2_FB0 ((uint32_t)0x00000001)
#define CAN_F24R2_FB1 ((uint32_t)0x00000002)
#define CAN_F24R2_FB2 ((uint32_t)0x00000004)
#define CAN_F24R2_FB3 ((uint32_t)0x00000008)
#define CAN_F24R2_FB4 ((uint32_t)0x00000010)
#define CAN_F24R2_FB5 ((uint32_t)0x00000020)
#define CAN_F24R2_FB6 ((uint32_t)0x00000040)
#define CAN_F24R2_FB7 ((uint32_t)0x00000080)
#define CAN_F24R2_FB8 ((uint32_t)0x00000100)
#define CAN_F24R2_FB9 ((uint32_t)0x00000200)
#define CAN_F24R2_FB10 ((uint32_t)0x00000400)
#define CAN_F24R2_FB11 ((uint32_t)0x00000800)
#define CAN_F24R2_FB12 ((uint32_t)0x00001000)
#define CAN_F24R2_FB13 ((uint32_t)0x00002000)
#define CAN_F24R2_FB14 ((uint32_t)0x00004000)
#define CAN_F24R2_FB15 ((uint32_t)0x00008000)
#define CAN_F24R2_FB16 ((uint32_t)0x00010000)
#define CAN_F24R2_FB17 ((uint32_t)0x00020000)
#define CAN_F24R2_FB18 ((uint32_t)0x00040000)
#define CAN_F24R2_FB19 ((uint32_t)0x00080000)
#define CAN_F24R2_FB20 ((uint32_t)0x00100000)
#define CAN_F24R2_FB21 ((uint32_t)0x00200000)
#define CAN_F24R2_FB22 ((uint32_t)0x00400000)
#define CAN_F24R2_FB23 ((uint32_t)0x00800000)
#define CAN_F24R2_FB24 ((uint32_t)0x01000000)
#define CAN_F24R2_FB25 ((uint32_t)0x02000000)
#define CAN_F24R2_FB26 ((uint32_t)0x04000000)
#define CAN_F24R2_FB27 ((uint32_t)0x08000000)
#define CAN_F24R2_FB28 ((uint32_t)0x10000000)
#define CAN_F24R2_FB29 ((uint32_t)0x20000000)
#define CAN_F24R2_FB30 ((uint32_t)0x40000000)
#define CAN_F24R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F25R2 register ********************/
#define CAN_F25R2_FB0 ((uint32_t)0x00000001)
#define CAN_F25R2_FB1 ((uint32_t)0x00000002)
#define CAN_F25R2_FB2 ((uint32_t)0x00000004)
#define CAN_F25R2_FB3 ((uint32_t)0x00000008)
#define CAN_F25R2_FB4 ((uint32_t)0x00000010)
#define CAN_F25R2_FB5 ((uint32_t)0x00000020)
#define CAN_F25R2_FB6 ((uint32_t)0x00000040)
#define CAN_F25R2_FB7 ((uint32_t)0x00000080)
#define CAN_F25R2_FB8 ((uint32_t)0x00000100)
#define CAN_F25R2_FB9 ((uint32_t)0x00000200)
#define CAN_F25R2_FB10 ((uint32_t)0x00000400)
#define CAN_F25R2_FB11 ((uint32_t)0x00000800)
#define CAN_F25R2_FB12 ((uint32_t)0x00001000)
#define CAN_F25R2_FB13 ((uint32_t)0x00002000)
#define CAN_F25R2_FB14 ((uint32_t)0x00004000)
#define CAN_F25R2_FB15 ((uint32_t)0x00008000)
#define CAN_F25R2_FB16 ((uint32_t)0x00010000)
#define CAN_F25R2_FB17 ((uint32_t)0x00020000)
#define CAN_F25R2_FB18 ((uint32_t)0x00040000)
#define CAN_F25R2_FB19 ((uint32_t)0x00080000)
#define CAN_F25R2_FB20 ((uint32_t)0x00100000)
#define CAN_F25R2_FB21 ((uint32_t)0x00200000)
#define CAN_F25R2_FB22 ((uint32_t)0x00400000)
#define CAN_F25R2_FB23 ((uint32_t)0x00800000)
#define CAN_F25R2_FB24 ((uint32_t)0x01000000)
#define CAN_F25R2_FB25 ((uint32_t)0x02000000)
#define CAN_F25R2_FB26 ((uint32_t)0x04000000)
#define CAN_F25R2_FB27 ((uint32_t)0x08000000)
#define CAN_F25R2_FB28 ((uint32_t)0x10000000)
#define CAN_F25R2_FB29 ((uint32_t)0x20000000)
#define CAN_F25R2_FB30 ((uint32_t)0x40000000)
#define CAN_F25R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F26R2 register ********************/
#define CAN_F26R2_FB0 ((uint32_t)0x00000001)
#define CAN_F26R2_FB1 ((uint32_t)0x00000002)
#define CAN_F26R2_FB2 ((uint32_t)0x00000004)
#define CAN_F26R2_FB3 ((uint32_t)0x00000008)
#define CAN_F26R2_FB4 ((uint32_t)0x00000010)
#define CAN_F26R2_FB5 ((uint32_t)0x00000020)
#define CAN_F26R2_FB6 ((uint32_t)0x00000040)
#define CAN_F26R2_FB7 ((uint32_t)0x00000080)
#define CAN_F26R2_FB8 ((uint32_t)0x00000100)
#define CAN_F26R2_FB9 ((uint32_t)0x00000200)
#define CAN_F26R2_FB10 ((uint32_t)0x00000400)
#define CAN_F26R2_FB11 ((uint32_t)0x00000800)
#define CAN_F26R2_FB12 ((uint32_t)0x00001000)
#define CAN_F26R2_FB13 ((uint32_t)0x00002000)
#define CAN_F26R2_FB14 ((uint32_t)0x00004000)
#define CAN_F26R2_FB15 ((uint32_t)0x00008000)
#define CAN_F26R2_FB16 ((uint32_t)0x00010000)
#define CAN_F26R2_FB17 ((uint32_t)0x00020000)
#define CAN_F26R2_FB18 ((uint32_t)0x00040000)
#define CAN_F26R2_FB19 ((uint32_t)0x00080000)
#define CAN_F26R2_FB20 ((uint32_t)0x00100000)
#define CAN_F26R2_FB21 ((uint32_t)0x00200000)
#define CAN_F26R2_FB22 ((uint32_t)0x00400000)
#define CAN_F26R2_FB23 ((uint32_t)0x00800000)
#define CAN_F26R2_FB24 ((uint32_t)0x01000000)
#define CAN_F26R2_FB25 ((uint32_t)0x02000000)
#define CAN_F26R2_FB26 ((uint32_t)0x04000000)
#define CAN_F26R2_FB27 ((uint32_t)0x08000000)
#define CAN_F26R2_FB28 ((uint32_t)0x10000000)
#define CAN_F26R2_FB29 ((uint32_t)0x20000000)
#define CAN_F26R2_FB30 ((uint32_t)0x40000000)
#define CAN_F26R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F27R2 register ********************/
#define CAN_F27R2_FB0 ((uint32_t)0x00000001)
#define CAN_F27R2_FB1 ((uint32_t)0x00000002)
#define CAN_F27R2_FB2 ((uint32_t)0x00000004)
#define CAN_F27R2_FB3 ((uint32_t)0x00000008)
#define CAN_F27R2_FB4 ((uint32_t)0x00000010)
#define CAN_F27R2_FB5 ((uint32_t)0x00000020)
#define CAN_F27R2_FB6 ((uint32_t)0x00000040)
#define CAN_F27R2_FB7 ((uint32_t)0x00000080)
#define CAN_F27R2_FB8 ((uint32_t)0x00000100)
#define CAN_F27R2_FB9 ((uint32_t)0x00000200)
#define CAN_F27R2_FB10 ((uint32_t)0x00000400)
#define CAN_F27R2_FB11 ((uint32_t)0x00000800)
#define CAN_F27R2_FB12 ((uint32_t)0x00001000)
#define CAN_F27R2_FB13 ((uint32_t)0x00002000)
#define CAN_F27R2_FB14 ((uint32_t)0x00004000)
#define CAN_F27R2_FB15 ((uint32_t)0x00008000)
#define CAN_F27R2_FB16 ((uint32_t)0x00010000)
#define CAN_F27R2_FB17 ((uint32_t)0x00020000)
#define CAN_F27R2_FB18 ((uint32_t)0x00040000)
#define CAN_F27R2_FB19 ((uint32_t)0x00080000)
#define CAN_F27R2_FB20 ((uint32_t)0x00100000)
#define CAN_F27R2_FB21 ((uint32_t)0x00200000)
#define CAN_F27R2_FB22 ((uint32_t)0x00400000)
#define CAN_F27R2_FB23 ((uint32_t)0x00800000)
#define CAN_F27R2_FB24 ((uint32_t)0x01000000)
#define CAN_F27R2_FB25 ((uint32_t)0x02000000)
#define CAN_F27R2_FB26 ((uint32_t)0x04000000)
#define CAN_F27R2_FB27 ((uint32_t)0x08000000)
#define CAN_F27R2_FB28 ((uint32_t)0x10000000)
#define CAN_F27R2_FB29 ((uint32_t)0x20000000)
#define CAN_F27R2_FB30 ((uint32_t)0x40000000)
#define CAN_F27R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F28R2 register ********************/
#define CAN_F28R2_FB0 ((uint32_t)0x00000001)
#define CAN_F28R2_FB1 ((uint32_t)0x00000002)
#define CAN_F28R2_FB2 ((uint32_t)0x00000004)
#define CAN_F28R2_FB3 ((uint32_t)0x00000008)
#define CAN_F28R2_FB4 ((uint32_t)0x00000010)
#define CAN_F28R2_FB5 ((uint32_t)0x00000020)
#define CAN_F28R2_FB6 ((uint32_t)0x00000040)
#define CAN_F28R2_FB7 ((uint32_t)0x00000080)
#define CAN_F28R2_FB8 ((uint32_t)0x00000100)
#define CAN_F28R2_FB9 ((uint32_t)0x00000200)
#define CAN_F28R2_FB10 ((uint32_t)0x00000400)
#define CAN_F28R2_FB11 ((uint32_t)0x00000800)
#define CAN_F28R2_FB12 ((uint32_t)0x00001000)
#define CAN_F28R2_FB13 ((uint32_t)0x00002000)
#define CAN_F28R2_FB14 ((uint32_t)0x00004000)
#define CAN_F28R2_FB15 ((uint32_t)0x00008000)
#define CAN_F28R2_FB16 ((uint32_t)0x00010000)
#define CAN_F28R2_FB17 ((uint32_t)0x00020000)
#define CAN_F28R2_FB18 ((uint32_t)0x00040000)
#define CAN_F28R2_FB19 ((uint32_t)0x00080000)
#define CAN_F28R2_FB20 ((uint32_t)0x00100000)
#define CAN_F28R2_FB21 ((uint32_t)0x00200000)
#define CAN_F28R2_FB22 ((uint32_t)0x00400000)
#define CAN_F28R2_FB23 ((uint32_t)0x00800000)
#define CAN_F28R2_FB24 ((uint32_t)0x01000000)
#define CAN_F28R2_FB25 ((uint32_t)0x02000000)
#define CAN_F28R2_FB26 ((uint32_t)0x04000000)
#define CAN_F28R2_FB27 ((uint32_t)0x08000000)
#define CAN_F28R2_FB28 ((uint32_t)0x10000000)
#define CAN_F28R2_FB29 ((uint32_t)0x20000000)
#define CAN_F28R2_FB30 ((uint32_t)0x40000000)
#define CAN_F28R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F29R2 register ********************/
#define CAN_F29R2_FB0 ((uint32_t)0x00000001)
#define CAN_F29R2_FB1 ((uint32_t)0x00000002)
#define CAN_F29R2_FB2 ((uint32_t)0x00000004)
#define CAN_F29R2_FB3 ((uint32_t)0x00000008)
#define CAN_F29R2_FB4 ((uint32_t)0x00000010)
#define CAN_F29R2_FB5 ((uint32_t)0x00000020)
#define CAN_F29R2_FB6 ((uint32_t)0x00000040)
#define CAN_F29R2_FB7 ((uint32_t)0x00000080)
#define CAN_F29R2_FB8 ((uint32_t)0x00000100)
#define CAN_F29R2_FB9 ((uint32_t)0x00000200)
#define CAN_F29R2_FB10 ((uint32_t)0x00000400)
#define CAN_F29R2_FB11 ((uint32_t)0x00000800)
#define CAN_F29R2_FB12 ((uint32_t)0x00001000)
#define CAN_F29R2_FB13 ((uint32_t)0x00002000)
#define CAN_F29R2_FB14 ((uint32_t)0x00004000)
#define CAN_F29R2_FB15 ((uint32_t)0x00008000)
#define CAN_F29R2_FB16 ((uint32_t)0x00010000)
#define CAN_F29R2_FB17 ((uint32_t)0x00020000)
#define CAN_F29R2_FB18 ((uint32_t)0x00040000)
#define CAN_F29R2_FB19 ((uint32_t)0x00080000)
#define CAN_F29R2_FB20 ((uint32_t)0x00100000)
#define CAN_F29R2_FB21 ((uint32_t)0x00200000)
#define CAN_F29R2_FB22 ((uint32_t)0x00400000)
#define CAN_F29R2_FB23 ((uint32_t)0x00800000)
#define CAN_F29R2_FB24 ((uint32_t)0x01000000)
#define CAN_F29R2_FB25 ((uint32_t)0x02000000)
#define CAN_F29R2_FB26 ((uint32_t)0x04000000)
#define CAN_F29R2_FB27 ((uint32_t)0x08000000)
#define CAN_F29R2_FB28 ((uint32_t)0x10000000)
#define CAN_F29R2_FB29 ((uint32_t)0x20000000)
#define CAN_F29R2_FB30 ((uint32_t)0x40000000)
#define CAN_F29R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F30R2 register ********************/
#define CAN_F30R2_FB0 ((uint32_t)0x00000001)
#define CAN_F30R2_FB1 ((uint32_t)0x00000002)
#define CAN_F30R2_FB2 ((uint32_t)0x00000004)
#define CAN_F30R2_FB3 ((uint32_t)0x00000008)
#define CAN_F30R2_FB4 ((uint32_t)0x00000010)
#define CAN_F30R2_FB5 ((uint32_t)0x00000020)
#define CAN_F30R2_FB6 ((uint32_t)0x00000040)
#define CAN_F30R2_FB7 ((uint32_t)0x00000080)
#define CAN_F30R2_FB8 ((uint32_t)0x00000100)
#define CAN_F30R2_FB9 ((uint32_t)0x00000200)
#define CAN_F30R2_FB10 ((uint32_t)0x00000400)
#define CAN_F30R2_FB11 ((uint32_t)0x00000800)
#define CAN_F30R2_FB12 ((uint32_t)0x00001000)
#define CAN_F30R2_FB13 ((uint32_t)0x00002000)
#define CAN_F30R2_FB14 ((uint32_t)0x00004000)
#define CAN_F30R2_FB15 ((uint32_t)0x00008000)
#define CAN_F30R2_FB16 ((uint32_t)0x00010000)
#define CAN_F30R2_FB17 ((uint32_t)0x00020000)
#define CAN_F30R2_FB18 ((uint32_t)0x00040000)
#define CAN_F30R2_FB19 ((uint32_t)0x00080000)
#define CAN_F30R2_FB20 ((uint32_t)0x00100000)
#define CAN_F30R2_FB21 ((uint32_t)0x00200000)
#define CAN_F30R2_FB22 ((uint32_t)0x00400000)
#define CAN_F30R2_FB23 ((uint32_t)0x00800000)
#define CAN_F30R2_FB24 ((uint32_t)0x01000000)
#define CAN_F30R2_FB25 ((uint32_t)0x02000000)
#define CAN_F30R2_FB26 ((uint32_t)0x04000000)
#define CAN_F30R2_FB27 ((uint32_t)0x08000000)
#define CAN_F30R2_FB28 ((uint32_t)0x10000000)
#define CAN_F30R2_FB29 ((uint32_t)0x20000000)
#define CAN_F30R2_FB30 ((uint32_t)0x40000000)
#define CAN_F30R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F31R2 register ********************/
#define CAN_F31R2_FB0 ((uint32_t)0x00000001)
#define CAN_F31R2_FB1 ((uint32_t)0x00000002)
#define CAN_F31R2_FB2 ((uint32_t)0x00000004)
#define CAN_F31R2_FB3 ((uint32_t)0x00000008)
#define CAN_F31R2_FB4 ((uint32_t)0x00000010)
#define CAN_F31R2_FB5 ((uint32_t)0x00000020)
#define CAN_F31R2_FB6 ((uint32_t)0x00000040)
#define CAN_F31R2_FB7 ((uint32_t)0x00000080)
#define CAN_F31R2_FB8 ((uint32_t)0x00000100)
#define CAN_F31R2_FB9 ((uint32_t)0x00000200)
#define CAN_F31R2_FB10 ((uint32_t)0x00000400)
#define CAN_F31R2_FB11 ((uint32_t)0x00000800)
#define CAN_F31R2_FB12 ((uint32_t)0x00001000)
#define CAN_F31R2_FB13 ((uint32_t)0x00002000)
#define CAN_F31R2_FB14 ((uint32_t)0x00004000)
#define CAN_F31R2_FB15 ((uint32_t)0x00008000)
#define CAN_F31R2_FB16 ((uint32_t)0x00010000)
#define CAN_F31R2_FB17 ((uint32_t)0x00020000)
#define CAN_F31R2_FB18 ((uint32_t)0x00040000)
#define CAN_F31R2_FB19 ((uint32_t)0x00080000)
#define CAN_F31R2_FB20 ((uint32_t)0x00100000)
#define CAN_F31R2_FB21 ((uint32_t)0x00200000)
#define CAN_F31R2_FB22 ((uint32_t)0x00400000)
#define CAN_F31R2_FB23 ((uint32_t)0x00800000)
#define CAN_F31R2_FB24 ((uint32_t)0x01000000)
#define CAN_F31R2_FB25 ((uint32_t)0x02000000)
#define CAN_F31R2_FB26 ((uint32_t)0x04000000)
#define CAN_F31R2_FB27 ((uint32_t)0x08000000)
#define CAN_F31R2_FB28 ((uint32_t)0x10000000)
#define CAN_F31R2_FB29 ((uint32_t)0x20000000)
#define CAN_F31R2_FB30 ((uint32_t)0x40000000)
#define CAN_F31R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F32R2 register ********************/
#define CAN_F32R2_FB0 ((uint32_t)0x00000001)
#define CAN_F32R2_FB1 ((uint32_t)0x00000002)
#define CAN_F32R2_FB2 ((uint32_t)0x00000004)
#define CAN_F32R2_FB3 ((uint32_t)0x00000008)
#define CAN_F32R2_FB4 ((uint32_t)0x00000010)
#define CAN_F32R2_FB5 ((uint32_t)0x00000020)
#define CAN_F32R2_FB6 ((uint32_t)0x00000040)
#define CAN_F32R2_FB7 ((uint32_t)0x00000080)
#define CAN_F32R2_FB8 ((uint32_t)0x00000100)
#define CAN_F32R2_FB9 ((uint32_t)0x00000200)
#define CAN_F32R2_FB10 ((uint32_t)0x00000400)
#define CAN_F32R2_FB11 ((uint32_t)0x00000800)
#define CAN_F32R2_FB12 ((uint32_t)0x00001000)
#define CAN_F32R2_FB13 ((uint32_t)0x00002000)
#define CAN_F32R2_FB14 ((uint32_t)0x00004000)
#define CAN_F32R2_FB15 ((uint32_t)0x00008000)
#define CAN_F32R2_FB16 ((uint32_t)0x00010000)
#define CAN_F32R2_FB17 ((uint32_t)0x00020000)
#define CAN_F32R2_FB18 ((uint32_t)0x00040000)
#define CAN_F32R2_FB19 ((uint32_t)0x00080000)
#define CAN_F32R2_FB20 ((uint32_t)0x00100000)
#define CAN_F32R2_FB21 ((uint32_t)0x00200000)
#define CAN_F32R2_FB22 ((uint32_t)0x00400000)
#define CAN_F32R2_FB23 ((uint32_t)0x00800000)
#define CAN_F32R2_FB24 ((uint32_t)0x01000000)
#define CAN_F32R2_FB25 ((uint32_t)0x02000000)
#define CAN_F32R2_FB26 ((uint32_t)0x04000000)
#define CAN_F32R2_FB27 ((uint32_t)0x08000000)
#define CAN_F32R2_FB28 ((uint32_t)0x10000000)
#define CAN_F32R2_FB29 ((uint32_t)0x20000000)
#define CAN_F32R2_FB30 ((uint32_t)0x40000000)
#define CAN_F32R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F33R2 register ********************/
#define CAN_F33R2_FB0 ((uint32_t)0x00000001)
#define CAN_F33R2_FB1 ((uint32_t)0x00000002)
#define CAN_F33R2_FB2 ((uint32_t)0x00000004)
#define CAN_F33R2_FB3 ((uint32_t)0x00000008)
#define CAN_F33R2_FB4 ((uint32_t)0x00000010)
#define CAN_F33R2_FB5 ((uint32_t)0x00000020)
#define CAN_F33R2_FB6 ((uint32_t)0x00000040)
#define CAN_F33R2_FB7 ((uint32_t)0x00000080)
#define CAN_F33R2_FB8 ((uint32_t)0x00000100)
#define CAN_F33R2_FB9 ((uint32_t)0x00000200)
#define CAN_F33R2_FB10 ((uint32_t)0x00000400)
#define CAN_F33R2_FB11 ((uint32_t)0x00000800)
#define CAN_F33R2_FB12 ((uint32_t)0x00001000)
#define CAN_F33R2_FB13 ((uint32_t)0x00002000)
#define CAN_F33R2_FB14 ((uint32_t)0x00004000)
#define CAN_F33R2_FB15 ((uint32_t)0x00008000)
#define CAN_F33R2_FB16 ((uint32_t)0x00010000)
#define CAN_F33R2_FB17 ((uint32_t)0x00020000)
#define CAN_F33R2_FB18 ((uint32_t)0x00040000)
#define CAN_F33R2_FB19 ((uint32_t)0x00080000)
#define CAN_F33R2_FB20 ((uint32_t)0x00100000)
#define CAN_F33R2_FB21 ((uint32_t)0x00200000)
#define CAN_F33R2_FB22 ((uint32_t)0x00400000)
#define CAN_F33R2_FB23 ((uint32_t)0x00800000)
#define CAN_F33R2_FB24 ((uint32_t)0x01000000)
#define CAN_F33R2_FB25 ((uint32_t)0x02000000)
#define CAN_F33R2_FB26 ((uint32_t)0x04000000)
#define CAN_F33R2_FB27 ((uint32_t)0x08000000)
#define CAN_F33R2_FB28 ((uint32_t)0x10000000)
#define CAN_F33R2_FB29 ((uint32_t)0x20000000)
#define CAN_F33R2_FB30 ((uint32_t)0x40000000)
#define CAN_F33R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F34R2 register ********************/
#define CAN_F34R2_FB0 ((uint32_t)0x00000001)
#define CAN_F34R2_FB1 ((uint32_t)0x00000002)
#define CAN_F34R2_FB2 ((uint32_t)0x00000004)
#define CAN_F34R2_FB3 ((uint32_t)0x00000008)
#define CAN_F34R2_FB4 ((uint32_t)0x00000010)
#define CAN_F34R2_FB5 ((uint32_t)0x00000020)
#define CAN_F34R2_FB6 ((uint32_t)0x00000040)
#define CAN_F34R2_FB7 ((uint32_t)0x00000080)
#define CAN_F34R2_FB8 ((uint32_t)0x00000100)
#define CAN_F34R2_FB9 ((uint32_t)0x00000200)
#define CAN_F34R2_FB10 ((uint32_t)0x00000400)
#define CAN_F34R2_FB11 ((uint32_t)0x00000800)
#define CAN_F34R2_FB12 ((uint32_t)0x00001000)
#define CAN_F34R2_FB13 ((uint32_t)0x00002000)
#define CAN_F34R2_FB14 ((uint32_t)0x00004000)
#define CAN_F34R2_FB15 ((uint32_t)0x00008000)
#define CAN_F34R2_FB16 ((uint32_t)0x00010000)
#define CAN_F34R2_FB17 ((uint32_t)0x00020000)
#define CAN_F34R2_FB18 ((uint32_t)0x00040000)
#define CAN_F34R2_FB19 ((uint32_t)0x00080000)
#define CAN_F34R2_FB20 ((uint32_t)0x00100000)
#define CAN_F34R2_FB21 ((uint32_t)0x00200000)
#define CAN_F34R2_FB22 ((uint32_t)0x00400000)
#define CAN_F34R2_FB23 ((uint32_t)0x00800000)
#define CAN_F34R2_FB24 ((uint32_t)0x01000000)
#define CAN_F34R2_FB25 ((uint32_t)0x02000000)
#define CAN_F34R2_FB26 ((uint32_t)0x04000000)
#define CAN_F34R2_FB27 ((uint32_t)0x08000000)
#define CAN_F34R2_FB28 ((uint32_t)0x10000000)
#define CAN_F34R2_FB29 ((uint32_t)0x20000000)
#define CAN_F34R2_FB30 ((uint32_t)0x40000000)
#define CAN_F34R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F35R2 register ********************/
#define CAN_F35R2_FB0 ((uint32_t)0x00000001)
#define CAN_F35R2_FB1 ((uint32_t)0x00000002)
#define CAN_F35R2_FB2 ((uint32_t)0x00000004)
#define CAN_F35R2_FB3 ((uint32_t)0x00000008)
#define CAN_F35R2_FB4 ((uint32_t)0x00000010)
#define CAN_F35R2_FB5 ((uint32_t)0x00000020)
#define CAN_F35R2_FB6 ((uint32_t)0x00000040)
#define CAN_F35R2_FB7 ((uint32_t)0x00000080)
#define CAN_F35R2_FB8 ((uint32_t)0x00000100)
#define CAN_F35R2_FB9 ((uint32_t)0x00000200)
#define CAN_F35R2_FB10 ((uint32_t)0x00000400)
#define CAN_F35R2_FB11 ((uint32_t)0x00000800)
#define CAN_F35R2_FB12 ((uint32_t)0x00001000)
#define CAN_F35R2_FB13 ((uint32_t)0x00002000)
#define CAN_F35R2_FB14 ((uint32_t)0x00004000)
#define CAN_F35R2_FB15 ((uint32_t)0x00008000)
#define CAN_F35R2_FB16 ((uint32_t)0x00010000)
#define CAN_F35R2_FB17 ((uint32_t)0x00020000)
#define CAN_F35R2_FB18 ((uint32_t)0x00040000)
#define CAN_F35R2_FB19 ((uint32_t)0x00080000)
#define CAN_F35R2_FB20 ((uint32_t)0x00100000)
#define CAN_F35R2_FB21 ((uint32_t)0x00200000)
#define CAN_F35R2_FB22 ((uint32_t)0x00400000)
#define CAN_F35R2_FB23 ((uint32_t)0x00800000)
#define CAN_F35R2_FB24 ((uint32_t)0x01000000)
#define CAN_F35R2_FB25 ((uint32_t)0x02000000)
#define CAN_F35R2_FB26 ((uint32_t)0x04000000)
#define CAN_F35R2_FB27 ((uint32_t)0x08000000)
#define CAN_F35R2_FB28 ((uint32_t)0x10000000)
#define CAN_F35R2_FB29 ((uint32_t)0x20000000)
#define CAN_F35R2_FB30 ((uint32_t)0x40000000)
#define CAN_F35R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F36R2 register ********************/
#define CAN_F36R2_FB0 ((uint32_t)0x00000001)
#define CAN_F36R2_FB1 ((uint32_t)0x00000002)
#define CAN_F36R2_FB2 ((uint32_t)0x00000004)
#define CAN_F36R2_FB3 ((uint32_t)0x00000008)
#define CAN_F36R2_FB4 ((uint32_t)0x00000010)
#define CAN_F36R2_FB5 ((uint32_t)0x00000020)
#define CAN_F36R2_FB6 ((uint32_t)0x00000040)
#define CAN_F36R2_FB7 ((uint32_t)0x00000080)
#define CAN_F36R2_FB8 ((uint32_t)0x00000100)
#define CAN_F36R2_FB9 ((uint32_t)0x00000200)
#define CAN_F36R2_FB10 ((uint32_t)0x00000400)
#define CAN_F36R2_FB11 ((uint32_t)0x00000800)
#define CAN_F36R2_FB12 ((uint32_t)0x00001000)
#define CAN_F36R2_FB13 ((uint32_t)0x00002000)
#define CAN_F36R2_FB14 ((uint32_t)0x00004000)
#define CAN_F36R2_FB15 ((uint32_t)0x00008000)
#define CAN_F36R2_FB16 ((uint32_t)0x00010000)
#define CAN_F36R2_FB17 ((uint32_t)0x00020000)
#define CAN_F36R2_FB18 ((uint32_t)0x00040000)
#define CAN_F36R2_FB19 ((uint32_t)0x00080000)
#define CAN_F36R2_FB20 ((uint32_t)0x00100000)
#define CAN_F36R2_FB21 ((uint32_t)0x00200000)
#define CAN_F36R2_FB22 ((uint32_t)0x00400000)
#define CAN_F36R2_FB23 ((uint32_t)0x00800000)
#define CAN_F36R2_FB24 ((uint32_t)0x01000000)
#define CAN_F36R2_FB25 ((uint32_t)0x02000000)
#define CAN_F36R2_FB26 ((uint32_t)0x04000000)
#define CAN_F36R2_FB27 ((uint32_t)0x08000000)
#define CAN_F36R2_FB28 ((uint32_t)0x10000000)
#define CAN_F36R2_FB29 ((uint32_t)0x20000000)
#define CAN_F36R2_FB30 ((uint32_t)0x40000000)
#define CAN_F36R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F37R2 register ********************/
#define CAN_F37R2_FB0 ((uint32_t)0x00000001)
#define CAN_F37R2_FB1 ((uint32_t)0x00000002)
#define CAN_F37R2_FB2 ((uint32_t)0x00000004)
#define CAN_F37R2_FB3 ((uint32_t)0x00000008)
#define CAN_F37R2_FB4 ((uint32_t)0x00000010)
#define CAN_F37R2_FB5 ((uint32_t)0x00000020)
#define CAN_F37R2_FB6 ((uint32_t)0x00000040)
#define CAN_F37R2_FB7 ((uint32_t)0x00000080)
#define CAN_F37R2_FB8 ((uint32_t)0x00000100)
#define CAN_F37R2_FB9 ((uint32_t)0x00000200)
#define CAN_F37R2_FB10 ((uint32_t)0x00000400)
#define CAN_F37R2_FB11 ((uint32_t)0x00000800)
#define CAN_F37R2_FB12 ((uint32_t)0x00001000)
#define CAN_F37R2_FB13 ((uint32_t)0x00002000)
#define CAN_F37R2_FB14 ((uint32_t)0x00004000)
#define CAN_F37R2_FB15 ((uint32_t)0x00008000)
#define CAN_F37R2_FB16 ((uint32_t)0x00010000)
#define CAN_F37R2_FB17 ((uint32_t)0x00020000)
#define CAN_F37R2_FB18 ((uint32_t)0x00040000)
#define CAN_F37R2_FB19 ((uint32_t)0x00080000)
#define CAN_F37R2_FB20 ((uint32_t)0x00100000)
#define CAN_F37R2_FB21 ((uint32_t)0x00200000)
#define CAN_F37R2_FB22 ((uint32_t)0x00400000)
#define CAN_F37R2_FB23 ((uint32_t)0x00800000)
#define CAN_F37R2_FB24 ((uint32_t)0x01000000)
#define CAN_F37R2_FB25 ((uint32_t)0x02000000)
#define CAN_F37R2_FB26 ((uint32_t)0x04000000)
#define CAN_F37R2_FB27 ((uint32_t)0x08000000)
#define CAN_F37R2_FB28 ((uint32_t)0x10000000)
#define CAN_F37R2_FB29 ((uint32_t)0x20000000)
#define CAN_F37R2_FB30 ((uint32_t)0x40000000)
#define CAN_F37R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F38R2 register ********************/
#define CAN_F38R2_FB0 ((uint32_t)0x00000001)
#define CAN_F38R2_FB1 ((uint32_t)0x00000002)
#define CAN_F38R2_FB2 ((uint32_t)0x00000004)
#define CAN_F38R2_FB3 ((uint32_t)0x00000008)
#define CAN_F38R2_FB4 ((uint32_t)0x00000010)
#define CAN_F38R2_FB5 ((uint32_t)0x00000020)
#define CAN_F38R2_FB6 ((uint32_t)0x00000040)
#define CAN_F38R2_FB7 ((uint32_t)0x00000080)
#define CAN_F38R2_FB8 ((uint32_t)0x00000100)
#define CAN_F38R2_FB9 ((uint32_t)0x00000200)
#define CAN_F38R2_FB10 ((uint32_t)0x00000400)
#define CAN_F38R2_FB11 ((uint32_t)0x00000800)
#define CAN_F38R2_FB12 ((uint32_t)0x00001000)
#define CAN_F38R2_FB13 ((uint32_t)0x00002000)
#define CAN_F38R2_FB14 ((uint32_t)0x00004000)
#define CAN_F38R2_FB15 ((uint32_t)0x00008000)
#define CAN_F38R2_FB16 ((uint32_t)0x00010000)
#define CAN_F38R2_FB17 ((uint32_t)0x00020000)
#define CAN_F38R2_FB18 ((uint32_t)0x00040000)
#define CAN_F38R2_FB19 ((uint32_t)0x00080000)
#define CAN_F38R2_FB20 ((uint32_t)0x00100000)
#define CAN_F38R2_FB21 ((uint32_t)0x00200000)
#define CAN_F38R2_FB22 ((uint32_t)0x00400000)
#define CAN_F38R2_FB23 ((uint32_t)0x00800000)
#define CAN_F38R2_FB24 ((uint32_t)0x01000000)
#define CAN_F38R2_FB25 ((uint32_t)0x02000000)
#define CAN_F38R2_FB26 ((uint32_t)0x04000000)
#define CAN_F38R2_FB27 ((uint32_t)0x08000000)
#define CAN_F38R2_FB28 ((uint32_t)0x10000000)
#define CAN_F38R2_FB29 ((uint32_t)0x20000000)
#define CAN_F38R2_FB30 ((uint32_t)0x40000000)
#define CAN_F38R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F39R2 register ********************/
#define CAN_F39R2_FB0 ((uint32_t)0x00000001)
#define CAN_F39R2_FB1 ((uint32_t)0x00000002)
#define CAN_F39R2_FB2 ((uint32_t)0x00000004)
#define CAN_F39R2_FB3 ((uint32_t)0x00000008)
#define CAN_F39R2_FB4 ((uint32_t)0x00000010)
#define CAN_F39R2_FB5 ((uint32_t)0x00000020)
#define CAN_F39R2_FB6 ((uint32_t)0x00000040)
#define CAN_F39R2_FB7 ((uint32_t)0x00000080)
#define CAN_F39R2_FB8 ((uint32_t)0x00000100)
#define CAN_F39R2_FB9 ((uint32_t)0x00000200)
#define CAN_F39R2_FB10 ((uint32_t)0x00000400)
#define CAN_F39R2_FB11 ((uint32_t)0x00000800)
#define CAN_F39R2_FB12 ((uint32_t)0x00001000)
#define CAN_F39R2_FB13 ((uint32_t)0x00002000)
#define CAN_F39R2_FB14 ((uint32_t)0x00004000)
#define CAN_F39R2_FB15 ((uint32_t)0x00008000)
#define CAN_F39R2_FB16 ((uint32_t)0x00010000)
#define CAN_F39R2_FB17 ((uint32_t)0x00020000)
#define CAN_F39R2_FB18 ((uint32_t)0x00040000)
#define CAN_F39R2_FB19 ((uint32_t)0x00080000)
#define CAN_F39R2_FB20 ((uint32_t)0x00100000)
#define CAN_F39R2_FB21 ((uint32_t)0x00200000)
#define CAN_F39R2_FB22 ((uint32_t)0x00400000)
#define CAN_F39R2_FB23 ((uint32_t)0x00800000)
#define CAN_F39R2_FB24 ((uint32_t)0x01000000)
#define CAN_F39R2_FB25 ((uint32_t)0x02000000)
#define CAN_F39R2_FB26 ((uint32_t)0x04000000)
#define CAN_F39R2_FB27 ((uint32_t)0x08000000)
#define CAN_F39R2_FB28 ((uint32_t)0x10000000)
#define CAN_F39R2_FB29 ((uint32_t)0x20000000)
#define CAN_F39R2_FB30 ((uint32_t)0x40000000)
#define CAN_F39R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F40R2 register ********************/
#define CAN_F40R2_FB0 ((uint32_t)0x00000001)
#define CAN_F40R2_FB1 ((uint32_t)0x00000002)
#define CAN_F40R2_FB2 ((uint32_t)0x00000004)
#define CAN_F40R2_FB3 ((uint32_t)0x00000008)
#define CAN_F40R2_FB4 ((uint32_t)0x00000010)
#define CAN_F40R2_FB5 ((uint32_t)0x00000020)
#define CAN_F40R2_FB6 ((uint32_t)0x00000040)
#define CAN_F40R2_FB7 ((uint32_t)0x00000080)
#define CAN_F40R2_FB8 ((uint32_t)0x00000100)
#define CAN_F40R2_FB9 ((uint32_t)0x00000200)
#define CAN_F40R2_FB10 ((uint32_t)0x00000400)
#define CAN_F40R2_FB11 ((uint32_t)0x00000800)
#define CAN_F40R2_FB12 ((uint32_t)0x00001000)
#define CAN_F40R2_FB13 ((uint32_t)0x00002000)
#define CAN_F40R2_FB14 ((uint32_t)0x00004000)
#define CAN_F40R2_FB15 ((uint32_t)0x00008000)
#define CAN_F40R2_FB16 ((uint32_t)0x00010000)
#define CAN_F40R2_FB17 ((uint32_t)0x00020000)
#define CAN_F40R2_FB18 ((uint32_t)0x00040000)
#define CAN_F40R2_FB19 ((uint32_t)0x00080000)
#define CAN_F40R2_FB20 ((uint32_t)0x00100000)
#define CAN_F40R2_FB21 ((uint32_t)0x00200000)
#define CAN_F40R2_FB22 ((uint32_t)0x00400000)
#define CAN_F40R2_FB23 ((uint32_t)0x00800000)
#define CAN_F40R2_FB24 ((uint32_t)0x01000000)
#define CAN_F40R2_FB25 ((uint32_t)0x02000000)
#define CAN_F40R2_FB26 ((uint32_t)0x04000000)
#define CAN_F40R2_FB27 ((uint32_t)0x08000000)
#define CAN_F40R2_FB28 ((uint32_t)0x10000000)
#define CAN_F40R2_FB29 ((uint32_t)0x20000000)
#define CAN_F40R2_FB30 ((uint32_t)0x40000000)
#define CAN_F40R2_FB31 ((uint32_t)0x80000000)
/******************** Bit definition for CAN_F41R2 register ********************/
#define CAN_F41R2_FB0 ((uint32_t)0x00000001)
#define CAN_F41R2_FB1 ((uint32_t)0x00000002)
#define CAN_F41R2_FB2 ((uint32_t)0x00000004)
#define CAN_F41R2_FB3 ((uint32_t)0x00000008)
#define CAN_F41R2_FB4 ((uint32_t)0x00000010)
#define CAN_F41R2_FB5 ((uint32_t)0x00000020)
#define CAN_F41R2_FB6 ((uint32_t)0x00000040)
#define CAN_F41R2_FB7 ((uint32_t)0x00000080)
#define CAN_F41R2_FB8 ((uint32_t)0x00000100)
#define CAN_F41R2_FB9 ((uint32_t)0x00000200)
#define CAN_F41R2_FB10 ((uint32_t)0x00000400)
#define CAN_F41R2_FB11 ((uint32_t)0x00000800)
#define CAN_F41R2_FB12 ((uint32_t)0x00001000)
#define CAN_F41R2_FB13 ((uint32_t)0x00002000)
#define CAN_F41R2_FB14 ((uint32_t)0x00004000)
#define CAN_F41R2_FB15 ((uint32_t)0x00008000)
#define CAN_F41R2_FB16 ((uint32_t)0x00010000)
#define CAN_F41R2_FB17 ((uint32_t)0x00020000)
#define CAN_F41R2_FB18 ((uint32_t)0x00040000)
#define CAN_F41R2_FB19 ((uint32_t)0x00080000)
#define CAN_F41R2_FB20 ((uint32_t)0x00100000)
#define CAN_F41R2_FB21 ((uint32_t)0x00200000)
#define CAN_F41R2_FB22 ((uint32_t)0x00400000)
#define CAN_F41R2_FB23 ((uint32_t)0x00800000)
#define CAN_F41R2_FB24 ((uint32_t)0x01000000)
#define CAN_F41R2_FB25 ((uint32_t)0x02000000)
#define CAN_F41R2_FB26 ((uint32_t)0x04000000)
#define CAN_F41R2_FB27 ((uint32_t)0x08000000)
#define CAN_F41R2_FB28 ((uint32_t)0x10000000)
#define CAN_F41R2_FB29 ((uint32_t)0x20000000)
#define CAN_F41R2_FB30 ((uint32_t)0x40000000)
#define CAN_F41R2_FB31 ((uint32_t)0x80000000)
/******************************************************************************/
/* CRC Calculation Unit */
/******************************************************************************/
/******************* Bit definition for CRC_DATAR register *********************/
#define CRC_DATAR_DR ((uint32_t)0xFFFFFFFF) /* Data register bits */
/******************* Bit definition for CRC_IDATAR register ********************/
#define CRC_IDR_IDATAR ((uint8_t)0xFF) /* General-purpose 8-bit data register bits */
/******************** Bit definition for CRC_CTLR register ********************/
#define CRC_CTLR_RESET ((uint8_t)0x01) /* RESET bit */
/******************************************************************************/
/* Digital to Analog Converter */
/******************************************************************************/
/******************** Bit definition for DAC_CTLR register ********************/
#define DAC_EN1 ((uint32_t)0x00000001) /* DAC channel1 enable */
#define DAC_BOFF1 ((uint32_t)0x00000002) /* DAC channel1 output buffer disable */
#define DAC_TEN1 ((uint32_t)0x00000004) /* DAC channel1 Trigger enable */
#define DAC_TSEL1 ((uint32_t)0x00000038) /* TSEL1[2:0] (DAC channel1 Trigger selection) */
#define DAC_TSEL1_0 ((uint32_t)0x00000008) /* Bit 0 */
#define DAC_TSEL1_1 ((uint32_t)0x00000010) /* Bit 1 */
#define DAC_TSEL1_2 ((uint32_t)0x00000020) /* Bit 2 */
#define DAC_WAVE1 ((uint32_t)0x000000C0) /* WAVE1[1:0] (DAC channel1 noise/triangle wave generation enable) */
#define DAC_WAVE1_0 ((uint32_t)0x00000040) /* Bit 0 */
#define DAC_WAVE1_1 ((uint32_t)0x00000080) /* Bit 1 */
#define DAC_MAMP1 ((uint32_t)0x00000F00) /* MAMP1[3:0] (DAC channel1 Mask/Amplitude selector) */
#define DAC_MAMP1_0 ((uint32_t)0x00000100) /* Bit 0 */
#define DAC_MAMP1_1 ((uint32_t)0x00000200) /* Bit 1 */
#define DAC_MAMP1_2 ((uint32_t)0x00000400) /* Bit 2 */
#define DAC_MAMP1_3 ((uint32_t)0x00000800) /* Bit 3 */
#define DAC_DMAEN1 ((uint32_t)0x00001000) /* DAC channel1 DMA enable */
#define DAC_EN2 ((uint32_t)0x00010000) /* DAC channel2 enable */
#define DAC_BOFF2 ((uint32_t)0x00020000) /* DAC channel2 output buffer disable */
#define DAC_TEN2 ((uint32_t)0x00040000) /* DAC channel2 Trigger enable */
#define DAC_TSEL2 ((uint32_t)0x00380000) /* TSEL2[2:0] (DAC channel2 Trigger selection) */
#define DAC_TSEL2_0 ((uint32_t)0x00080000) /* Bit 0 */
#define DAC_TSEL2_1 ((uint32_t)0x00100000) /* Bit 1 */
#define DAC_TSEL2_2 ((uint32_t)0x00200000) /* Bit 2 */
#define DAC_WAVE2 ((uint32_t)0x00C00000) /* WAVE2[1:0] (DAC channel2 noise/triangle wave generation enable) */
#define DAC_WAVE2_0 ((uint32_t)0x00400000) /* Bit 0 */
#define DAC_WAVE2_1 ((uint32_t)0x00800000) /* Bit 1 */
#define DAC_MAMP2 ((uint32_t)0x0F000000) /* MAMP2[3:0] (DAC channel2 Mask/Amplitude selector) */
#define DAC_MAMP2_0 ((uint32_t)0x01000000) /* Bit 0 */
#define DAC_MAMP2_1 ((uint32_t)0x02000000) /* Bit 1 */
#define DAC_MAMP2_2 ((uint32_t)0x04000000) /* Bit 2 */
#define DAC_MAMP2_3 ((uint32_t)0x08000000) /* Bit 3 */
#define DAC_DMAEN2 ((uint32_t)0x10000000) /* DAC channel2 DMA enabled */
/***************** Bit definition for DAC_SWTR register ******************/
#define DAC_SWTRIG1 ((uint8_t)0x01) /* DAC channel1 software trigger */
#define DAC_SWTRIG2 ((uint8_t)0x02) /* DAC channel2 software trigger */
/***************** Bit definition for DAC_R12BDHR1 register ******************/
#define DAC_DHR12R1 ((uint16_t)0x0FFF) /* DAC channel1 12-bit Right aligned data */
/***************** Bit definition for DAC_L12BDHR1 register ******************/
#define DAC_DHR12L1 ((uint16_t)0xFFF0) /* DAC channel1 12-bit Left aligned data */
/****************** Bit definition for DAC_R8BDHR1 register ******************/
#define DAC_DHR8R1 ((uint8_t)0xFF) /* DAC channel1 8-bit Right aligned data */
/***************** Bit definition for DAC_R12BDHR2 register ******************/
#define DAC_DHR12R2 ((uint16_t)0x0FFF) /* DAC channel2 12-bit Right aligned data */
/***************** Bit definition for DAC_L12BDHR2 register ******************/
#define DAC_DHR12L2 ((uint16_t)0xFFF0) /* DAC channel2 12-bit Left aligned data */
/****************** Bit definition for DAC_R8BDHR2 register ******************/
#define DAC_DHR8R2 ((uint8_t)0xFF) /* DAC channel2 8-bit Right aligned data */
/***************** Bit definition for DAC_RD12BDHR register ******************/
#define DAC_RD12BDHR_DACC1DHR ((uint32_t)0x00000FFF) /* DAC channel1 12-bit Right aligned data */
#define DAC_RD12BDHR_DACC2DHR ((uint32_t)0x0FFF0000) /* DAC channel2 12-bit Right aligned data */
/***************** Bit definition for DAC_LD12BDHR register ******************/
#define DAC_LD12BDHR_DACC1DHR ((uint32_t)0x0000FFF0) /* DAC channel1 12-bit Left aligned data */
#define DAC_LD12BDHR_DACC2DHR ((uint32_t)0xFFF00000) /* DAC channel2 12-bit Left aligned data */
/****************** Bit definition for DAC_RD8BDHR register ******************/
#define DAC_RD8BDHR_DACC1DHR ((uint16_t)0x00FF) /* DAC channel1 8-bit Right aligned data */
#define DAC_RD8BDHR_DACC2DHR ((uint16_t)0xFF00) /* DAC channel2 8-bit Right aligned data */
/******************* Bit definition for DAC_DOR1 register *******************/
#define DAC_DACC1DOR ((uint16_t)0x0FFF) /* DAC channel1 data output */
/******************* Bit definition for DAC_DOR2 register *******************/
#define DAC_DACC2DOR ((uint16_t)0x0FFF) /* DAC channel2 data output */
/******************************************************************************/
/* DMA Controller */
/******************************************************************************/
/******************* Bit definition for DMA_INTFR register ********************/
#define DMA_GIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt flag */
#define DMA_TCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete flag */
#define DMA_HTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer flag */
#define DMA_TEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error flag */
#define DMA_GIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt flag */
#define DMA_TCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete flag */
#define DMA_HTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer flag */
#define DMA_TEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error flag */
#define DMA_GIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt flag */
#define DMA_TCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete flag */
#define DMA_HTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer flag */
#define DMA_TEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error flag */
#define DMA_GIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt flag */
#define DMA_TCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete flag */
#define DMA_HTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer flag */
#define DMA_TEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error flag */
#define DMA_GIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt flag */
#define DMA_TCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete flag */
#define DMA_HTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer flag */
#define DMA_TEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error flag */
#define DMA_GIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt flag */
#define DMA_TCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete flag */
#define DMA_HTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer flag */
#define DMA_TEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error flag */
#define DMA_GIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt flag */
#define DMA_TCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete flag */
#define DMA_HTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer flag */
#define DMA_TEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error flag */
#define DMA_GIF8 ((uint32_t)0x10000000) /* Channel 8 Global interrupt flag */
#define DMA_TCIF8 ((uint32_t)0x20000000) /* Channel 8 Transfer Complete flag */
#define DMA_HTIF8 ((uint32_t)0x40000000) /* Channel 8 Half Transfer flag */
#define DMA_TEIF8 ((uint32_t)0x80000000) /* Channel 8 Transfer Error flag */
/******************* Bit definition for DMA_INTFCR register *******************/
#define DMA_CGIF1 ((uint32_t)0x00000001) /* Channel 1 Global interrupt clear */
#define DMA_CTCIF1 ((uint32_t)0x00000002) /* Channel 1 Transfer Complete clear */
#define DMA_CHTIF1 ((uint32_t)0x00000004) /* Channel 1 Half Transfer clear */
#define DMA_CTEIF1 ((uint32_t)0x00000008) /* Channel 1 Transfer Error clear */
#define DMA_CGIF2 ((uint32_t)0x00000010) /* Channel 2 Global interrupt clear */
#define DMA_CTCIF2 ((uint32_t)0x00000020) /* Channel 2 Transfer Complete clear */
#define DMA_CHTIF2 ((uint32_t)0x00000040) /* Channel 2 Half Transfer clear */
#define DMA_CTEIF2 ((uint32_t)0x00000080) /* Channel 2 Transfer Error clear */
#define DMA_CGIF3 ((uint32_t)0x00000100) /* Channel 3 Global interrupt clear */
#define DMA_CTCIF3 ((uint32_t)0x00000200) /* Channel 3 Transfer Complete clear */
#define DMA_CHTIF3 ((uint32_t)0x00000400) /* Channel 3 Half Transfer clear */
#define DMA_CTEIF3 ((uint32_t)0x00000800) /* Channel 3 Transfer Error clear */
#define DMA_CGIF4 ((uint32_t)0x00001000) /* Channel 4 Global interrupt clear */
#define DMA_CTCIF4 ((uint32_t)0x00002000) /* Channel 4 Transfer Complete clear */
#define DMA_CHTIF4 ((uint32_t)0x00004000) /* Channel 4 Half Transfer clear */
#define DMA_CTEIF4 ((uint32_t)0x00008000) /* Channel 4 Transfer Error clear */
#define DMA_CGIF5 ((uint32_t)0x00010000) /* Channel 5 Global interrupt clear */
#define DMA_CTCIF5 ((uint32_t)0x00020000) /* Channel 5 Transfer Complete clear */
#define DMA_CHTIF5 ((uint32_t)0x00040000) /* Channel 5 Half Transfer clear */
#define DMA_CTEIF5 ((uint32_t)0x00080000) /* Channel 5 Transfer Error clear */
#define DMA_CGIF6 ((uint32_t)0x00100000) /* Channel 6 Global interrupt clear */
#define DMA_CTCIF6 ((uint32_t)0x00200000) /* Channel 6 Transfer Complete clear */
#define DMA_CHTIF6 ((uint32_t)0x00400000) /* Channel 6 Half Transfer clear */
#define DMA_CTEIF6 ((uint32_t)0x00800000) /* Channel 6 Transfer Error clear */
#define DMA_CGIF7 ((uint32_t)0x01000000) /* Channel 7 Global interrupt clear */
#define DMA_CTCIF7 ((uint32_t)0x02000000) /* Channel 7 Transfer Complete clear */
#define DMA_CHTIF7 ((uint32_t)0x04000000) /* Channel 7 Half Transfer clear */
#define DMA_CTEIF7 ((uint32_t)0x08000000) /* Channel 7 Transfer Error clear */
#define DMA_CGIF8 ((uint32_t)0x10000000) /* Channel 8 Global interrupt clear */
#define DMA_CTCIF8 ((uint32_t)0x20000000) /* Channel 8 Transfer Complete clear */
#define DMA_CHTIF8 ((uint32_t)0x40000000) /* Channel 8 Half Transfer clear */
#define DMA_CTEIF8 ((uint32_t)0x80000000) /* Channel 8 Transfer Error clear */
/******************* Bit definition for DMA_CFGR1 register *******************/
#define DMA_CFGR1_EN ((uint16_t)0x0001) /* Channel enable*/
#define DMA_CFGR1_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR1_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR1_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR1_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR1_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR1_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR1_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR1_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR1_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR1_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR1_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR1_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR1_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR1_PL ((uint16_t)0x3000) /* PL[1:0] bits(Channel Priority level) */
#define DMA_CFGR1_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR1_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR1_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */
/******************* Bit definition for DMA_CFGR2 register *******************/
#define DMA_CFGR2_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR2_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR2_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR2_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR2_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR2_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR2_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR2_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR2_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR2_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR2_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR2_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR2_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR2_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR2_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR2_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR2_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR2_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */
/******************* Bit definition for DMA_CFGR3 register *******************/
#define DMA_CFGR3_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR3_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR3_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR3_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR3_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR3_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR3_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR3_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR3_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR3_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR3_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR3_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR3_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR3_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR3_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR3_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR3_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR3_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */
/******************* Bit definition for DMA_CFGR4 register *******************/
#define DMA_CFGR4_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR4_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR4_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR4_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR4_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR4_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR4_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR4_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR4_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR4_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR4_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR4_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR4_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR4_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR4_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR4_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR4_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR4_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */
/****************** Bit definition for DMA_CFGR5 register *******************/
#define DMA_CFGR5_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR5_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CCFGR_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR5_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR5_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR5_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR5_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR5_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR5_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR5_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR5_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR5_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR5_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR5_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR5_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR5_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR5_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR5_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */
/******************* Bit definition for DMA_CFGR6 register *******************/
#define DMA_CFGR6_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR6_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR6_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR6_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR6_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR6_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR6_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR6_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR6_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR6_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR6_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR6_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR6_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR6_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR6_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR6_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR6_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR6_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode */
/******************* Bit definition for DMA_CFGR7 register *******************/
#define DMA_CFGR7_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR7_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR7_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR7_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR7_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR7_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR7_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR7_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR7_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR7_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR7_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR7_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR7_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR7_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR7_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR7_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR7_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR7_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */
/******************* Bit definition for DMA_CFGR8 register *******************/
#define DMA_CFGR8_EN ((uint16_t)0x0001) /* Channel enable */
#define DMA_CFGR8_TCIE ((uint16_t)0x0002) /* Transfer complete interrupt enable */
#define DMA_CFGR8_HTIE ((uint16_t)0x0004) /* Half Transfer interrupt enable */
#define DMA_CFGR8_TEIE ((uint16_t)0x0008) /* Transfer error interrupt enable */
#define DMA_CFGR8_DIR ((uint16_t)0x0010) /* Data transfer direction */
#define DMA_CFGR8_CIRC ((uint16_t)0x0020) /* Circular mode */
#define DMA_CFGR8_PINC ((uint16_t)0x0040) /* Peripheral increment mode */
#define DMA_CFGR8_MINC ((uint16_t)0x0080) /* Memory increment mode */
#define DMA_CFGR8_PSIZE ((uint16_t)0x0300) /* PSIZE[1:0] bits (Peripheral size) */
#define DMA_CFGR8_PSIZE_0 ((uint16_t)0x0100) /* Bit 0 */
#define DMA_CFGR8_PSIZE_1 ((uint16_t)0x0200) /* Bit 1 */
#define DMA_CFGR8_MSIZE ((uint16_t)0x0C00) /* MSIZE[1:0] bits (Memory size) */
#define DMA_CFGR8_MSIZE_0 ((uint16_t)0x0400) /* Bit 0 */
#define DMA_CFGR8_MSIZE_1 ((uint16_t)0x0800) /* Bit 1 */
#define DMA_CFGR8_PL ((uint16_t)0x3000) /* PL[1:0] bits (Channel Priority level) */
#define DMA_CFGR8_PL_0 ((uint16_t)0x1000) /* Bit 0 */
#define DMA_CFGR8_PL_1 ((uint16_t)0x2000) /* Bit 1 */
#define DMA_CFGR8_MEM2MEM ((uint16_t)0x4000) /* Memory to memory mode enable */
/****************** Bit definition for DMA_CNTR1 register ******************/
#define DMA_CNTR1_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR2 register ******************/
#define DMA_CNTR2_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR3 register ******************/
#define DMA_CNTR3_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR4 register ******************/
#define DMA_CNTR4_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR5 register ******************/
#define DMA_CNTR5_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR6 register ******************/
#define DMA_CNTR6_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR7 register ******************/
#define DMA_CNTR7_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_CNTR8 register ******************/
#define DMA_CNTR8_NDT ((uint16_t)0xFFFF) /* Number of data to Transfer */
/****************** Bit definition for DMA_PADDR1 register *******************/
#define DMA_PADDR1_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR2 register *******************/
#define DMA_PADDR2_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR3 register *******************/
#define DMA_PADDR3_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR4 register *******************/
#define DMA_PADDR4_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR5 register *******************/
#define DMA_PADDR5_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR6 register *******************/
#define DMA_PADDR6_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR7 register *******************/
#define DMA_PADDR7_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_PADDR8 register *******************/
#define DMA_PADDR8_PA ((uint32_t)0xFFFFFFFF) /* Peripheral Address */
/****************** Bit definition for DMA_MADDR1 register *******************/
#define DMA_MADDR1_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR2 register *******************/
#define DMA_MADDR2_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR3 register *******************/
#define DMA_MADDR3_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR4 register *******************/
#define DMA_MADDR4_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR5 register *******************/
#define DMA_MADDR5_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR6 register *******************/
#define DMA_MADDR6_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR7 register *******************/
#define DMA_MADDR7_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MADDR8 register *******************/
#define DMA_MADDR8_MA ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR1 register *******************/
#define DMA_M1ADDR1_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR2 register *******************/
#define DMA_M1ADDR2_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR3 register *******************/
#define DMA_M1ADDR3_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR4 register *******************/
#define DMA_M1ADDR4_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR5 register *******************/
#define DMA_M1ADDR5_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR6 register *******************/
#define DMA_M1ADDR6_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR7 register *******************/
#define DMA_M1ADDR7_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_M1ADDR8 register *******************/
#define DMA_M1ADDR8_M1A ((uint32_t)0xFFFFFFFF) /* Memory Address */
/****************** Bit definition for DMA_MUX0_3_CFGR register *******************/
#define DMA_MUX_CH0 ((uint32_t)0x0000007F)
#define DMA_MUX_CH1 ((uint32_t)0x00007F00)
#define DMA_MUX_CH2 ((uint32_t)0x007F0000)
#define DMA_MUX_CH3 ((uint32_t)0x7F000000)
/****************** Bit definition for DMA_MUX4_7_CFGR register *******************/
#define DMA_MUX_CH4 ((uint32_t)0x0000007F)
#define DMA_MUX_CH5 ((uint32_t)0x00007F00)
#define DMA_MUX_CH6 ((uint32_t)0x007F0000)
#define DMA_MUX_CH7 ((uint32_t)0x7F000000)
/****************** Bit definition for DMA_MUX8_11_CFGR register *******************/
#define DMA_MUX_CH8 ((uint32_t)0x0000007F)
#define DMA_MUX_CH9 ((uint32_t)0x00007F00)
#define DMA_MUX_CH10 ((uint32_t)0x007F0000)
#define DMA_MUX_CH11 ((uint32_t)0x7F000000)
/****************** Bit definition for DMA_MUX12_15_CFGR register *******************/
#define DMA_MUX_CH12 ((uint32_t)0x0000007F)
#define DMA_MUX_CH13 ((uint32_t)0x00007F00)
#define DMA_MUX_CH14 ((uint32_t)0x007F0000)
#define DMA_MUX_CH15 ((uint32_t)0x7F000000)
/******************************************************************************/
/* External Interrupt/Event Controller */
/******************************************************************************/
/******************* Bit definition for EXTI_INTENR register *******************/
#define EXTI_INTENR_MR0 ((uint32_t)0x00000001) /* Interrupt Mask on line 0 */
#define EXTI_INTENR_MR1 ((uint32_t)0x00000002) /* Interrupt Mask on line 1 */
#define EXTI_INTENR_MR2 ((uint32_t)0x00000004) /* Interrupt Mask on line 2 */
#define EXTI_INTENR_MR3 ((uint32_t)0x00000008) /* Interrupt Mask on line 3 */
#define EXTI_INTENR_MR4 ((uint32_t)0x00000010) /* Interrupt Mask on line 4 */
#define EXTI_INTENR_MR5 ((uint32_t)0x00000020) /* Interrupt Mask on line 5 */
#define EXTI_INTENR_MR6 ((uint32_t)0x00000040) /* Interrupt Mask on line 6 */
#define EXTI_INTENR_MR7 ((uint32_t)0x00000080) /* Interrupt Mask on line 7 */
#define EXTI_INTENR_MR8 ((uint32_t)0x00000100) /* Interrupt Mask on line 8 */
#define EXTI_INTENR_MR9 ((uint32_t)0x00000200) /* Interrupt Mask on line 9 */
#define EXTI_INTENR_MR10 ((uint32_t)0x00000400) /* Interrupt Mask on line 10 */
#define EXTI_INTENR_MR11 ((uint32_t)0x00000800) /* Interrupt Mask on line 11 */
#define EXTI_INTENR_MR12 ((uint32_t)0x00001000) /* Interrupt Mask on line 12 */
#define EXTI_INTENR_MR13 ((uint32_t)0x00002000) /* Interrupt Mask on line 13 */
#define EXTI_INTENR_MR14 ((uint32_t)0x00004000) /* Interrupt Mask on line 14 */
#define EXTI_INTENR_MR15 ((uint32_t)0x00008000) /* Interrupt Mask on line 15 */
#define EXTI_INTENR_MR16 ((uint32_t)0x00010000) /* Interrupt Mask on line 16 */
#define EXTI_INTENR_MR17 ((uint32_t)0x00020000) /* Interrupt Mask on line 17 */
#define EXTI_INTENR_MR18 ((uint32_t)0x00040000) /* Interrupt Mask on line 18 */
#define EXTI_INTENR_MR19 ((uint32_t)0x00080000) /* Interrupt Mask on line 19 */
#define EXTI_INTENR_MR20 ((uint32_t)0x00100000) /* Interrupt Mask on line 20 */
#define EXTI_INTENR_MR21 ((uint32_t)0x00200000) /* Interrupt Mask on line 21 */
#define EXTI_INTENR_MR22 ((uint32_t)0x00400000) /* Interrupt Mask on line 22 */
#define EXTI_INTENR_MR23 ((uint32_t)0x00800000) /* Interrupt Mask on line 23 */
#define EXTI_INTENR_MR24 ((uint32_t)0x01000000) /* Interrupt Mask on line 24 */
#define EXTI_INTENR_MR25 ((uint32_t)0x02000000) /* Interrupt Mask on line 25 */
/******************* Bit definition for EXTI_EVENR register *******************/
#define EXTI_EVENR_MR0 ((uint32_t)0x00000001) /* Event Mask on line 0 */
#define EXTI_EVENR_MR1 ((uint32_t)0x00000002) /* Event Mask on line 1 */
#define EXTI_EVENR_MR2 ((uint32_t)0x00000004) /* Event Mask on line 2 */
#define EXTI_EVENR_MR3 ((uint32_t)0x00000008) /* Event Mask on line 3 */
#define EXTI_EVENR_MR4 ((uint32_t)0x00000010) /* Event Mask on line 4 */
#define EXTI_EVENR_MR5 ((uint32_t)0x00000020) /* Event Mask on line 5 */
#define EXTI_EVENR_MR6 ((uint32_t)0x00000040) /* Event Mask on line 6 */
#define EXTI_EVENR_MR7 ((uint32_t)0x00000080) /* Event Mask on line 7 */
#define EXTI_EVENR_MR8 ((uint32_t)0x00000100) /* Event Mask on line 8 */
#define EXTI_EVENR_MR9 ((uint32_t)0x00000200) /* Event Mask on line 9 */
#define EXTI_EVENR_MR10 ((uint32_t)0x00000400) /* Event Mask on line 10 */
#define EXTI_EVENR_MR11 ((uint32_t)0x00000800) /* Event Mask on line 11 */
#define EXTI_EVENR_MR12 ((uint32_t)0x00001000) /* Event Mask on line 12 */
#define EXTI_EVENR_MR13 ((uint32_t)0x00002000) /* Event Mask on line 13 */
#define EXTI_EVENR_MR14 ((uint32_t)0x00004000) /* Event Mask on line 14 */
#define EXTI_EVENR_MR15 ((uint32_t)0x00008000) /* Event Mask on line 15 */
#define EXTI_EVENR_MR16 ((uint32_t)0x00010000) /* Event Mask on line 16 */
#define EXTI_EVENR_MR17 ((uint32_t)0x00020000) /* Event Mask on line 17 */
#define EXTI_EVENR_MR18 ((uint32_t)0x00040000) /* Event Mask on line 18 */
#define EXTI_EVENR_MR19 ((uint32_t)0x00080000) /* Event Mask on line 19 */
#define EXTI_EVENR_MR20 ((uint32_t)0x00100000) /* Event Mask on line 20 */
#define EXTI_EVENR_MR21 ((uint32_t)0x00200000) /* Event Mask on line 21 */
#define EXTI_EVENR_MR22 ((uint32_t)0x00400000) /* Event Mask on line 22 */
#define EXTI_EVENR_MR23 ((uint32_t)0x00800000) /* Event Mask on line 23 */
#define EXTI_EVENR_MR24 ((uint32_t)0x01000000) /* Event Mask on line 24 */
#define EXTI_EVENR_MR25 ((uint32_t)0x02000000) /* Event Mask on line 25 */
/****************** Bit definition for EXTI_RTENR register *******************/
#define EXTI_RTENR_TR0 ((uint32_t)0x00000001) /* Rising trigger event configuration bit of line 0 */
#define EXTI_RTENR_TR1 ((uint32_t)0x00000002) /* Rising trigger event configuration bit of line 1 */
#define EXTI_RTENR_TR2 ((uint32_t)0x00000004) /* Rising trigger event configuration bit of line 2 */
#define EXTI_RTENR_TR3 ((uint32_t)0x00000008) /* Rising trigger event configuration bit of line 3 */
#define EXTI_RTENR_TR4 ((uint32_t)0x00000010) /* Rising trigger event configuration bit of line 4 */
#define EXTI_RTENR_TR5 ((uint32_t)0x00000020) /* Rising trigger event configuration bit of line 5 */
#define EXTI_RTENR_TR6 ((uint32_t)0x00000040) /* Rising trigger event configuration bit of line 6 */
#define EXTI_RTENR_TR7 ((uint32_t)0x00000080) /* Rising trigger event configuration bit of line 7 */
#define EXTI_RTENR_TR8 ((uint32_t)0x00000100) /* Rising trigger event configuration bit of line 8 */
#define EXTI_RTENR_TR9 ((uint32_t)0x00000200) /* Rising trigger event configuration bit of line 9 */
#define EXTI_RTENR_TR10 ((uint32_t)0x00000400) /* Rising trigger event configuration bit of line 10 */
#define EXTI_RTENR_TR11 ((uint32_t)0x00000800) /* Rising trigger event configuration bit of line 11 */
#define EXTI_RTENR_TR12 ((uint32_t)0x00001000) /* Rising trigger event configuration bit of line 12 */
#define EXTI_RTENR_TR13 ((uint32_t)0x00002000) /* Rising trigger event configuration bit of line 13 */
#define EXTI_RTENR_TR14 ((uint32_t)0x00004000) /* Rising trigger event configuration bit of line 14 */
#define EXTI_RTENR_TR15 ((uint32_t)0x00008000) /* Rising trigger event configuration bit of line 15 */
#define EXTI_RTENR_TR16 ((uint32_t)0x00010000) /* Rising trigger event configuration bit of line 16 */
#define EXTI_RTENR_TR17 ((uint32_t)0x00020000) /* Rising trigger event configuration bit of line 17 */
#define EXTI_RTENR_TR18 ((uint32_t)0x00040000) /* Rising trigger event configuration bit of line 18 */
#define EXTI_RTENR_TR19 ((uint32_t)0x00080000) /* Rising trigger event configuration bit of line 19 */
#define EXTI_RTENR_TR20 ((uint32_t)0x00100000) /* Rising trigger event configuration bit of line 20 */
#define EXTI_RTENR_TR21 ((uint32_t)0x00200000) /* Rising trigger event configuration bit of line 21 */
#define EXTI_RTENR_TR22 ((uint32_t)0x00400000) /* Rising trigger event configuration bit of line 22 */
#define EXTI_RTENR_TR23 ((uint32_t)0x00800000) /* Rising trigger event configuration bit of line 23 */
#define EXTI_RTENR_TR24 ((uint32_t)0x01000000) /* Rising trigger event configuration bit of line 24 */
#define EXTI_RTENR_TR25 ((uint32_t)0x02000000) /* Rising trigger event configuration bit of line 25 */
/****************** Bit definition for EXTI_FTENR register *******************/
#define EXTI_FTENR_TR0 ((uint32_t)0x00000001) /* Falling trigger event configuration bit of line 0 */
#define EXTI_FTENR_TR1 ((uint32_t)0x00000002) /* Falling trigger event configuration bit of line 1 */
#define EXTI_FTENR_TR2 ((uint32_t)0x00000004) /* Falling trigger event configuration bit of line 2 */
#define EXTI_FTENR_TR3 ((uint32_t)0x00000008) /* Falling trigger event configuration bit of line 3 */
#define EXTI_FTENR_TR4 ((uint32_t)0x00000010) /* Falling trigger event configuration bit of line 4 */
#define EXTI_FTENR_TR5 ((uint32_t)0x00000020) /* Falling trigger event configuration bit of line 5 */
#define EXTI_FTENR_TR6 ((uint32_t)0x00000040) /* Falling trigger event configuration bit of line 6 */
#define EXTI_FTENR_TR7 ((uint32_t)0x00000080) /* Falling trigger event configuration bit of line 7 */
#define EXTI_FTENR_TR8 ((uint32_t)0x00000100) /* Falling trigger event configuration bit of line 8 */
#define EXTI_FTENR_TR9 ((uint32_t)0x00000200) /* Falling trigger event configuration bit of line 9 */
#define EXTI_FTENR_TR10 ((uint32_t)0x00000400) /* Falling trigger event configuration bit of line 10 */
#define EXTI_FTENR_TR11 ((uint32_t)0x00000800) /* Falling trigger event configuration bit of line 11 */
#define EXTI_FTENR_TR12 ((uint32_t)0x00001000) /* Falling trigger event configuration bit of line 12 */
#define EXTI_FTENR_TR13 ((uint32_t)0x00002000) /* Falling trigger event configuration bit of line 13 */
#define EXTI_FTENR_TR14 ((uint32_t)0x00004000) /* Falling trigger event configuration bit of line 14 */
#define EXTI_FTENR_TR15 ((uint32_t)0x00008000) /* Falling trigger event configuration bit of line 15 */
#define EXTI_FTENR_TR16 ((uint32_t)0x00010000) /* Falling trigger event configuration bit of line 16 */
#define EXTI_FTENR_TR17 ((uint32_t)0x00020000) /* Falling trigger event configuration bit of line 17 */
#define EXTI_FTENR_TR18 ((uint32_t)0x00040000) /* Falling trigger event configuration bit of line 18 */
#define EXTI_FTENR_TR19 ((uint32_t)0x00080000) /* Falling trigger event configuration bit of line 19 */
#define EXTI_FTENR_TR20 ((uint32_t)0x00100000) /* Falling trigger event configuration bit of line 20 */
#define EXTI_FTENR_TR21 ((uint32_t)0x00200000) /* Falling trigger event configuration bit of line 21 */
#define EXTI_FTENR_TR22 ((uint32_t)0x00400000) /* Falling trigger event configuration bit of line 22 */
#define EXTI_FTENR_TR23 ((uint32_t)0x00800000) /* Falling trigger event configuration bit of line 23 */
#define EXTI_FTENR_TR24 ((uint32_t)0x01000000) /* Falling trigger event configuration bit of line 24 */
#define EXTI_FTENR_TR25 ((uint32_t)0x02000000) /* Falling trigger event configuration bit of line 25 */
/****************** Bit definition for EXTI_SWIEVR register ******************/
#define EXTI_SWIEVR_SWIEVR0 ((uint32_t)0x00000001) /* Software Interrupt on line 0 */
#define EXTI_SWIEVR_SWIEVR1 ((uint32_t)0x00000002) /* Software Interrupt on line 1 */
#define EXTI_SWIEVR_SWIEVR2 ((uint32_t)0x00000004) /* Software Interrupt on line 2 */
#define EXTI_SWIEVR_SWIEVR3 ((uint32_t)0x00000008) /* Software Interrupt on line 3 */
#define EXTI_SWIEVR_SWIEVR4 ((uint32_t)0x00000010) /* Software Interrupt on line 4 */
#define EXTI_SWIEVR_SWIEVR5 ((uint32_t)0x00000020) /* Software Interrupt on line 5 */
#define EXTI_SWIEVR_SWIEVR6 ((uint32_t)0x00000040) /* Software Interrupt on line 6 */
#define EXTI_SWIEVR_SWIEVR7 ((uint32_t)0x00000080) /* Software Interrupt on line 7 */
#define EXTI_SWIEVR_SWIEVR8 ((uint32_t)0x00000100) /* Software Interrupt on line 8 */
#define EXTI_SWIEVR_SWIEVR9 ((uint32_t)0x00000200) /* Software Interrupt on line 9 */
#define EXTI_SWIEVR_SWIEVR10 ((uint32_t)0x00000400) /* Software Interrupt on line 10 */
#define EXTI_SWIEVR_SWIEVR11 ((uint32_t)0x00000800) /* Software Interrupt on line 11 */
#define EXTI_SWIEVR_SWIEVR12 ((uint32_t)0x00001000) /* Software Interrupt on line 12 */
#define EXTI_SWIEVR_SWIEVR13 ((uint32_t)0x00002000) /* Software Interrupt on line 13 */
#define EXTI_SWIEVR_SWIEVR14 ((uint32_t)0x00004000) /* Software Interrupt on line 14 */
#define EXTI_SWIEVR_SWIEVR15 ((uint32_t)0x00008000) /* Software Interrupt on line 15 */
#define EXTI_SWIEVR_SWIEVR16 ((uint32_t)0x00010000) /* Software Interrupt on line 16 */
#define EXTI_SWIEVR_SWIEVR17 ((uint32_t)0x00020000) /* Software Interrupt on line 17 */
#define EXTI_SWIEVR_SWIEVR18 ((uint32_t)0x00040000) /* Software Interrupt on line 18 */
#define EXTI_SWIEVR_SWIEVR19 ((uint32_t)0x00080000) /* Software Interrupt on line 19 */
#define EXTI_SWIEVR_SWIEVR20 ((uint32_t)0x00100000) /* Software Interrupt on line 20 */
#define EXTI_SWIEVR_SWIEVR21 ((uint32_t)0x00200000) /* Software Interrupt on line 21 */
#define EXTI_SWIEVR_SWIEVR22 ((uint32_t)0x00400000) /* Software Interrupt on line 22 */
#define EXTI_SWIEVR_SWIEVR23 ((uint32_t)0x00800000) /* Software Interrupt on line 23 */
#define EXTI_SWIEVR_SWIEVR24 ((uint32_t)0x01000000) /* Software Interrupt on line 24 */
#define EXTI_SWIEVR_SWIEVR25 ((uint32_t)0x02000000) /* Software Interrupt on line 25 */
/******************* Bit definition for EXTI_INTFR register ********************/
#define EXTI_INTF_INTF0 ((uint32_t)0x00000001) /* Pending bit for line 0 */
#define EXTI_INTF_INTF1 ((uint32_t)0x00000002) /* Pending bit for line 1 */
#define EXTI_INTF_INTF2 ((uint32_t)0x00000004) /* Pending bit for line 2 */
#define EXTI_INTF_INTF3 ((uint32_t)0x00000008) /* Pending bit for line 3 */
#define EXTI_INTF_INTF4 ((uint32_t)0x00000010) /* Pending bit for line 4 */
#define EXTI_INTF_INTF5 ((uint32_t)0x00000020) /* Pending bit for line 5 */
#define EXTI_INTF_INTF6 ((uint32_t)0x00000040) /* Pending bit for line 6 */
#define EXTI_INTF_INTF7 ((uint32_t)0x00000080) /* Pending bit for line 7 */
#define EXTI_INTF_INTF8 ((uint32_t)0x00000100) /* Pending bit for line 8 */
#define EXTI_INTF_INTF9 ((uint32_t)0x00000200) /* Pending bit for line 9 */
#define EXTI_INTF_INTF10 ((uint32_t)0x00000400) /* Pending bit for line 10 */
#define EXTI_INTF_INTF11 ((uint32_t)0x00000800) /* Pending bit for line 11 */
#define EXTI_INTF_INTF12 ((uint32_t)0x00001000) /* Pending bit for line 12 */
#define EXTI_INTF_INTF13 ((uint32_t)0x00002000) /* Pending bit for line 13 */
#define EXTI_INTF_INTF14 ((uint32_t)0x00004000) /* Pending bit for line 14 */
#define EXTI_INTF_INTF15 ((uint32_t)0x00008000) /* Pending bit for line 15 */
#define EXTI_INTF_INTF16 ((uint32_t)0x00010000) /* Pending bit for line 16 */
#define EXTI_INTF_INTF17 ((uint32_t)0x00020000) /* Pending bit for line 17 */
#define EXTI_INTF_INTF18 ((uint32_t)0x00040000) /* Pending bit for line 18 */
#define EXTI_INTF_INTF19 ((uint32_t)0x00080000) /* Pending bit for line 19 */
#define EXTI_INTF_INTF20 ((uint32_t)0x00100000) /* Pending bit for line 20 */
#define EXTI_INTF_INTF21 ((uint32_t)0x00200000) /* Pending bit for line 21 */
#define EXTI_INTF_INTF22 ((uint32_t)0x00400000) /* Pending bit for line 22 */
#define EXTI_INTF_INTF23 ((uint32_t)0x00800000) /* Pending bit for line 23 */
#define EXTI_INTF_INTF24 ((uint32_t)0x01000000) /* Pending bit for line 24 */
#define EXTI_INTF_INTF25 ((uint32_t)0x02000000) /* Pending bit for line 25 */
/******************************************************************************/
/* FLASH and Option Bytes Registers */
/******************************************************************************/
/******************* Bit definition for FLASH_ACTLR register ******************/
/****************** Bit definition for FLASH_ACTLR register ******************/
#define FLASH_ACTLR_SCK_CFG ((uint32_t)0x00000003)
#define FLASH_ACTLR_SCK_CFG_0 ((uint32_t)0x00000001)
#define FLASH_ACTLR_SCK_CFG_1 ((uint32_t)0x00000002)
#define FLASH_ACTLR_LATENCY_HCLK_DIV1 ((uint32_t)0x00000000)
#define FLASH_ACTLR_LATENCY_HCLK_DIV2 ((uint32_t)0x00000001)
#define FLASH_ACTLR_LATENCY_HCLK_DIV4 ((uint32_t)0x00000002)
#define FLASH_ACTLR_ENHANCE_STATUS ((uint32_t)0x00000040)
#define FLASH_ACTLR_EHMOD ((uint32_t)0x00000080)
#define FLASH_ACTLR_LP ((uint32_t)0x00000100)
#define FLASH_ACTLR_RD_MD ((uint32_t)0x00000800)
#define FLASH_ACTLR_READY ((uint32_t)0x00004000)
#define FLASH_ACTLR_ST ((uint32_t)0x00008000)
/****************** Bit definition for FLASH_KEYR register ******************/
#define FLASH_KEYR_FKEYR ((uint32_t)0xFFFFFFFF) /* FPEC Key */
#define FLASH_KEYR_KEY1 ((uint32_t)0x45670123)
#define FLASH_KEYR_KEY2 ((uint32_t)0xCDEF89AB)
/***************** Bit definition for FLASH_OBKEYR register ****************/
#define FLASH_OBKEYR_OBKEYR ((uint32_t)0xFFFFFFFF) /* Option Byte Key */
/****************** Bit definition for FLASH_STATR register *******************/
#define FLASH_STATR_BSY ((uint8_t)0x01) /* Busy */
#define FLASH_STATR_WRBSY ((uint8_t)0x02)
#define FLASH_STATR_WRPRTERR ((uint8_t)0x10) /* Write Protection Error */
#define FLASH_STATR_EOP ((uint8_t)0x20) /* End of operation */
#define FLASH_STATR_BOOT_AVA ((uint16_t)0x1000)
#define FLASH_STATR_BOOT_STATUS ((uint16_t)0x2000)
#define FLASH_STATR_BOOT_MODE ((uint16_t)0x4000)
#define FLASH_STATR_BOOT_LOCK ((uint16_t)0x8000)
/******************* Bit definition for FLASH_CTLR register *******************/
#define FLASH_CTLR_PG ((uint32_t)0x00000001) /* Programming */
#define FLASH_CTLR_PER ((uint32_t)0x00000002) /* Sector Erase 4K */
#define FLASH_CTLR_OPTPG ((uint32_t)0x00000010) /* Option Byte Programming */
#define FLASH_CTLR_OPTER ((uint32_t)0x00000020) /* Option Byte Erase */
#define FLASH_CTLR_STRT ((uint32_t)0x00000040) /* Start */
#define FLASH_CTLR_LOCK ((uint32_t)0x00000080) /* Lock */
#define FLASH_CTLR_OPTWRE ((uint32_t)0x00000200) /* Option Bytes Write Enable */
#define FLASH_CTLR_ERRIE ((uint32_t)0x00000400) /* Error Interrupt Enable */
#define FLASH_CTLR_EOPIE ((uint32_t)0x00001000) /* End of operation interrupt enable */
#define FLASH_CTLR_FAST_LOCK ((uint32_t)0x00008000) /* Fast Lock */
#define FLASH_CTLR_PAGE_PG ((uint32_t)0x00010000) /* Page Programming 256Byte */
#define FLASH_CTLR_PAGE_BER32 ((uint32_t)0x00040000) /* Block Erase 32K */
#define FLASH_CTLR_PG_STRT ((uint32_t)0x00200000) /* Page Programming Start */
#define FLASH_CTLR_RSENACT ((uint32_t)0x00400000)
/******************* Bit definition for FLASH_ADDR register *******************/
#define FLASH_ADDR_FAR ((uint32_t)0xFFFFFFFF) /* Flash Address */
/****************** Bit definition for FLASH_OBR register *******************/
#define FLASH_OBR_OPTERR ((uint16_t)0x0001) /* Option Byte Error */
#define FLASH_OBR_RDPRT ((uint16_t)0x0002) /* Read protection */
#define FLASH_OBR_USER ((uint16_t)0x0304) /* User Option Bytes */
#define FLASH_OBR_WDG_SW ((uint16_t)0x0004) /* WDG_SW */
#define FLASH_OBR_FIX_11 ((uint16_t)0x0300) /* nRST_STOP */
#define FLASH_OBR_DATA0 ((uint32_t)0x0003FC00)
#define FLASH_OBR_DATA1 ((uint32_t)0x03FC0000)
/****************** Bit definition for FLASH_WPR register ******************/
#define FLASH_WPR_WRP ((uint32_t)0xFFFFFFFF) /* Write Protect */
/****************** Bit definition for FLASH_MODEKEYR register ******************/
#define FLASH_MODEKEYR_KEY1 ((uint32_t)0x45670123)
#define FLASH_MODEKEYR_KEY2 ((uint32_t)0xCDEF89AB)
/****************** Bit definition for FLASH_RDPR register *******************/
#define FLASH_RDPR_RDPR ((uint32_t)0x000000FF) /* Read protection option byte */
#define FLASH_RDPR_nRDPR ((uint32_t)0x0000FF00) /* Read protection complemented option byte */
/****************** Bit definition for FLASH_USER register ******************/
#define FLASH_USER_USER ((uint32_t)0x00FF0000) /* User option byte */
#define FLASH_USER_nUSER ((uint32_t)0xFF000000) /* User complemented option byte */
/****************** Bit definition for FLASH_Data0 register *****************/
#define FLASH_Data0_Data0 ((uint32_t)0x000000FF) /* User data storage option byte */
#define FLASH_Data0_nData0 ((uint32_t)0x0000FF00) /* User data storage complemented option byte */
/****************** Bit definition for FLASH_Data1 register *****************/
#define FLASH_Data1_Data1 ((uint32_t)0x00FF0000) /* User data storage option byte */
#define FLASH_Data1_nData1 ((uint32_t)0xFF000000) /* User data storage complemented option byte */
/****************** Bit definition for FLASH_WRPR0 register ******************/
#define FLASH_WRPR0_WRPR0 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */
#define FLASH_WRPR0_nWRPR0 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */
/****************** Bit definition for FLASH_WRPR1 register ******************/
#define FLASH_WRPR1_WRPR1 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */
#define FLASH_WRPR1_nWRPR1 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */
/****************** Bit definition for FLASH_WRPR2 register ******************/
#define FLASH_WRPR2_WRPR2 ((uint32_t)0x000000FF) /* Flash memory write protection option bytes */
#define FLASH_WRPR2_nWRPR2 ((uint32_t)0x0000FF00) /* Flash memory write protection complemented option bytes */
/****************** Bit definition for FLASH_WRPR3 register ******************/
#define FLASH_WRPR3_WRPR3 ((uint32_t)0x00FF0000) /* Flash memory write protection option bytes */
#define FLASH_WRPR3_nWRPR3 ((uint32_t)0xFF000000) /* Flash memory write protection complemented option bytes */
/******************************************************************************/
/* General Purpose and Alternate Function I/O */
/******************************************************************************/
/******************* Bit definition for GPIO_CFGLR register *******************/
#define GPIO_CFGLR_MODE ((uint32_t)0x33333333) /* Port x mode bits */
#define GPIO_CFGLR_MODE0 ((uint32_t)0x00000003) /* MODE0[1:0] bits (Port x mode bits, pin 0) */
#define GPIO_CFGLR_MODE0_0 ((uint32_t)0x00000001) /* Bit 0 */
#define GPIO_CFGLR_MODE0_1 ((uint32_t)0x00000002) /* Bit 1 */
#define GPIO_CFGLR_MODE1 ((uint32_t)0x00000030) /* MODE1[1:0] bits (Port x mode bits, pin 1) */
#define GPIO_CFGLR_MODE1_0 ((uint32_t)0x00000010) /* Bit 0 */
#define GPIO_CFGLR_MODE1_1 ((uint32_t)0x00000020) /* Bit 1 */
#define GPIO_CFGLR_MODE2 ((uint32_t)0x00000300) /* MODE2[1:0] bits (Port x mode bits, pin 2) */
#define GPIO_CFGLR_MODE2_0 ((uint32_t)0x00000100) /* Bit 0 */
#define GPIO_CFGLR_MODE2_1 ((uint32_t)0x00000200) /* Bit 1 */
#define GPIO_CFGLR_MODE3 ((uint32_t)0x00003000) /* MODE3[1:0] bits (Port x mode bits, pin 3) */
#define GPIO_CFGLR_MODE3_0 ((uint32_t)0x00001000) /* Bit 0 */
#define GPIO_CFGLR_MODE3_1 ((uint32_t)0x00002000) /* Bit 1 */
#define GPIO_CFGLR_MODE4 ((uint32_t)0x00030000) /* MODE4[1:0] bits (Port x mode bits, pin 4) */
#define GPIO_CFGLR_MODE4_0 ((uint32_t)0x00010000) /* Bit 0 */
#define GPIO_CFGLR_MODE4_1 ((uint32_t)0x00020000) /* Bit 1 */
#define GPIO_CFGLR_MODE5 ((uint32_t)0x00300000) /* MODE5[1:0] bits (Port x mode bits, pin 5) */
#define GPIO_CFGLR_MODE5_0 ((uint32_t)0x00100000) /* Bit 0 */
#define GPIO_CFGLR_MODE5_1 ((uint32_t)0x00200000) /* Bit 1 */
#define GPIO_CFGLR_MODE6 ((uint32_t)0x03000000) /* MODE6[1:0] bits (Port x mode bits, pin 6) */
#define GPIO_CFGLR_MODE6_0 ((uint32_t)0x01000000) /* Bit 0 */
#define GPIO_CFGLR_MODE6_1 ((uint32_t)0x02000000) /* Bit 1 */
#define GPIO_CFGLR_MODE7 ((uint32_t)0x30000000) /* MODE7[1:0] bits (Port x mode bits, pin 7) */
#define GPIO_CFGLR_MODE7_0 ((uint32_t)0x10000000) /* Bit 0 */
#define GPIO_CFGLR_MODE7_1 ((uint32_t)0x20000000) /* Bit 1 */
#define GPIO_CFGLR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */
#define GPIO_CFGLR_CNF0 ((uint32_t)0x0000000C) /* CNF0[1:0] bits (Port x configuration bits, pin 0) */
#define GPIO_CFGLR_CNF0_0 ((uint32_t)0x00000004) /* Bit 0 */
#define GPIO_CFGLR_CNF0_1 ((uint32_t)0x00000008) /* Bit 1 */
#define GPIO_CFGLR_CNF1 ((uint32_t)0x000000C0) /* CNF1[1:0] bits (Port x configuration bits, pin 1) */
#define GPIO_CFGLR_CNF1_0 ((uint32_t)0x00000040) /* Bit 0 */
#define GPIO_CFGLR_CNF1_1 ((uint32_t)0x00000080) /* Bit 1 */
#define GPIO_CFGLR_CNF2 ((uint32_t)0x00000C00) /* CNF2[1:0] bits (Port x configuration bits, pin 2) */
#define GPIO_CFGLR_CNF2_0 ((uint32_t)0x00000400) /* Bit 0 */
#define GPIO_CFGLR_CNF2_1 ((uint32_t)0x00000800) /* Bit 1 */
#define GPIO_CFGLR_CNF3 ((uint32_t)0x0000C000) /* CNF3[1:0] bits (Port x configuration bits, pin 3) */
#define GPIO_CFGLR_CNF3_0 ((uint32_t)0x00004000) /* Bit 0 */
#define GPIO_CFGLR_CNF3_1 ((uint32_t)0x00008000) /* Bit 1 */
#define GPIO_CFGLR_CNF4 ((uint32_t)0x000C0000) /* CNF4[1:0] bits (Port x configuration bits, pin 4) */
#define GPIO_CFGLR_CNF4_0 ((uint32_t)0x00040000) /* Bit 0 */
#define GPIO_CFGLR_CNF4_1 ((uint32_t)0x00080000) /* Bit 1 */
#define GPIO_CFGLR_CNF5 ((uint32_t)0x00C00000) /* CNF5[1:0] bits (Port x configuration bits, pin 5) */
#define GPIO_CFGLR_CNF5_0 ((uint32_t)0x00400000) /* Bit 0 */
#define GPIO_CFGLR_CNF5_1 ((uint32_t)0x00800000) /* Bit 1 */
#define GPIO_CFGLR_CNF6 ((uint32_t)0x0C000000) /* CNF6[1:0] bits (Port x configuration bits, pin 6) */
#define GPIO_CFGLR_CNF6_0 ((uint32_t)0x04000000) /* Bit 0 */
#define GPIO_CFGLR_CNF6_1 ((uint32_t)0x08000000) /* Bit 1 */
#define GPIO_CFGLR_CNF7 ((uint32_t)0xC0000000) /* CNF7[1:0] bits (Port x configuration bits, pin 7) */
#define GPIO_CFGLR_CNF7_0 ((uint32_t)0x40000000) /* Bit 0 */
#define GPIO_CFGLR_CNF7_1 ((uint32_t)0x80000000) /* Bit 1 */
/******************* Bit definition for GPIO_CFGHR register *******************/
#define GPIO_CFGHR_MODE ((uint32_t)0x33333333) /* Port x mode bits */
#define GPIO_CFGHR_MODE8 ((uint32_t)0x00000003) /* MODE8[1:0] bits (Port x mode bits, pin 8) */
#define GPIO_CFGHR_MODE8_0 ((uint32_t)0x00000001) /* Bit 0 */
#define GPIO_CFGHR_MODE8_1 ((uint32_t)0x00000002) /* Bit 1 */
#define GPIO_CFGHR_MODE9 ((uint32_t)0x00000030) /* MODE9[1:0] bits (Port x mode bits, pin 9) */
#define GPIO_CFGHR_MODE9_0 ((uint32_t)0x00000010) /* Bit 0 */
#define GPIO_CFGHR_MODE9_1 ((uint32_t)0x00000020) /* Bit 1 */
#define GPIO_CFGHR_MODE10 ((uint32_t)0x00000300) /* MODE10[1:0] bits (Port x mode bits, pin 10) */
#define GPIO_CFGHR_MODE10_0 ((uint32_t)0x00000100) /* Bit 0 */
#define GPIO_CFGHR_MODE10_1 ((uint32_t)0x00000200) /* Bit 1 */
#define GPIO_CFGHR_MODE11 ((uint32_t)0x00003000) /* MODE11[1:0] bits (Port x mode bits, pin 11) */
#define GPIO_CFGHR_MODE11_0 ((uint32_t)0x00001000) /* Bit 0 */
#define GPIO_CFGHR_MODE11_1 ((uint32_t)0x00002000) /* Bit 1 */
#define GPIO_CFGHR_MODE12 ((uint32_t)0x00030000) /* MODE12[1:0] bits (Port x mode bits, pin 12) */
#define GPIO_CFGHR_MODE12_0 ((uint32_t)0x00010000) /* Bit 0 */
#define GPIO_CFGHR_MODE12_1 ((uint32_t)0x00020000) /* Bit 1 */
#define GPIO_CFGHR_MODE13 ((uint32_t)0x00300000) /* MODE13[1:0] bits (Port x mode bits, pin 13) */
#define GPIO_CFGHR_MODE13_0 ((uint32_t)0x00100000) /* Bit 0 */
#define GPIO_CFGHR_MODE13_1 ((uint32_t)0x00200000) /* Bit 1 */
#define GPIO_CFGHR_MODE14 ((uint32_t)0x03000000) /* MODE14[1:0] bits (Port x mode bits, pin 14) */
#define GPIO_CFGHR_MODE14_0 ((uint32_t)0x01000000) /* Bit 0 */
#define GPIO_CFGHR_MODE14_1 ((uint32_t)0x02000000) /* Bit 1 */
#define GPIO_CFGHR_MODE15 ((uint32_t)0x30000000) /* MODE15[1:0] bits (Port x mode bits, pin 15) */
#define GPIO_CFGHR_MODE15_0 ((uint32_t)0x10000000) /* Bit 0 */
#define GPIO_CFGHR_MODE15_1 ((uint32_t)0x20000000) /* Bit 1 */
#define GPIO_CFGHR_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */
#define GPIO_CFGHR_CNF8 ((uint32_t)0x0000000C) /* CNF8[1:0] bits (Port x configuration bits, pin 8) */
#define GPIO_CFGHR_CNF8_0 ((uint32_t)0x00000004) /* Bit 0 */
#define GPIO_CFGHR_CNF8_1 ((uint32_t)0x00000008) /* Bit 1 */
#define GPIO_CFGHR_CNF9 ((uint32_t)0x000000C0) /* CNF9[1:0] bits (Port x configuration bits, pin 9) */
#define GPIO_CFGHR_CNF9_0 ((uint32_t)0x00000040) /* Bit 0 */
#define GPIO_CFGHR_CNF9_1 ((uint32_t)0x00000080) /* Bit 1 */
#define GPIO_CFGHR_CNF10 ((uint32_t)0x00000C00) /* CNF10[1:0] bits (Port x configuration bits, pin 10) */
#define GPIO_CFGHR_CNF10_0 ((uint32_t)0x00000400) /* Bit 0 */
#define GPIO_CFGHR_CNF10_1 ((uint32_t)0x00000800) /* Bit 1 */
#define GPIO_CFGHR_CNF11 ((uint32_t)0x0000C000) /* CNF11[1:0] bits (Port x configuration bits, pin 11) */
#define GPIO_CFGHR_CNF11_0 ((uint32_t)0x00004000) /* Bit 0 */
#define GPIO_CFGHR_CNF11_1 ((uint32_t)0x00008000) /* Bit 1 */
#define GPIO_CFGHR_CNF12 ((uint32_t)0x000C0000) /* CNF12[1:0] bits (Port x configuration bits, pin 12) */
#define GPIO_CFGHR_CNF12_0 ((uint32_t)0x00040000) /* Bit 0 */
#define GPIO_CFGHR_CNF12_1 ((uint32_t)0x00080000) /* Bit 1 */
#define GPIO_CFGHR_CNF13 ((uint32_t)0x00C00000) /* CNF13[1:0] bits (Port x configuration bits, pin 13) */
#define GPIO_CFGHR_CNF13_0 ((uint32_t)0x00400000) /* Bit 0 */
#define GPIO_CFGHR_CNF13_1 ((uint32_t)0x00800000) /* Bit 1 */
#define GPIO_CFGHR_CNF14 ((uint32_t)0x0C000000) /* CNF14[1:0] bits (Port x configuration bits, pin 14) */
#define GPIO_CFGHR_CNF14_0 ((uint32_t)0x04000000) /* Bit 0 */
#define GPIO_CFGHR_CNF14_1 ((uint32_t)0x08000000) /* Bit 1 */
#define GPIO_CFGHR_CNF15 ((uint32_t)0xC0000000) /* CNF15[1:0] bits (Port x configuration bits, pin 15) */
#define GPIO_CFGHR_CNF15_0 ((uint32_t)0x40000000) /* Bit 0 */
#define GPIO_CFGHR_CNF15_1 ((uint32_t)0x80000000) /* Bit 1 */
/******************* Bit definition for GPIO_INDR register *******************/
#define GPIO_INDR_IDR0 ((uint16_t)0x0001) /* Port input data, bit 0 */
#define GPIO_INDR_IDR1 ((uint16_t)0x0002) /* Port input data, bit 1 */
#define GPIO_INDR_IDR2 ((uint16_t)0x0004) /* Port input data, bit 2 */
#define GPIO_INDR_IDR3 ((uint16_t)0x0008) /* Port input data, bit 3 */
#define GPIO_INDR_IDR4 ((uint16_t)0x0010) /* Port input data, bit 4 */
#define GPIO_INDR_IDR5 ((uint16_t)0x0020) /* Port input data, bit 5 */
#define GPIO_INDR_IDR6 ((uint16_t)0x0040) /* Port input data, bit 6 */
#define GPIO_INDR_IDR7 ((uint16_t)0x0080) /* Port input data, bit 7 */
#define GPIO_INDR_IDR8 ((uint16_t)0x0100) /* Port input data, bit 8 */
#define GPIO_INDR_IDR9 ((uint16_t)0x0200) /* Port input data, bit 9 */
#define GPIO_INDR_IDR10 ((uint16_t)0x0400) /* Port input data, bit 10 */
#define GPIO_INDR_IDR11 ((uint16_t)0x0800) /* Port input data, bit 11 */
#define GPIO_INDR_IDR12 ((uint16_t)0x1000) /* Port input data, bit 12 */
#define GPIO_INDR_IDR13 ((uint16_t)0x2000) /* Port input data, bit 13 */
#define GPIO_INDR_IDR14 ((uint16_t)0x4000) /* Port input data, bit 14 */
#define GPIO_INDR_IDR15 ((uint16_t)0x8000) /* Port input data, bit 15 */
/******************* Bit definition for GPIO_OUTDR register *******************/
#define GPIO_OUTDR_ODR0 ((uint16_t)0x0001) /* Port output data, bit 0 */
#define GPIO_OUTDR_ODR1 ((uint16_t)0x0002) /* Port output data, bit 1 */
#define GPIO_OUTDR_ODR2 ((uint16_t)0x0004) /* Port output data, bit 2 */
#define GPIO_OUTDR_ODR3 ((uint16_t)0x0008) /* Port output data, bit 3 */
#define GPIO_OUTDR_ODR4 ((uint16_t)0x0010) /* Port output data, bit 4 */
#define GPIO_OUTDR_ODR5 ((uint16_t)0x0020) /* Port output data, bit 5 */
#define GPIO_OUTDR_ODR6 ((uint16_t)0x0040) /* Port output data, bit 6 */
#define GPIO_OUTDR_ODR7 ((uint16_t)0x0080) /* Port output data, bit 7 */
#define GPIO_OUTDR_ODR8 ((uint16_t)0x0100) /* Port output data, bit 8 */
#define GPIO_OUTDR_ODR9 ((uint16_t)0x0200) /* Port output data, bit 9 */
#define GPIO_OUTDR_ODR10 ((uint16_t)0x0400) /* Port output data, bit 10 */
#define GPIO_OUTDR_ODR11 ((uint16_t)0x0800) /* Port output data, bit 11 */
#define GPIO_OUTDR_ODR12 ((uint16_t)0x1000) /* Port output data, bit 12 */
#define GPIO_OUTDR_ODR13 ((uint16_t)0x2000) /* Port output data, bit 13 */
#define GPIO_OUTDR_ODR14 ((uint16_t)0x4000) /* Port output data, bit 14 */
#define GPIO_OUTDR_ODR15 ((uint16_t)0x8000) /* Port output data, bit 15 */
/****************** Bit definition for GPIO_BSHR register *******************/
#define GPIO_BSHR_BS0 ((uint32_t)0x00000001) /* Port x Set bit 0 */
#define GPIO_BSHR_BS1 ((uint32_t)0x00000002) /* Port x Set bit 1 */
#define GPIO_BSHR_BS2 ((uint32_t)0x00000004) /* Port x Set bit 2 */
#define GPIO_BSHR_BS3 ((uint32_t)0x00000008) /* Port x Set bit 3 */
#define GPIO_BSHR_BS4 ((uint32_t)0x00000010) /* Port x Set bit 4 */
#define GPIO_BSHR_BS5 ((uint32_t)0x00000020) /* Port x Set bit 5 */
#define GPIO_BSHR_BS6 ((uint32_t)0x00000040) /* Port x Set bit 6 */
#define GPIO_BSHR_BS7 ((uint32_t)0x00000080) /* Port x Set bit 7 */
#define GPIO_BSHR_BS8 ((uint32_t)0x00000100) /* Port x Set bit 8 */
#define GPIO_BSHR_BS9 ((uint32_t)0x00000200) /* Port x Set bit 9 */
#define GPIO_BSHR_BS10 ((uint32_t)0x00000400) /* Port x Set bit 10 */
#define GPIO_BSHR_BS11 ((uint32_t)0x00000800) /* Port x Set bit 11 */
#define GPIO_BSHR_BS12 ((uint32_t)0x00001000) /* Port x Set bit 12 */
#define GPIO_BSHR_BS13 ((uint32_t)0x00002000) /* Port x Set bit 13 */
#define GPIO_BSHR_BS14 ((uint32_t)0x00004000) /* Port x Set bit 14 */
#define GPIO_BSHR_BS15 ((uint32_t)0x00008000) /* Port x Set bit 15 */
#define GPIO_BSHR_BR0 ((uint32_t)0x00010000) /* Port x Reset bit 0 */
#define GPIO_BSHR_BR1 ((uint32_t)0x00020000) /* Port x Reset bit 1 */
#define GPIO_BSHR_BR2 ((uint32_t)0x00040000) /* Port x Reset bit 2 */
#define GPIO_BSHR_BR3 ((uint32_t)0x00080000) /* Port x Reset bit 3 */
#define GPIO_BSHR_BR4 ((uint32_t)0x00100000) /* Port x Reset bit 4 */
#define GPIO_BSHR_BR5 ((uint32_t)0x00200000) /* Port x Reset bit 5 */
#define GPIO_BSHR_BR6 ((uint32_t)0x00400000) /* Port x Reset bit 6 */
#define GPIO_BSHR_BR7 ((uint32_t)0x00800000) /* Port x Reset bit 7 */
#define GPIO_BSHR_BR8 ((uint32_t)0x01000000) /* Port x Reset bit 8 */
#define GPIO_BSHR_BR9 ((uint32_t)0x02000000) /* Port x Reset bit 9 */
#define GPIO_BSHR_BR10 ((uint32_t)0x04000000) /* Port x Reset bit 10 */
#define GPIO_BSHR_BR11 ((uint32_t)0x08000000) /* Port x Reset bit 11 */
#define GPIO_BSHR_BR12 ((uint32_t)0x10000000) /* Port x Reset bit 12 */
#define GPIO_BSHR_BR13 ((uint32_t)0x20000000) /* Port x Reset bit 13 */
#define GPIO_BSHR_BR14 ((uint32_t)0x40000000) /* Port x Reset bit 14 */
#define GPIO_BSHR_BR15 ((uint32_t)0x80000000) /* Port x Reset bit 15 */
/******************* Bit definition for GPIO_BCR register *******************/
#define GPIO_BCR_BR0 ((uint16_t)0x0001) /* Port x Reset bit 0 */
#define GPIO_BCR_BR1 ((uint16_t)0x0002) /* Port x Reset bit 1 */
#define GPIO_BCR_BR2 ((uint16_t)0x0004) /* Port x Reset bit 2 */
#define GPIO_BCR_BR3 ((uint16_t)0x0008) /* Port x Reset bit 3 */
#define GPIO_BCR_BR4 ((uint16_t)0x0010) /* Port x Reset bit 4 */
#define GPIO_BCR_BR5 ((uint16_t)0x0020) /* Port x Reset bit 5 */
#define GPIO_BCR_BR6 ((uint16_t)0x0040) /* Port x Reset bit 6 */
#define GPIO_BCR_BR7 ((uint16_t)0x0080) /* Port x Reset bit 7 */
#define GPIO_BCR_BR8 ((uint16_t)0x0100) /* Port x Reset bit 8 */
#define GPIO_BCR_BR9 ((uint16_t)0x0200) /* Port x Reset bit 9 */
#define GPIO_BCR_BR10 ((uint16_t)0x0400) /* Port x Reset bit 10 */
#define GPIO_BCR_BR11 ((uint16_t)0x0800) /* Port x Reset bit 11 */
#define GPIO_BCR_BR12 ((uint16_t)0x1000) /* Port x Reset bit 12 */
#define GPIO_BCR_BR13 ((uint16_t)0x2000) /* Port x Reset bit 13 */
#define GPIO_BCR_BR14 ((uint16_t)0x4000) /* Port x Reset bit 14 */
#define GPIO_BCR_BR15 ((uint16_t)0x8000) /* Port x Reset bit 15 */
/****************** Bit definition for GPIO_LCKR register *******************/
#define GPIO_LCK0 ((uint32_t)0x00000001) /* Port x Lock bit 0 */
#define GPIO_LCK1 ((uint32_t)0x00000002) /* Port x Lock bit 1 */
#define GPIO_LCK2 ((uint32_t)0x00000004) /* Port x Lock bit 2 */
#define GPIO_LCK3 ((uint32_t)0x00000008) /* Port x Lock bit 3 */
#define GPIO_LCK4 ((uint32_t)0x00000010) /* Port x Lock bit 4 */
#define GPIO_LCK5 ((uint32_t)0x00000020) /* Port x Lock bit 5 */
#define GPIO_LCK6 ((uint32_t)0x00000040) /* Port x Lock bit 6 */
#define GPIO_LCK7 ((uint32_t)0x00000080) /* Port x Lock bit 7 */
#define GPIO_LCK8 ((uint32_t)0x00000100) /* Port x Lock bit 8 */
#define GPIO_LCK9 ((uint32_t)0x00000200) /* Port x Lock bit 9 */
#define GPIO_LCK10 ((uint32_t)0x00000400) /* Port x Lock bit 10 */
#define GPIO_LCK11 ((uint32_t)0x00000800) /* Port x Lock bit 11 */
#define GPIO_LCK12 ((uint32_t)0x00001000) /* Port x Lock bit 12 */
#define GPIO_LCK13 ((uint32_t)0x00002000) /* Port x Lock bit 13 */
#define GPIO_LCK14 ((uint32_t)0x00004000) /* Port x Lock bit 14 */
#define GPIO_LCK15 ((uint32_t)0x00008000) /* Port x Lock bit 15 */
#define GPIO_LCKK ((uint32_t)0x00010000) /* Lock key */
/****************** Bit definition for AFIO_PCFR1 register ******************/
#define AFIO_PCFR1_PD0_1_REMAP ((uint32_t)0x00000001)
#define AFIO_PCFR1_ADC1_ETRGINJ_REMAP ((uint32_t)0x00000002)
#define AFIO_PCFR1_ADC1_ETRGREG_REMAP ((uint32_t)0x00000004)
#define AFIO_PCFR1_ADC2_ETRGINJ_REMAP ((uint32_t)0x00000008)
#define AFIO_PCFR1_ADC2_ETRGREG_REMAP ((uint32_t)0x00000010)
#define AFIO_PCFR1_UHSIF_CLK_REMAP ((uint32_t)0x000000C0)
#define AFIO_PCFR1_UHSIF_CLK_REMAP_0 ((uint32_t)0x00000040)
#define AFIO_PCFR1_UHSIF_CLK_REMAP_1 ((uint32_t)0x00000080)
#define AFIO_PCFR1_UHSIF_PORT_REMAP ((uint32_t)0x00000300)
#define AFIO_PCFR1_UHSIF_PORT_REMAP_0 ((uint32_t)0x00000100)
#define AFIO_PCFR1_UHSIF_PORT_REMAP_1 ((uint32_t)0x00000200)
#define AFIO_PCFR1_SDMMC_REMAP ((uint32_t)0x00000C00)
#define AFIO_PCFR1_SDMMC_REMAP_0 ((uint32_t)0x00000400)
#define AFIO_PCFR1_SDMMC_REMAP_1 ((uint32_t)0x00000800)
#define AFIO_PCFR1_TIM2ITR1_REMAP ((uint32_t)0x00001000)
#define AFIO_PCFR1_VIO18_IO_HSLV ((uint32_t)0x00010000)
#define AFIO_PCFR1_VIO33_IO_HSLV ((uint32_t)0x00020000)
#define AFIO_PCFR1_VDD33_IO_HSLV ((uint32_t)0x00040000)
#define AFIO_PCFR1_USBPD_CC_HVT ((uint32_t)0x00100000)
#define AFIO_PCFR1_SWJ_CFG ((uint32_t)0x07000000) /* SWJ_CFG[2:0] bits (Serial Wire JTAG configuration) */
#define AFIO_PCFR1_SWJ_CFG_0 ((uint32_t)0x01000000) /* Bit 0 */
#define AFIO_PCFR1_SWJ_CFG_1 ((uint32_t)0x02000000) /* Bit 1 */
#define AFIO_PCFR1_SWJ_CFG_2 ((uint32_t)0x04000000) /* Bit 2 */
/****************** Bit definition for AFIO_AFLR register *******************/
#define AFIO_AFLR_AFR0 ((uint32_t)0x0000000F)
#define AFIO_AFLR_AFR0_0 ((uint32_t)0x00000001)
#define AFIO_AFLR_AFR0_1 ((uint32_t)0x00000002)
#define AFIO_AFLR_AFR0_2 ((uint32_t)0x00000004)
#define AFIO_AFLR_AFR0_3 ((uint32_t)0x00000008)
#define AFIO_AFLR_AFR1 ((uint32_t)0x000000F0)
#define AFIO_AFLR_AFR1_0 ((uint32_t)0x00000010)
#define AFIO_AFLR_AFR1_1 ((uint32_t)0x00000020)
#define AFIO_AFLR_AFR1_2 ((uint32_t)0x00000040)
#define AFIO_AFLR_AFR1_3 ((uint32_t)0x00000080)
#define AFIO_AFLR_AFR2 ((uint32_t)0x00000F00)
#define AFIO_AFLR_AFR2_0 ((uint32_t)0x00000100)
#define AFIO_AFLR_AFR2_1 ((uint32_t)0x00000200)
#define AFIO_AFLR_AFR2_2 ((uint32_t)0x00000400)
#define AFIO_AFLR_AFR2_3 ((uint32_t)0x00000800)
#define AFIO_AFLR_AFR3 ((uint32_t)0x0000F000)
#define AFIO_AFLR_AFR3_0 ((uint32_t)0x00001000)
#define AFIO_AFLR_AFR3_1 ((uint32_t)0x00002000)
#define AFIO_AFLR_AFR3_2 ((uint32_t)0x00004000)
#define AFIO_AFLR_AFR3_3 ((uint32_t)0x00008000)
#define AFIO_AFLR_AFR4 ((uint32_t)0x000F0000)
#define AFIO_AFLR_AFR4_0 ((uint32_t)0x00010000)
#define AFIO_AFLR_AFR4_1 ((uint32_t)0x00020000)
#define AFIO_AFLR_AFR4_2 ((uint32_t)0x00040000)
#define AFIO_AFLR_AFR4_3 ((uint32_t)0x00080000)
#define AFIO_AFLR_AFR5 ((uint32_t)0x00F00000)
#define AFIO_AFLR_AFR5_0 ((uint32_t)0x00100000)
#define AFIO_AFLR_AFR5_1 ((uint32_t)0x00200000)
#define AFIO_AFLR_AFR5_2 ((uint32_t)0x00400000)
#define AFIO_AFLR_AFR5_3 ((uint32_t)0x00800000)
#define AFIO_AFLR_AFR6 ((uint32_t)0x0F000000)
#define AFIO_AFLR_AFR6_0 ((uint32_t)0x01000000)
#define AFIO_AFLR_AFR6_1 ((uint32_t)0x02000000)
#define AFIO_AFLR_AFR6_2 ((uint32_t)0x04000000)
#define AFIO_AFLR_AFR6_3 ((uint32_t)0x08000000)
#define AFIO_AFLR_AFR7 ((uint32_t)0xF0000000)
#define AFIO_AFLR_AFR7_0 ((uint32_t)0x10000000)
#define AFIO_AFLR_AFR7_1 ((uint32_t)0x20000000)
#define AFIO_AFLR_AFR7_2 ((uint32_t)0x40000000)
#define AFIO_AFLR_AFR7_3 ((uint32_t)0x80000000)
/****************** Bit definition for AFIO_AFHR register *******************/
#define AFIO_AFHR_AFR8 ((uint32_t)0x0000000F)
#define AFIO_AFHR_AFR8_0 ((uint32_t)0x00000001)
#define AFIO_AFHR_AFR8_1 ((uint32_t)0x00000002)
#define AFIO_AFHR_AFR8_2 ((uint32_t)0x00000004)
#define AFIO_AFHR_AFR8_3 ((uint32_t)0x00000008)
#define AFIO_AFHR_AFR9 ((uint32_t)0x000000F0)
#define AFIO_AFHR_AFR9_0 ((uint32_t)0x00000010)
#define AFIO_AFHR_AFR9_1 ((uint32_t)0x00000020)
#define AFIO_AFHR_AFR9_2 ((uint32_t)0x00000040)
#define AFIO_AFHR_AFR9_3 ((uint32_t)0x00000080)
#define AFIO_AFHR_AFR10 ((uint32_t)0x00000F00)
#define AFIO_AFHR_AFR10_0 ((uint32_t)0x00000100)
#define AFIO_AFHR_AFR10_1 ((uint32_t)0x00000200)
#define AFIO_AFHR_AFR10_2 ((uint32_t)0x00000400)
#define AFIO_AFHR_AFR10_3 ((uint32_t)0x00000800)
#define AFIO_AFHR_AFR11 ((uint32_t)0x0000F000)
#define AFIO_AFHR_AFR11_0 ((uint32_t)0x00001000)
#define AFIO_AFHR_AFR11_1 ((uint32_t)0x00002000)
#define AFIO_AFHR_AFR11_2 ((uint32_t)0x00004000)
#define AFIO_AFHR_AFR11_3 ((uint32_t)0x00008000)
#define AFIO_AFHR_AFR12 ((uint32_t)0x000F0000)
#define AFIO_AFHR_AFR12_0 ((uint32_t)0x00010000)
#define AFIO_AFHR_AFR12_1 ((uint32_t)0x00020000)
#define AFIO_AFHR_AFR12_2 ((uint32_t)0x00040000)
#define AFIO_AFHR_AFR12_3 ((uint32_t)0x00080000)
#define AFIO_AFHR_AFR13 ((uint32_t)0x00F00000)
#define AFIO_AFHR_AFR13_0 ((uint32_t)0x00100000)
#define AFIO_AFHR_AFR13_1 ((uint32_t)0x00200000)
#define AFIO_AFHR_AFR13_2 ((uint32_t)0x00400000)
#define AFIO_AFHR_AFR13_3 ((uint32_t)0x00800000)
#define AFIO_AFHR_AFR14 ((uint32_t)0x0F000000)
#define AFIO_AFHR_AFR14_0 ((uint32_t)0x01000000)
#define AFIO_AFHR_AFR14_1 ((uint32_t)0x02000000)
#define AFIO_AFHR_AFR14_2 ((uint32_t)0x04000000)
#define AFIO_AFHR_AFR14_3 ((uint32_t)0x08000000)
#define AFIO_AFHR_AFR15 ((uint32_t)0xF0000000)
#define AFIO_AFHR_AFR15_0 ((uint32_t)0x10000000)
#define AFIO_AFHR_AFR15_1 ((uint32_t)0x20000000)
#define AFIO_AFHR_AFR15_2 ((uint32_t)0x40000000)
#define AFIO_AFHR_AFR15_3 ((uint32_t)0x80000000)
/****************** Bit definition for AFIO_EXTICR1 register *******************/
#define AFIO_EXTICR1_EXTI0 ((uint32_t)0x0000000F) /* EXTI 0 configuration */
#define AFIO_EXTICR1_EXTI1 ((uint32_t)0x000000F0) /* EXTI 1 configuration */
#define AFIO_EXTICR1_EXTI2 ((uint32_t)0x00000F00) /* EXTI 2 configuration */
#define AFIO_EXTICR1_EXTI3 ((uint32_t)0x0000F000) /* EXTI 3 configuration */
#define AFIO_EXTICR1_EXTI4 ((uint32_t)0x000F0000) /* EXTI 4 configuration */
#define AFIO_EXTICR1_EXTI5 ((uint32_t)0x00F00000) /* EXTI 5 configuration */
#define AFIO_EXTICR1_EXTI6 ((uint32_t)0x0F000000) /* EXTI 6 configuration */
#define AFIO_EXTICR1_EXTI7 ((uint32_t)0xF0000000) /* EXTI 7 configuration */
#define AFIO_EXTICR1_EXTI0_PA ((uint32_t)0x00000000) /* PA[0] pin */
#define AFIO_EXTICR1_EXTI0_PB ((uint32_t)0x00000001) /* PB[0] pin */
#define AFIO_EXTICR1_EXTI0_PC ((uint32_t)0x00000002) /* PC[0] pin */
#define AFIO_EXTICR1_EXTI0_PD ((uint32_t)0x00000003) /* PD[0] pin */
#define AFIO_EXTICR1_EXTI0_PE ((uint32_t)0x00000004) /* PE[0] pin */
#define AFIO_EXTICR1_EXTI0_PF ((uint32_t)0x00000005) /* PF[0] pin */
#define AFIO_EXTICR1_EXTI0_CMPOUT ((uint32_t)0x00000006) /* CMP OUT */
#define AFIO_EXTICR1_EXTI1_PA ((uint32_t)0x00000000) /* PA[1] pin */
#define AFIO_EXTICR1_EXTI1_PB ((uint32_t)0x00000010) /* PB[1] pin */
#define AFIO_EXTICR1_EXTI1_PC ((uint32_t)0x00000020) /* PC[1] pin */
#define AFIO_EXTICR1_EXTI1_PD ((uint32_t)0x00000030) /* PD[1] pin */
#define AFIO_EXTICR1_EXTI1_PE ((uint32_t)0x00000040) /* PE[1] pin */
#define AFIO_EXTICR1_EXTI1_PF ((uint32_t)0x00000050) /* PF[1] pin */
#define AFIO_EXTICR1_EXTI1_CMPOUT ((uint32_t)0x00000060) /* CMP OUT */
#define AFIO_EXTICR1_EXTI2_PA ((uint32_t)0x00000000) /* PA[2] pin */
#define AFIO_EXTICR1_EXTI2_PB ((uint32_t)0x00000100) /* PB[2] pin */
#define AFIO_EXTICR1_EXTI2_PC ((uint32_t)0x00000200) /* PC[2] pin */
#define AFIO_EXTICR1_EXTI2_PD ((uint32_t)0x00000300) /* PD[2] pin */
#define AFIO_EXTICR1_EXTI2_PE ((uint32_t)0x00000400) /* PE[2] pin */
#define AFIO_EXTICR1_EXTI2_PF ((uint32_t)0x00000500) /* PF[2] pin */
#define AFIO_EXTICR1_EXTI2_CMPOUT ((uint32_t)0x00000600) /* CMP OUT */
#define AFIO_EXTICR1_EXTI3_PA ((uint32_t)0x00000000) /* PA[3] pin */
#define AFIO_EXTICR1_EXTI3_PB ((uint32_t)0x00001000) /* PB[3] pin */
#define AFIO_EXTICR1_EXTI3_PC ((uint32_t)0x00002000) /* PC[3] pin */
#define AFIO_EXTICR1_EXTI3_PD ((uint32_t)0x00003000) /* PD[3] pin */
#define AFIO_EXTICR1_EXTI3_PE ((uint32_t)0x00004000) /* PE[3] pin */
#define AFIO_EXTICR1_EXTI3_PF ((uint32_t)0x00005000) /* PF[3] pin */
#define AFIO_EXTICR1_EXTI3_CMPOUT ((uint32_t)0x00006000) /* CMP OUT */
#define AFIO_EXTICR1_EXTI4_PA ((uint32_t)0x00000000) /* PA[4] pin */
#define AFIO_EXTICR1_EXTI4_PB ((uint32_t)0x00010000) /* PB[4] pin */
#define AFIO_EXTICR1_EXTI4_PC ((uint32_t)0x00020000) /* PC[4] pin */
#define AFIO_EXTICR1_EXTI4_PD ((uint32_t)0x00030000) /* PD[4] pin */
#define AFIO_EXTICR1_EXTI4_PE ((uint32_t)0x00040000) /* PE[4] pin */
#define AFIO_EXTICR1_EXTI4_PF ((uint32_t)0x00050000) /* PF[4] pin */
#define AFIO_EXTICR1_EXTI4_CMPOUT ((uint32_t)0x00060000) /* CMP OUT */
#define AFIO_EXTICR1_EXTI5_PA ((uint32_t)0x00000000) /* PA[5] pin */
#define AFIO_EXTICR1_EXTI5_PB ((uint32_t)0x00100000) /* PB[5] pin */
#define AFIO_EXTICR1_EXTI5_PC ((uint32_t)0x00200000) /* PC[5] pin */
#define AFIO_EXTICR1_EXTI5_PD ((uint32_t)0x00300000) /* PD[5] pin */
#define AFIO_EXTICR1_EXTI5_PE ((uint32_t)0x00400000) /* PE[5] pin */
#define AFIO_EXTICR1_EXTI5_PF ((uint32_t)0x00500000) /* PF[5] pin */
#define AFIO_EXTICR1_EXTI5_CMPOUT ((uint32_t)0x00600000) /* CMP OUT */
#define AFIO_EXTICR1_EXTI6_PA ((uint32_t)0x00000000) /* PA[6] pin */
#define AFIO_EXTICR1_EXTI6_PB ((uint32_t)0x01000000) /* PB[6] pin */
#define AFIO_EXTICR1_EXTI6_PC ((uint32_t)0x02000000) /* PC[6] pin */
#define AFIO_EXTICR1_EXTI6_PD ((uint32_t)0x03000000) /* PD[6] pin */
#define AFIO_EXTICR1_EXTI6_PE ((uint32_t)0x04000000) /* PE[6] pin */
#define AFIO_EXTICR1_EXTI6_PF ((uint32_t)0x05000000) /* PF[6] pin */
#define AFIO_EXTICR1_EXTI6_CMPOUT ((uint32_t)0x06000000) /* CMP OUT */
#define AFIO_EXTICR1_EXTI7_PA ((uint32_t)0x00000000) /* PA[7] pin */
#define AFIO_EXTICR1_EXTI7_PB ((uint32_t)0x10000000) /* PB[7] pin */
#define AFIO_EXTICR1_EXTI7_PC ((uint32_t)0x20000000) /* PC[7] pin */
#define AFIO_EXTICR1_EXTI7_PD ((uint32_t)0x30000000) /* PD[7] pin */
#define AFIO_EXTICR1_EXTI7_PE ((uint32_t)0x40000000) /* PE[7] pin */
#define AFIO_EXTICR1_EXTI7_PF ((uint32_t)0x50000000) /* PF[7] pin */
#define AFIO_EXTICR1_EXTI7_CMPOUT ((uint32_t)0x60000000) /* CMP OUT */
/****************** Bit definition for AFIO_EXTICR2 register *******************/
#define AFIO_EXTICR2_EXTI8 ((uint32_t)0x0000000F) /* EXTI 0 configuration */
#define AFIO_EXTICR2_EXTI9 ((uint32_t)0x000000F0) /* EXTI 1 configuration */
#define AFIO_EXTICR2_EXTI10 ((uint32_t)0x00000F00) /* EXTI 2 configuration */
#define AFIO_EXTICR2_EXTI11 ((uint32_t)0x0000F000) /* EXTI 3 configuration */
#define AFIO_EXTICR2_EXTI12 ((uint32_t)0x000F0000) /* EXTI 4 configuration */
#define AFIO_EXTICR2_EXTI13 ((uint32_t)0x00F00000) /* EXTI 5 configuration */
#define AFIO_EXTICR2_EXTI14 ((uint32_t)0x0F000000) /* EXTI 6 configuration */
#define AFIO_EXTICR2_EXTI15 ((uint32_t)0xF0000000) /* EXTI 7 configuration */
#define AFIO_EXTICR2_EXTI8_PA ((uint32_t)0x00000000) /* PA[0] pin */
#define AFIO_EXTICR2_EXTI8_PB ((uint32_t)0x00000001) /* PB[0] pin */
#define AFIO_EXTICR2_EXTI8_PC ((uint32_t)0x00000002) /* PC[0] pin */
#define AFIO_EXTICR2_EXTI8_PD ((uint32_t)0x00000003) /* PD[0] pin */
#define AFIO_EXTICR2_EXTI8_PE ((uint32_t)0x00000004) /* PE[0] pin */
#define AFIO_EXTICR2_EXTI8_PF ((uint32_t)0x00000005) /* PF[0] pin */
#define AFIO_EXTICR2_EXTI8_CMPOUT ((uint32_t)0x00000006) /* CMP OUT */
#define AFIO_EXTICR2_EXTI9_PA ((uint32_t)0x00000000) /* PA[1] pin */
#define AFIO_EXTICR2_EXTI9_PB ((uint32_t)0x00000010) /* PB[1] pin */
#define AFIO_EXTICR2_EXTI9_PC ((uint32_t)0x00000020) /* PC[1] pin */
#define AFIO_EXTICR2_EXTI9_PD ((uint32_t)0x00000030) /* PD[1] pin */
#define AFIO_EXTICR2_EXTI9_PE ((uint32_t)0x00000040) /* PE[1] pin */
#define AFIO_EXTICR2_EXTI9_PF ((uint32_t)0x00000050) /* PF[1] pin */
#define AFIO_EXTICR2_EXTI9_CMPOUT ((uint32_t)0x00000060) /* CMP OUT */
#define AFIO_EXTICR2_EXTI10_PA ((uint32_t)0x00000000) /* PA[2] pin */
#define AFIO_EXTICR2_EXTI10_PB ((uint32_t)0x00000100) /* PB[2] pin */
#define AFIO_EXTICR2_EXTI10_PC ((uint32_t)0x00000200) /* PC[2] pin */
#define AFIO_EXTICR2_EXTI10_PD ((uint32_t)0x00000300) /* PD[2] pin */
#define AFIO_EXTICR2_EXTI10_PE ((uint32_t)0x00000400) /* PE[2] pin */
#define AFIO_EXTICR2_EXTI10_PF ((uint32_t)0x00000500) /* PF[2] pin */
#define AFIO_EXTICR2_EXTI10_CMPOUT ((uint32_t)0x00000600) /* CMP OUT */
#define AFIO_EXTICR2_EXTI11_PA ((uint32_t)0x00000000) /* PA[3] pin */
#define AFIO_EXTICR2_EXTI11_PB ((uint32_t)0x00001000) /* PB[3] pin */
#define AFIO_EXTICR2_EXTI11_PC ((uint32_t)0x00002000) /* PC[3] pin */
#define AFIO_EXTICR2_EXTI11_PD ((uint32_t)0x00003000) /* PD[3] pin */
#define AFIO_EXTICR2_EXTI11_PE ((uint32_t)0x00004000) /* PE[3] pin */
#define AFIO_EXTICR2_EXTI11_PF ((uint32_t)0x00005000) /* PF[3] pin */
#define AFIO_EXTICR2_EXTI11_CMPOUT ((uint32_t)0x00006000) /* CMP OUT */
#define AFIO_EXTICR2_EXTI12_PA ((uint32_t)0x00000000) /* PA[4] pin */
#define AFIO_EXTICR2_EXTI12_PB ((uint32_t)0x00010000) /* PB[4] pin */
#define AFIO_EXTICR2_EXTI12_PC ((uint32_t)0x00020000) /* PC[4] pin */
#define AFIO_EXTICR2_EXTI12_PD ((uint32_t)0x00030000) /* PD[4] pin */
#define AFIO_EXTICR2_EXTI12_PE ((uint32_t)0x00040000) /* PE[4] pin */
#define AFIO_EXTICR2_EXTI12_PF ((uint32_t)0x00050000) /* PF[4] pin */
#define AFIO_EXTICR2_EXTI12_CMPOUT ((uint32_t)0x00060000) /* CMP OUT */
#define AFIO_EXTICR2_EXTI13_PA ((uint32_t)0x00000000) /* PA[5] pin */
#define AFIO_EXTICR2_EXTI13_PB ((uint32_t)0x00100000) /* PB[5] pin */
#define AFIO_EXTICR2_EXTI13_PC ((uint32_t)0x00200000) /* PC[5] pin */
#define AFIO_EXTICR2_EXTI13_PD ((uint32_t)0x00300000) /* PD[5] pin */
#define AFIO_EXTICR2_EXTI13_PE ((uint32_t)0x00400000) /* PE[5] pin */
#define AFIO_EXTICR2_EXTI13_PF ((uint32_t)0x00500000) /* PF[5] pin */
#define AFIO_EXTICR2_EXTI13_CMPOUT ((uint32_t)0x00600000) /* CMP OUT */
#define AFIO_EXTICR2_EXTI14_PA ((uint32_t)0x00000000) /* PA[6] pin */
#define AFIO_EXTICR2_EXTI14_PB ((uint32_t)0x01000000) /* PB[6] pin */
#define AFIO_EXTICR2_EXTI14_PC ((uint32_t)0x02000000) /* PC[6] pin */
#define AFIO_EXTICR2_EXTI14_PD ((uint32_t)0x03000000) /* PD[6] pin */
#define AFIO_EXTICR2_EXTI14_PE ((uint32_t)0x04000000) /* PE[6] pin */
#define AFIO_EXTICR2_EXTI14_PF ((uint32_t)0x05000000) /* PF[6] pin */
#define AFIO_EXTICR2_EXTI14_CMPOUT ((uint32_t)0x06000000) /* CMP OUT */
#define AFIO_EXTICR2_EXTI15_PA ((uint32_t)0x00000000) /* PA[7] pin */
#define AFIO_EXTICR2_EXTI15_PB ((uint32_t)0x10000000) /* PB[7] pin */
#define AFIO_EXTICR2_EXTI15_PC ((uint32_t)0x20000000) /* PC[7] pin */
#define AFIO_EXTICR2_EXTI15_PD ((uint32_t)0x30000000) /* PD[7] pin */
#define AFIO_EXTICR2_EXTI15_PE ((uint32_t)0x40000000) /* PE[7] pin */
#define AFIO_EXTICR2_EXTI15_PF ((uint32_t)0x50000000) /* PF[7] pin */
#define AFIO_EXTICR2_EXTI15_CMPOUT ((uint32_t)0x60000000) /* CMP OUT */
/******************************************************************************/
/* Independent WATCHDOG */
/******************************************************************************/
/******************* Bit definition for IWDG_CTLR register ********************/
#define IWDG_KEY ((uint16_t)0xFFFF) /* Key value (write only, read 0000h) */
/******************* Bit definition for IWDG_PSCR register ********************/
#define IWDG_PR ((uint8_t)0x07) /* PR[2:0] (Prescaler divider) */
#define IWDG_PR_0 ((uint8_t)0x01) /* Bit 0 */
#define IWDG_PR_1 ((uint8_t)0x02) /* Bit 1 */
#define IWDG_PR_2 ((uint8_t)0x04) /* Bit 2 */
/******************* Bit definition for IWDG_RLDR register *******************/
#define IWDG_RL ((uint16_t)0x0FFF) /* Watchdog counter reload value */
/******************* Bit definition for IWDG_STATR register ********************/
#define IWDG_PVU ((uint8_t)0x01) /* Watchdog prescaler value update */
#define IWDG_RVU ((uint8_t)0x02) /* Watchdog counter reload value update */
/******************************************************************************/
/* Inter-integrated Circuit Interface */
/******************************************************************************/
/******************* Bit definition for I2C_CTLR1 register ********************/
#define I2C_CTLR1_PE ((uint16_t)0x0001) /* Peripheral Enable */
#define I2C_CTLR1_SMBUS ((uint16_t)0x0002) /* SMBus Mode */
#define I2C_CTLR1_SMBTYPE ((uint16_t)0x0008) /* SMBus Type */
#define I2C_CTLR1_ENARP ((uint16_t)0x0010) /* ARP Enable */
#define I2C_CTLR1_ENPEC ((uint16_t)0x0020) /* PEC Enable */
#define I2C_CTLR1_ENGC ((uint16_t)0x0040) /* General Call Enable */
#define I2C_CTLR1_NOSTRETCH ((uint16_t)0x0080) /* Clock Stretching Disable (Slave mode) */
#define I2C_CTLR1_START ((uint16_t)0x0100) /* Start Generation */
#define I2C_CTLR1_STOP ((uint16_t)0x0200) /* Stop Generation */
#define I2C_CTLR1_ACK ((uint16_t)0x0400) /* Acknowledge Enable */
#define I2C_CTLR1_POS ((uint16_t)0x0800) /* Acknowledge/PEC Position (for data reception) */
#define I2C_CTLR1_PEC ((uint16_t)0x1000) /* Packet Error Checking */
#define I2C_CTLR1_ALERT ((uint16_t)0x2000) /* SMBus Alert */
#define I2C_CTLR1_SWRST ((uint16_t)0x8000) /* Software Reset */
/******************* Bit definition for I2C_CTLR2 register ********************/
#define I2C_CTLR2_FREQ ((uint16_t)0x003F) /* FREQ[5:0] bits (Peripheral Clock Frequency) */
#define I2C_CTLR2_FREQ_0 ((uint16_t)0x0001) /* Bit 0 */
#define I2C_CTLR2_FREQ_1 ((uint16_t)0x0002) /* Bit 1 */
#define I2C_CTLR2_FREQ_2 ((uint16_t)0x0004) /* Bit 2 */
#define I2C_CTLR2_FREQ_3 ((uint16_t)0x0008) /* Bit 3 */
#define I2C_CTLR2_FREQ_4 ((uint16_t)0x0010) /* Bit 4 */
#define I2C_CTLR2_FREQ_5 ((uint16_t)0x0020) /* Bit 5 */
#define I2C_CTLR2_ITERREN ((uint16_t)0x0100) /* Error Interrupt Enable */
#define I2C_CTLR2_ITEVTEN ((uint16_t)0x0200) /* Event Interrupt Enable */
#define I2C_CTLR2_ITBUFEN ((uint16_t)0x0400) /* Buffer Interrupt Enable */
#define I2C_CTLR2_DMAEN ((uint16_t)0x0800) /* DMA Requests Enable */
#define I2C_CTLR2_LAST ((uint16_t)0x1000) /* DMA Last Transfer */
/******************* Bit definition for I2C_OADDR1 register *******************/
#define I2C_OADDR1_ADD0 ((uint16_t)0x0001)
#define I2C_OADDR1_ADD1_7 ((uint16_t)0x00FE) /* Interface Address */
#define I2C_OADDR1_ADD8_9 ((uint16_t)0x0300) /* Interface Address */
#define I2C_OADDR1_ADD0 ((uint16_t)0x0001) /* Bit 0 */
#define I2C_OADDR1_ADD1 ((uint16_t)0x0002) /* Bit 1 */
#define I2C_OADDR1_ADD2 ((uint16_t)0x0004) /* Bit 2 */
#define I2C_OADDR1_ADD3 ((uint16_t)0x0008) /* Bit 3 */
#define I2C_OADDR1_ADD4 ((uint16_t)0x0010) /* Bit 4 */
#define I2C_OADDR1_ADD5 ((uint16_t)0x0020) /* Bit 5 */
#define I2C_OADDR1_ADD6 ((uint16_t)0x0040) /* Bit 6 */
#define I2C_OADDR1_ADD7 ((uint16_t)0x0080) /* Bit 7 */
#define I2C_OADDR1_ADD8 ((uint16_t)0x0100) /* Bit 8 */
#define I2C_OADDR1_ADD9 ((uint16_t)0x0200) /* Bit 9 */
#define I2C_OADDR1_ADDMODE ((uint16_t)0x8000) /* Addressing Mode (Slave mode) */
/******************* Bit definition for I2C_OADDR2 register *******************/
#define I2C_OADDR2_ENDUAL ((uint8_t)0x01) /* Dual addressing mode enable */
#define I2C_OADDR2_ADD2 ((uint8_t)0xFE) /* Interface address */
/******************** Bit definition for I2C_DATAR register ********************/
#define I2C_DR_DATAR ((uint8_t)0xFF) /* 8-bit Data Register */
/******************* Bit definition for I2C_STAR1 register ********************/
#define I2C_STAR1_SB ((uint16_t)0x0001) /* Start Bit (Master mode) */
#define I2C_STAR1_ADDR ((uint16_t)0x0002) /* Address sent (master mode)/matched (slave mode) */
#define I2C_STAR1_BTF ((uint16_t)0x0004) /* Byte Transfer Finished */
#define I2C_STAR1_ADD10 ((uint16_t)0x0008) /* 10-bit header sent (Master mode) */
#define I2C_STAR1_STOPF ((uint16_t)0x0010) /* Stop detection (Slave mode) */
#define I2C_STAR1_RXNE ((uint16_t)0x0040) /* Data Register not Empty (receivers) */
#define I2C_STAR1_TXE ((uint16_t)0x0080) /* Data Register Empty (transmitters) */
#define I2C_STAR1_BERR ((uint16_t)0x0100) /* Bus Error */
#define I2C_STAR1_ARLO ((uint16_t)0x0200) /* Arbitration Lost (master mode) */
#define I2C_STAR1_AF ((uint16_t)0x0400) /* Acknowledge Failure */
#define I2C_STAR1_OVR ((uint16_t)0x0800) /* Overrun/Underrun */
#define I2C_STAR1_PECERR ((uint16_t)0x1000) /* PEC Error in reception */
#define I2C_STAR1_TIMEOUT ((uint16_t)0x4000) /* Timeout or Tlow Error */
#define I2C_STAR1_SMBALERT ((uint16_t)0x8000) /* SMBus Alert */
/******************* Bit definition for I2C_STAR2 register ********************/
#define I2C_STAR2_MSL ((uint16_t)0x0001) /* Master/Slave */
#define I2C_STAR2_BUSY ((uint16_t)0x0002) /* Bus Busy */
#define I2C_STAR2_TRA ((uint16_t)0x0004) /* Transmitter/Receiver */
#define I2C_STAR2_GENCALL ((uint16_t)0x0010) /* General Call Address (Slave mode) */
#define I2C_STAR2_SMBDEFAULT ((uint16_t)0x0020) /* SMBus Device Default Address (Slave mode) */
#define I2C_STAR2_SMBHOST ((uint16_t)0x0040) /* SMBus Host Header (Slave mode) */
#define I2C_STAR2_DUALF ((uint16_t)0x0080) /* Dual Flag (Slave mode) */
#define I2C_STAR2_PEC ((uint16_t)0xFF00) /* Packet Error Checking Register */
/******************* Bit definition for I2C_CKCFGR register ********************/
#define I2C_CKCFGR_CCR ((uint16_t)0x0FFF) /* Clock Control Register in Fast/Standard mode (Master mode) */
#define I2C_CKCFGR_DUTY ((uint16_t)0x4000) /* Fast Mode Duty Cycle */
#define I2C_CKCFGR_FS ((uint16_t)0x8000) /* I2C Master Mode Selection */
/****************** Bit definition for I2C_RTR register *******************/
#define I2C_RTR_TRISE ((uint8_t)0x3F) /* Maximum Rise Time in Fast/Standard mode (Master mode) */
/******************************************************************************/
/* Improved Inter-integrated Circuit Interface */
/******************************************************************************/
/******************* Bit definition for I3C_CTLR register ********************/
#define I3C_CTLR_DCNT ((uint32_t)0x0000FFFF)
#define I3C_CTLR_RNW ((uint32_t)0x00010000)
#define I3C_CTLR_ADD ((uint32_t)0x00FE0000)
#define I3C_CTLR_CCC ((uint32_t)0x00FF0000)
#define I3C_CTLR_MTYPE ((uint32_t)0x78000000)
#define I3C_CTLR_MTYPE_0 ((uint32_t)0x08000000)
#define I3C_CTLR_MTYPE_1 ((uint32_t)0x10000000)
#define I3C_CTLR_MTYPE_2 ((uint32_t)0x20000000)
#define I3C_CTLR_MTYPE_3 ((uint32_t)0x40000000)
#define I3C_CTLR_MEND ((uint32_t)0x80000000)
/******************* Bit definition for I3C_CFGR register ********************/
#define I3C_CFGR_EN ((uint32_t)0x00000001)
#define I3C_CFGR_CRINIT ((uint32_t)0x00000002)
#define I3C_CFGR_NOARBH ((uint32_t)0x00000004)
#define I3C_CFGR_RSTPTRN ((uint32_t)0x00000008)
#define I3C_CFGR_EXITPTRN ((uint32_t)0x00000010)
#define I3C_CFGR_HJACK ((uint32_t)0x00000080)
#define I3C_CFGR_RXDMAEN ((uint32_t)0x00000100)
#define I3C_CFGR_RXFLUSH ((uint32_t)0x00000200)
#define I3C_CFGR_RXTHRES ((uint32_t)0x00000400)
#define I3C_CFGR_TXMAEN ((uint32_t)0x00001000)
#define I3C_CFGR_TXFLUSH ((uint32_t)0x00002000)
#define I3C_CFGR_TXTHRES ((uint32_t)0x00004000)
#define I3C_CFGR_SDMAEN ((uint32_t)0x00010000)
#define I3C_CFGR_SFLUSH ((uint32_t)0x00020000)
#define I3C_CFGR_SMODE ((uint32_t)0x00040000)
#define I3C_CFGR_TMODE ((uint32_t)0x00080000)
#define I3C_CFGR_CDMAEN ((uint32_t)0x00010000)
#define I3C_CFGR_CFLUSH ((uint32_t)0x00020000)
#define I3C_CFGR_TSFSET ((uint32_t)0x40000000)
/******************* Bit definition for I3C_RDR register ********************/
#define I3C_RDR_RDB0 ((uint32_t)0x000000FF)
/******************* Bit definition for I3C_RDWR register ********************/
#define I3C_RDWR_RDB0 ((uint32_t)0x000000FF)
#define I3C_RDWR_RDB1 ((uint32_t)0x0000FF00)
#define I3C_RDWR_RDB2 ((uint32_t)0x00FF0000)
#define I3C_RDWR_RDB3 ((uint32_t)0xFF000000)
/******************* Bit definition for I3C_TDR register ********************/
#define I3C_TDR_TDB0 ((uint32_t)0x000000FF)
/******************* Bit definition for I3C_TDWR register ********************/
#define I3C_TDWR_TDB0 ((uint32_t)0x000000FF)
#define I3C_TDWR_TDB1 ((uint32_t)0x0000FF00)
#define I3C_TDWR_TDB2 ((uint32_t)0x00FF0000)
#define I3C_TDWR_TDB3 ((uint32_t)0xFF000000)
/******************* Bit definition for I3C_IBIDR register ********************/
#define I3C_IBIDR_IBIDB0 ((uint32_t)0x000000FF)
#define I3C_IBIDR_IBIDB1 ((uint32_t)0x0000FF00)
#define I3C_IBIDR_IBIDB2 ((uint32_t)0x00FF0000)
#define I3C_IBIDR_IBIDB3 ((uint32_t)0xFF000000)
/******************* Bit definition for I3C_TGTTDR register ********************/
#define I3C_TGTTDR_TGTTDCNT ((uint32_t)0x0000FFFF)
#define I3C_TGTTDR_PRELOAD ((uint32_t)0x00010000)
/******************* Bit definition for I3C_RESET register ********************/
#define I3C_RESET_HST_SIE_RST ((uint32_t)0x01000000)
#define I3C_RESET_TGT_SIE_RST ((uint32_t)0x02000000)
/******************* Bit definition for I3C_STATR register ********************/
#define I3C_STATR_XDCNT ((uint32_t)0x0000FFFF)
#define I3C_STATR_ABT ((uint32_t)0x00020000)
#define I3C_STATR_DIR ((uint32_t)0x00040000)
#define I3C_STATR_MID ((uint32_t)0xFF000000)
/******************* Bit definition for I3C_STATER register ********************/
#define I3C_STATER_CODERR ((uint32_t)0x0000000F)
#define I3C_STATER_PERR ((uint32_t)0x00000010)
#define I3C_STATER_STALL ((uint32_t)0x00000020)
#define I3C_STATER_DOVR ((uint32_t)0x00000040)
#define I3C_STATER_COVR ((uint32_t)0x00000080)
#define I3C_STATER_ANACK ((uint32_t)0x00000100)
#define I3C_STATER_DNACK ((uint32_t)0x00000200)
#define I3C_STATER_DERR ((uint32_t)0x00000400)
/******************* Bit definition for I3C_RMR register ********************/
#define I3C_RMR_IBIRDCNT ((uint32_t)0x00000007)
#define I3C_RMR_RCODE ((uint32_t)0x0000FF00)
#define I3C_RMR_RADD ((uint32_t)0x00FE0000)
/******************* Bit definition for I3C_EVR register ********************/
#define I3C_EVR_CFEF ((uint32_t)0x00000001)
#define I3C_EVR_TXFEF ((uint32_t)0x00000002)
#define I3C_EVR_CFNFF ((uint32_t)0x00000004)
#define I3C_EVR_SFNEF ((uint32_t)0x00000008)
#define I3C_EVR_TXFNFF ((uint32_t)0x00000010)
#define I3C_EVR_RXFNEF ((uint32_t)0x00000020)
#define I3C_EVR_TXLASTF ((uint32_t)0x00000040)
#define I3C_EVR_RXLASTF ((uint32_t)0x00000080)
#define I3C_EVR_FCF ((uint32_t)0x00000200)
#define I3C_EVR_RXTGTENDF ((uint32_t)0x00000400)
#define I3C_EVR_ERRF ((uint32_t)0x00000800)
#define I3C_EVR_IBIF ((uint32_t)0x00008000)
#define I3C_EVR_IBIENDF ((uint32_t)0x00010000)
#define I3C_EVR_CRF ((uint32_t)0x00020000)
#define I3C_EVR_CRUPDF ((uint32_t)0x00040000)
#define I3C_EVR_HJF ((uint32_t)0x00080000)
#define I3C_EVR_WKPF ((uint32_t)0x00200000)
#define I3C_EVR_GETF ((uint32_t)0x00400000)
#define I3C_EVR_STAF ((uint32_t)0x00800000)
#define I3C_EVR_DAUPDF ((uint32_t)0x01000000)
#define I3C_EVR_MWLUPDF ((uint32_t)0x02000000)
#define I3C_EVR_MRLUPDF ((uint32_t)0x04000000)
#define I3C_EVR_RSTF ((uint32_t)0x08000000)
#define I3C_EVR_ASUPDF ((uint32_t)0x10000000)
#define I3C_EVR_INTUPDF ((uint32_t)0x20000000)
#define I3C_EVR_DEFF ((uint32_t)0x40000000)
#define I3C_EVR_GRPF ((uint32_t)0x80000000)
/***************** Bit definition for I3C_INTENR register ******************/
#define I3C_INTENR_CFNFIE ((uint32_t)0x00000004)
#define I3C_INTENR_SFNEIE ((uint32_t)0x00000008)
#define I3C_INTENR_TXFNEIE ((uint32_t)0x00000010)
#define I3C_INTENR_RXFNEIE ((uint32_t)0x00000020)
#define I3C_INTENR_FCIE ((uint32_t)0x00000200)
#define I3C_INTENR_RXTGTENDIE ((uint32_t)0x00000400)
#define I3C_INTENR_ERRIE ((uint32_t)0x00000800)
#define I3C_INTENR_IBIIE ((uint32_t)0x00008000)
#define I3C_INTENR_IBIENDIE ((uint32_t)0x00010000)
#define I3C_INTENR_CRIE ((uint32_t)0x00020000)
#define I3C_INTENR_CRUPDIE ((uint32_t)0x00040000)
#define I3C_INTENR_HJIE ((uint32_t)0x00080000)
#define I3C_INTENR_WKPIE ((uint32_t)0x00200000)
#define I3C_INTENR_GETIE ((uint32_t)0x00400000)
#define I3C_INTENR_STAIE ((uint32_t)0x00800000)
#define I3C_INTENR_DAUPDIE ((uint32_t)0x01000000)
#define I3C_INTENR_MWLUPDIE ((uint32_t)0x02000000)
#define I3C_INTENR_MRLUPDIE ((uint32_t)0x04000000)
#define I3C_INTENR_RSTIE ((uint32_t)0x08000000)
#define I3C_INTENR_ASUPDIE ((uint32_t)0x10000000)
#define I3C_INTENR_INTUPDIE ((uint32_t)0x20000000)
#define I3C_INTENR_DEFIE ((uint32_t)0x40000000)
#define I3C_INTENR_GRPIE ((uint32_t)0x80000000)
/***************** Bit definition for I3C_CEVR register ******************/
#define I3C_CEVR_CFCR ((uint32_t)0x00000200)
#define I3C_CEVR_CRXTGTENDF ((uint32_t)0x00000400)
#define I3C_CEVR_CERRF ((uint32_t)0x00000800)
#define I3C_CEVR_CIBIF ((uint32_t)0x00008000)
#define I3C_CEVR_CIBIENDF ((uint32_t)0x00010000)
#define I3C_CEVR_CCRF ((uint32_t)0x00020000)
#define I3C_CEVR_CCRUPDF ((uint32_t)0x00040000)
#define I3C_CEVR_CHJF ((uint32_t)0x00080000)
#define I3C_CEVR_CWKPF ((uint32_t)0x00200000)
#define I3C_CEVR_CGETF ((uint32_t)0x00400000)
#define I3C_CEVR_CSTAF ((uint32_t)0x00800000)
#define I3C_CEVR_CDAUPDF ((uint32_t)0x01000000)
#define I3C_CEVR_CMWLUPDF ((uint32_t)0x02000000)
#define I3C_CEVR_CMRLUPDF ((uint32_t)0x04000000)
#define I3C_CEVR_CRSTF ((uint32_t)0x08000000)
#define I3C_CEVR_CASUPDF ((uint32_t)0x10000000)
#define I3C_CEVR_CINTUPDF ((uint32_t)0x20000000)
#define I3C_CEVR_CDEFF ((uint32_t)0x40000000)
#define I3C_CEVR_CGRPF ((uint32_t)0x80000000)
/***************** Bit definition for I3C_DEVR0 register ******************/
#define I3C_DEVR0_DAVAL ((uint32_t)0x00000001)
#define I3C_DEVR0_DA ((uint32_t)0x000000FE)
#define I3C_DEVR0_IBIEN ((uint32_t)0x00010000)
#define I3C_DEVR0_CREN ((uint32_t)0x00020000)
#define I3C_DEVR0_HJEN ((uint32_t)0x00080000)
#define I3C_DEVR0_AS ((uint32_t)0x00300000)
#define I3C_DEVR0_AS_0 ((uint32_t)0x00100000)
#define I3C_DEVR0_AS_1 ((uint32_t)0x00200000)
#define I3C_DEVR0_RSTACT ((uint32_t)0x00C00000)
#define I3C_DEVR0_RSTACT_0 ((uint32_t)0x00400000)
#define I3C_DEVR0_RSTACT_1 ((uint32_t)0x00800000)
#define I3C_DEVR0_RSTVAL ((uint32_t)0x01000000)
/***************** Bit definition for I3C_DEVR1 register ******************/
#define I3C_DEVR1_DA ((uint32_t)0x000000FE)
#define I3C_DEVR1_IBIACK ((uint32_t)0x00010000)
#define I3C_DEVR1_CRACK ((uint32_t)0x00020000)
#define I3C_DEVR1_IBIDEN ((uint32_t)0x00040000)
#define I3C_DEVR1_SUSP ((uint32_t)0x00080000)
#define I3C_DEVR1_DIS ((uint32_t)0x80000000)
/***************** Bit definition for I3C_DEVR2 register ******************/
#define I3C_DEVR2_DA ((uint32_t)0x000000FE)
#define I3C_DEVR2_IBIACK ((uint32_t)0x00010000)
#define I3C_DEVR2_CRACK ((uint32_t)0x00020000)
#define I3C_DEVR2_IBIDEN ((uint32_t)0x00040000)
#define I3C_DEVR2_SUSP ((uint32_t)0x00080000)
#define I3C_DEVR2_DIS ((uint32_t)0x80000000)
/***************** Bit definition for I3C_DEVR3 register ******************/
#define I3C_DEVR3_DA ((uint32_t)0x000000FE)
#define I3C_DEVR3_IBIACK ((uint32_t)0x00010000)
#define I3C_DEVR3_CRACK ((uint32_t)0x00020000)
#define I3C_DEVR3_IBIDEN ((uint32_t)0x00040000)
#define I3C_DEVR3_SUSP ((uint32_t)0x00080000)
#define I3C_DEVR3_DIS ((uint32_t)0x80000000)
/***************** Bit definition for I3C_DEVR4 register ******************/
#define I3C_DEVR4_DA ((uint32_t)0x000000FE)
#define I3C_DEVR4_IBIACK ((uint32_t)0x00010000)
#define I3C_DEVR4_CRACK ((uint32_t)0x00020000)
#define I3C_DEVR4_IBIDEN ((uint32_t)0x00040000)
#define I3C_DEVR4_SUSP ((uint32_t)0x00080000)
#define I3C_DEVR4_DIS ((uint32_t)0x80000000)
/***************** Bit definition for I3C_MAXRLR register ******************/
#define I3C_MAXRLR_MRL ((uint32_t)0x0000FFFF)
#define I3C_MAXRLR_IBIP ((uint32_t)0x00070000)
#define I3C_MAXRLR_IBIP_0 ((uint32_t)0x00010000)
#define I3C_MAXRLR_IBIP_1 ((uint32_t)0x00020000)
#define I3C_MAXRLR_IBIP_2 ((uint32_t)0x00040000)
/***************** Bit definition for I3C_MAXWLR register ******************/
#define I3C_MAXWLR_MWL ((uint32_t)0x0000FFFF)
/***************** Bit definition for I3C_TIMINGR0 register ******************/
#define I3C_TIMINGR0_SCLL_PP ((uint32_t)0x000000FF)
#define I3C_TIMINGR0_SCLH_I3C ((uint32_t)0x0000FF00)
#define I3C_TIMINGR0_SCLL_OD ((uint32_t)0x00FF0000)
#define I3C_TIMINGR0_SCLH_I2C ((uint32_t)0xFF000000)
/***************** Bit definition for I3C_TIMINGR1 register ******************/
#define I3C_TIMINGR1_AVAL ((uint32_t)0x000000FF)
#define I3C_TIMINGR1_ASNCR ((uint32_t)0x00000300)
#define I3C_TIMINGR1_FREE ((uint32_t)0x007F0000)
#define I3C_TIMINGR1_SDA_HD ((uint32_t)0x10000000)
/***************** Bit definition for I3C_TIMINGR2 register ******************/
#define I3C_TIMINGR2_STALLT ((uint32_t)0x00000001)
#define I3C_TIMINGR2_STALLD ((uint32_t)0x00000002)
#define I3C_TIMINGR2_STALLC ((uint32_t)0x00000004)
#define I3C_TIMINGR2_STALLA ((uint32_t)0x00000008)
#define I3C_TIMINGR2_STALL ((uint32_t)0x0000FF00)
/***************** Bit definition for I3C_DCR register ******************/
#define I3C_DCR ((uint32_t)0x000000FF)
/***************** Bit definition for I3C_GETCAPR register ******************/
#define I3C_GETCAPR_CAPPEND ((uint32_t)0x00004000)
/***************** Bit definition for I3C_CRCAPR register ******************/
#define I3C_CRCAPR_CAPDHOFF ((uint32_t)0x00000008)
#define I3C_CRCAPR_CAPGRP ((uint32_t)0x00000200)
/***************** Bit definition for I3C_GETMDSR register ******************/
#define I3C_GETMDSR_HOFFAS ((uint32_t)0x00000003)
#define I3C_GETMDSR_HOFFAS_0 ((uint32_t)0x00000001)
#define I3C_GETMDSR_HOFFAS_1 ((uint32_t)0x00000002)
#define I3C_GETMDSR_FMT ((uint32_t)0x00000300)
#define I3C_GETMDSR_FMT_0 ((uint32_t)0x00000100)
#define I3C_GETMDSR_FMT_1 ((uint32_t)0x00000200)
#define I3C_GETMDSR_RDTURN ((uint32_t)0x00FF0000)
#define I3C_GETMDSR_TSCO ((uint32_t)0x01000000)
/***************** Bit definition for I3C_EPIDR register ******************/
#define I3C_EPIDR_MIPIID ((uint32_t)0x0000F000)
#define I3C_EPIDR_IDTSEL ((uint32_t)0x00010000)
#define I3C_EPIDR_MIPIMID ((uint32_t)0xFFFE0000)
/******************************************************************************/
/* LOW POWER TIM */
/******************************************************************************/
/******************* Bit definition for LPTIM_ISR register *******************/
#define LPTIM_ISR_CMPM ((uint32_t)0x00000001)
#define LPTIM_ISR_ARRM ((uint32_t)0x00000002)
#define LPTIM_ISR_EXTTRIG ((uint32_t)0x00000004)
#define LPTIM_ISR_CMPOK ((uint32_t)0x00000008)
#define LPTIM_ISR_ARROK ((uint32_t)0000000010)
#define LPTIM_ISR_UP ((uint32_t)0x00000020)
#define LPTIM_ISR_DOWN ((uint32_t)0x00000040)
#define LPTIM_ISR_DIRSYNC ((uint32_t)0x00000080)
/******************* Bit definition for LPTIM_ICR register *******************/
#define LPTIM_ICR_CMPMCF ((uint32_t)0x00000001)
#define LPTIM_ICR_ARRMCF ((uint32_t)0x00000002)
#define LPTIM_ICR_EXTTRIGCF ((uint32_t)0x00000004)
#define LPTIM_ICR_CMPOKCF ((uint32_t)0x00000008)
#define LPTIM_ICR_ARROKCF ((uint32_t)0x00000010)
#define LPTIM_ICR_UPCF ((uint32_t)0x00000020)
#define LPTIM_ICR_DOWNCF ((uint32_t)0x00000040)
/******************* Bit definition for LPTIM_IER register *******************/
#define LPTIM_IER_CMPMIE ((uint32_t)0x00000001)
#define LPTIM_IER_ARRMIE ((uint32_t)0x00000002)
#define LPTIM_IER_EXTTRIGIE ((uint32_t)0x00000004)
#define LPTIM_IER_CMPOKIE ((uint32_t)0x00000008)
#define LPTIM_IER_ARROKIE ((uint32_t)0x00000010)
#define LPTIM_IER_UPIE ((uint32_t)0x00000020)
#define LPTIM_IER_DOWNIE ((uint32_t)0x00000040)
/******************* Bit definition for LPTIM_CFGR register *******************/
#define LPTIM_CFGR_CKSEL ((uint32_t)0x00000001)
#define LPTIM_CFGR_CKPOL ((uint32_t)0x00000006)
#define LPTIM_CFGR_CKFLT ((uint32_t)0x00000018)
#define LPTIM_CFGR_TRGFLT ((uint32_t)0x000000C0)
#define LPTIM_CFGR_PRESC ((uint32_t)0x00000E00)
#define LPTIM_CFGR_TRIGSEL ((uint32_t)0x00006000)
#define LPTIM_CFGR_TRIGEN ((uint32_t)0x00060000)
#define LPTIM_CFGR_TIMOUT ((uint32_t)0x00080000)
#define LPTIM_CFGR_WAVE ((uint32_t)0x00100000)
#define LPTIM_CFGR_WAVPOL ((uint32_t)0x00200000)
#define LPTIM_CFGR_PRELOAD ((uint32_t)0x00400000)
#define LPTIM_CFGR_CONTMODE ((uint32_t)0x00800000)
#define LPTIM_CFGR_ENC ((uint32_t)0x01000000)
#define LPTIM_CFGR_CLKSEL ((uint32_t)0x06000000)
#define LPTIM_CFGR_FORCEPWM ((uint32_t)0x08000000)
/******************* Bit definition for LPTIM_CR register *******************/
#define LPTIM_CR_ENABLE ((uint32_t)0x00000001)
#define LPTIM_CR_SNGSTRT ((uint32_t)0x00000002)
#define LPTIM_CR_CNTSTRT ((uint32_t)0x00000004)
#define LPTIM_CR_OUTEN ((uint32_t)0x00000008)
#define LPTIM_CR_DIR_EXTEN ((uint32_t)0x00000010)
/******************* Bit definition for LPTIM_CMP register *******************/
#define LPTIM_CMP ((uint32_t)0x0000FFFF)
/******************* Bit definition for LPTIM_ARR register *******************/
#define LPTIM_ARR ((uint32_t)0x0000FFFF)
/******************* Bit definition for LPTIM_CNT register *******************/
#define LPTIM_COUNT ((uint32_t)0x0000FFFF)
/******************************************************************************/
/* Power Control */
/******************************************************************************/
/******************** Bit definition for PWR_CTLR register ********************/
#define PWR_CTLR_LPDS ((uint16_t)0x0001) /* Low-Power Deepsleep */
#define PWR_CTLR_PVDE ((uint16_t)0x0010) /* Power Voltage Detector Enable */
#define PWR_CTLR_PLS ((uint16_t)0x00E0) /* PLS[2:0] bits (PVD Level Selection) */
#define PWR_CTLR_PLS_0 ((uint16_t)0x0020) /* Bit 0 */
#define PWR_CTLR_PLS_1 ((uint16_t)0x0040) /* Bit 1 */
#define PWR_CTLR_PLS_2 ((uint16_t)0x0080) /* Bit 2 */
#define PWR_CTLR_PLS_MODE0 ((uint16_t)0x0000)
#define PWR_CTLR_PLS_MODE1 ((uint16_t)0x0020)
#define PWR_CTLR_PLS_MODE2 ((uint16_t)0x0040)
#define PWR_CTLR_PLS_MODE3 ((uint16_t)0x0060)
#define PWR_CTLR_PLS_MODE4 ((uint16_t)0x0080)
#define PWR_CTLR_PLS_MODE5 ((uint16_t)0x00A0)
#define PWR_CTLR_PLS_MODE6 ((uint16_t)0x00C0)
#define PWR_CTLR_PLS_MODE7 ((uint16_t)0x00E0)
#define PWR_CTLR_DBP ((uint16_t)0x0100) /* Disable Backup Domain write protection */
#define PWR_CTLR_VIO_SWCR ((uint16_t)0x0200)
#define PWR_CTLR_VSEL_VIO18 ((uint16_t)0x1C00)
#define PWR_CTLR_VSEL_VIO18_0 ((uint16_t)0x0400)
#define PWR_CTLR_VSEL_VIO18_1 ((uint16_t)0x0800)
#define PWR_CTLR_VSEL_VIO18_2 ((uint16_t)0x1000)
#define PWR_CTLR_VSEL_VIO18_MODE0 ((uint16_t)0x0000)
#define PWR_CTLR_VSEL_VIO18_MODE1 ((uint16_t)0x0400)
#define PWR_CTLR_VSEL_VIO18_MODE2 ((uint16_t)0x0800)
#define PWR_CTLR_VSEL_VIO18_MODE3 ((uint16_t)0x0C00)
#define PWR_CTLR_VSEL_VIO18_MODE4 ((uint16_t)0x1000)
#define PWR_CTLR_VSEL_VIO18_MODE5 ((uint16_t)0x1400)
#define PWR_CTLR_VSEL_VIO18_MODE6 ((uint16_t)0x1800)
#define PWR_CTLR_VSEL_VIO18_MODE7 ((uint16_t)0x1C00)
/******************* Bit definition for PWR_CSR register ********************/
#define PWR_CSR_PVDO ((uint16_t)0x0001)
#define PWR_CSR_VIO18_SR ((uint16_t)0x0300)
#define PWR_CSR_VIO18_SR_0 ((uint16_t)0x0100)
#define PWR_CSR_VIO18_SR_1 ((uint16_t)0x0200)
/******************************************************************************/
/* Reset and Clock Control */
/******************************************************************************/
/******************** Bit definition for RCC_CTLR register ********************/
#define RCC_HSION ((uint32_t)0x00000001) /* Internal High Speed clock enable */
#define RCC_HSIRDY ((uint32_t)0x00000002) /* Internal High Speed clock ready flag */
#define RCC_HSITRIM ((uint32_t)0x000000F8) /* Internal High Speed clock trimming */
#define RCC_HSICAL ((uint32_t)0x0000FF00) /* Internal High Speed clock Calibration */
#define RCC_HSEON ((uint32_t)0x00010000) /* External High Speed clock enable */
#define RCC_HSERDY ((uint32_t)0x00020000) /* External High Speed clock ready flag */
#define RCC_HSEBYP ((uint32_t)0x00040000) /* External High Speed clock Bypass */
#define RCC_CSSON ((uint32_t)0x00080000) /* Clock Security System enable */
#define RCC_USBHS_PLLON ((uint32_t)0x00100000)
#define RCC_USBHS_PLLRDY ((uint32_t)0x00200000)
#define RCC_USBSS_PLLON ((uint32_t)0x00400000)
#define RCC_USBSS_PLLRDY ((uint32_t)0x00800000)
#define RCC_PLLON ((uint32_t)0x01000000) /* PLL enable */
#define RCC_PLLRDY ((uint32_t)0x02000000) /* PLL clock ready flag */
#define RCC_ETH_PLLON ((uint32_t)0x04000000)
#define RCC_ETH_PLLRDY ((uint32_t)0x08000000)
#define RCC_SERDES_PLLON ((uint32_t)0x10000000)
#define RCC_SERDES_PLLRDY ((uint32_t)0x20000000)
#define RCC_CSS_HSE_DIS ((uint32_t)0x80000000)
/******************* Bit definition for RCC_CFGR0 register *******************/
#define RCC_SW ((uint32_t)0x00000003) /* SW[1:0] bits (System clock Switch) */
#define RCC_SW_0 ((uint32_t)0x00000001) /* Bit 0 */
#define RCC_SW_1 ((uint32_t)0x00000002) /* Bit 1 */
#define RCC_SW_HSI ((uint32_t)0x00000000) /* HSI selected as system clock */
#define RCC_SW_HSE ((uint32_t)0x00000001) /* HSE selected as system clock */
#define RCC_SW_PLL ((uint32_t)0x00000002) /* PLL selected as system clock */
#define RCC_SWS ((uint32_t)0x0000000C) /* SWS[1:0] bits (System Clock Switch Status) */
#define RCC_SWS_0 ((uint32_t)0x00000004) /* Bit 0 */
#define RCC_SWS_1 ((uint32_t)0x00000008) /* Bit 1 */
#define RCC_SWS_HSI ((uint32_t)0x00000000) /* HSI oscillator used as system clock */
#define RCC_SWS_HSE ((uint32_t)0x00000004) /* HSE oscillator used as system clock */
#define RCC_SWS_PLL ((uint32_t)0x00000008) /* PLL used as system clock */
#define RCC_HPRE ((uint32_t)0x000000F0) /* HPRE[3:0] bits (AHB prescaler) */
#define RCC_HPRE_0 ((uint32_t)0x00000010) /* Bit 0 */
#define RCC_HPRE_1 ((uint32_t)0x00000020) /* Bit 1 */
#define RCC_HPRE_2 ((uint32_t)0x00000040) /* Bit 2 */
#define RCC_HPRE_3 ((uint32_t)0x00000080) /* Bit 3 */
#define RCC_HPRE_DIV1 ((uint32_t)0x00000000) /* SYSCLK not divided */
#define RCC_HPRE_DIV2 ((uint32_t)0x00000080) /* SYSCLK divided by 2 */
#define RCC_HPRE_DIV4 ((uint32_t)0x00000090) /* SYSCLK divided by 4 */
#define RCC_HPRE_DIV8 ((uint32_t)0x000000A0) /* SYSCLK divided by 8 */
#define RCC_HPRE_DIV16 ((uint32_t)0x000000B0) /* SYSCLK divided by 16 */
#define RCC_HPRE_DIV64 ((uint32_t)0x000000C0) /* SYSCLK divided by 64 */
#define RCC_HPRE_DIV128 ((uint32_t)0x000000D0) /* SYSCLK divided by 128 */
#define RCC_HPRE_DIV256 ((uint32_t)0x000000E0) /* SYSCLK divided by 256 */
#define RCC_HPRE_DIV512 ((uint32_t)0x000000F0) /* SYSCLK divided by 512 */
#define RCC_PPRE1 ((uint32_t)0x00000700) /* PRE1[2:0] bits (APB1 prescaler) */
#define RCC_PPRE1_0 ((uint32_t)0x00000100) /* Bit 0 */
#define RCC_PPRE1_1 ((uint32_t)0x00000200) /* Bit 1 */
#define RCC_PPRE1_2 ((uint32_t)0x00000400) /* Bit 2 */
#define RCC_PPRE1_DIV1 ((uint32_t)0x00000000) /* HCLK not divided */
#define RCC_PPRE1_DIV2 ((uint32_t)0x00000500) /* HCLK divided by 2 */
#define RCC_PPRE1_DIV4 ((uint32_t)0x00000600) /* HCLK divided by 4 */
#define RCC_PPRE1_DIV8 ((uint32_t)0x00000700) /* HCLK divided by 8 */
#define RCC_PPRE2 ((uint32_t)0x00003800) /* PRE2[2:0] bits (APB2 prescaler) */
#define RCC_PPRE2_0 ((uint32_t)0x00000800) /* Bit 0 */
#define RCC_PPRE2_1 ((uint32_t)0x00001000) /* Bit 1 */
#define RCC_PPRE2_2 ((uint32_t)0x00002000) /* Bit 2 */
#define RCC_PPRE2_TIM_DIV1 ((uint32_t)0x00000000) /* HCLK divided by 1 for TIM1,8,9,10*/
#define RCC_PPRE2_TIM_DIV2 ((uint32_t)0x00002800) /* HCLK divided by 2 for TIM1,8,9,10*/
#define RCC_PPRE2_TIM_DIV4 ((uint32_t)0x00003000) /* HCLK divided by 4 for TIM1,8,9,10*/
#define RCC_PPRE2_TIM_DIV8 ((uint32_t)0x00003800) /* HCLK divided by 8 for TIM1,8,9,10*/
#define RCC_PPRE2_ADCL_DIV1 ((uint32_t)0x00000000) /* HCLK divided by 1 for ADC*/
#define RCC_PPRE2_ADCL_DIV2 ((uint32_t)0x00002000) /* HCLK divided by 2 for ADC*/
#define RCC_PPRE2_ADCL_DIV4 ((uint32_t)0x00002800) /* HCLK divided by 4 for ADC*/
#define RCC_PPRE2_ADCL_DIV8 ((uint32_t)0x00003000) /* HCLK divided by 8 for ADC*/
#define RCC_PPRE2_ADCL_DIV16 ((uint32_t)0x00003800) /* HCLK divided by 16 for ADC*/
#define RCC_ADCPRE ((uint32_t)0x0000C000) /* ADCPRE[1:0] bits (ADC prescaler) */
#define RCC_ADCPRE_0 ((uint32_t)0x00004000) /* Bit 0 */
#define RCC_ADCPRE_1 ((uint32_t)0x00008000) /* Bit 1 */
#define RCC_ADCPRE_ADCH_DIV2 ((uint32_t)0x00000000) /* HCLK divided by 2 for ADC*/
#define RCC_ADCPRE_ADCH_DIV4 ((uint32_t)0x00001000) /* HCLK divided by 4 for ADC*/
#define RCC_ADCPRE_ADCH_DIV6 ((uint32_t)0x00002000) /* HCLK divided by 6 for ADC*/
#define RCC_ADCPRE_ADCH_DIV8 ((uint32_t)0x00003000) /* HCLK divided by 8 for ADC*/
#define RCC_ADCPRE_DIV5 ((uint32_t)0x00000000) /* USBHS PLL divided by 5 for ADC */
#define RCC_ADCPRE_DIV6 ((uint32_t)0x00000800) /* USBHS PLL divided by 6 for ADC */
#define RCC_ADCPRE_DIV7 ((uint32_t)0x00001000) /* USBHS PLL divided by 7 for ADC */
#define RCC_ADCPRE_DIV8 ((uint32_t)0x00001800) /* USBHS PLL divided by 8 for ADC */
#define RCC_ADCPRE_DIV9 ((uint32_t)0x00002000) /* USBHS PLL divided by 9 for ADC */
#define RCC_ADCPRE_DIV10 ((uint32_t)0x00002800) /* USBHS PLL divided by 10 for ADC */
#define RCC_ADCPRE_DIV11 ((uint32_t)0x00003000) /* USBHS PLL divided by 11 for ADC */
#define RCC_ADCPRE_DIV12 ((uint32_t)0x00003800) /* USBHS PLL divided by 12 for ADC */
#define RCC_ADCPRE_DIV13 ((uint32_t)0x00004000) /* USBHS PLL divided by 13 for ADC */
#define RCC_ADCPRE_DIV14 ((uint32_t)0x00004800) /* USBHS PLL divided by 14 for ADC */
#define RCC_ADCPRE_DIV15 ((uint32_t)0x00005000) /* USBHS PLL divided by 15 for ADC */
#define RCC_ADCPRE_DIV16 ((uint32_t)0x00005800) /* USBHS PLL divided by 16 for ADC */
#define RCC_ADCPRE_DIV17 ((uint32_t)0x00006000) /* USBHS PLL divided by 17 for ADC */
#define RCC_ADCPRE_DIV18 ((uint32_t)0x00006800) /* USBHS PLL divided by 18 for ADC */
#define RCC_ADCPRE_DIV19 ((uint32_t)0x00007000) /* USBHS PLL divided by 19 for ADC */
#define RCC_ADCPRE_DIV20 ((uint32_t)0x00007800) /* USBHS PLL divided by 20 for ADC */
#define RCC_ADCPRE_DIV21 ((uint32_t)0x00008000) /* USBHS PLL divided by 21 for ADC */
#define RCC_ADCPRE_DIV22 ((uint32_t)0x00008800) /* USBHS PLL divided by 22 for ADC */
#define RCC_ADCPRE_DIV23 ((uint32_t)0x00009000) /* USBHS PLL divided by 23 for ADC */
#define RCC_ADCPRE_DIV24 ((uint32_t)0x00009800) /* USBHS PLL divided by 24 for ADC */
#define RCC_ADCPRE_DIV25 ((uint32_t)0x0000A000) /* USBHS PLL divided by 25 for ADC */
#define RCC_ADCPRE_DIV26 ((uint32_t)0x0000A800) /* USBHS PLL divided by 26 for ADC */
#define RCC_ADCPRE_DIV27 ((uint32_t)0x0000B000) /* USBHS PLL divided by 27 for ADC */
#define RCC_ADCPRE_DIV28 ((uint32_t)0x0000B800) /* USBHS PLL divided by 28 for ADC */
#define RCC_ADCPRE_DIV29 ((uint32_t)0x0000C000) /* USBHS PLL divided by 29 for ADC */
#define RCC_ADCPRE_DIV30 ((uint32_t)0x0000C800) /* USBHS PLL divided by 30 for ADC */
#define RCC_ADCPRE_DIV31 ((uint32_t)0x0000D000) /* USBHS PLL divided by 31 for ADC */
#define RCC_ADCPRE_DIV32 ((uint32_t)0x0000D800) /* USBHS PLL divided by 32 for ADC */
#define RCC_ADCPRE_DIV33 ((uint32_t)0x0000E000) /* USBHS PLL divided by 33 for ADC */
#define RCC_ADCPRE_DIV34 ((uint32_t)0x0000E800) /* USBHS PLL divided by 34 for ADC */
#define RCC_ADCPRE_DIV35 ((uint32_t)0x0000F000) /* USBHS PLL divided by 35 for ADC */
#define RCC_ADCPRE_DIV36 ((uint32_t)0x0000F800) /* USBHS PLL divided by 36 for ADC */
#define RCC_FPRE ((uint32_t)0x00030000)
#define RCC_FPRE_0 ((uint32_t)0x00010000)
#define RCC_FPRE_1 ((uint32_t)0x00020000)
#define RCC_FPRE_DIV1 ((uint32_t)0x00000000)
#define RCC_FPRE_DIV2 ((uint32_t)0x00010000)
#define RCC_FPRE_DIV4 ((uint32_t)0x00020000)
#define RCC_RGMIION ((uint32_t)0x00200000)
#define RCC_PIPEON ((uint32_t)0x00400000)
#define RCC_UTMION ((uint32_t)0x00800000)
#define RCC_CFGR0_MCO ((uint32_t)0x0F000000)
#define RCC_MCO_0 ((uint32_t)0x01000000)
#define RCC_MCO_1 ((uint32_t)0x02000000)
#define RCC_MCO_2 ((uint32_t)0x04000000)
#define RCC_MCO_3 ((uint32_t)0x08000000)
#define RCC_CFGR0_MCO_NOCLOCK ((uint32_t)0x00000000)
#define RCC_CFGR0_MCO_SYSCLK ((uint32_t)0x04000000)
#define RCC_CFGR0_MCO_HSI ((uint32_t)0x05000000)
#define RCC_CFGR0_MCO_HSE ((uint32_t)0x06000000)
#define RCC_CFGR0_MCO_PLL_DIV2 ((uint32_t)0x07000000)
#define RCC_CFGR0_MCO_UTMI ((uint32_t)0x08000000)
#define RCC_CFGR0_MCO_USBSS_PLL_DIV2 ((uint32_t)0x09000000)
#define RCC_CFGR0_MCO_ETH_PLL_DIV8 ((uint32_t)0x0A000000)
#define RCC_CFGR0_MCO_SERDES_DIV16 ((uint32_t)0x0B000000)
#define RCC_ADC_DUTY_SEL ((uint32_t)0x40000000)
#define RCC_ADCSRC ((uint32_t)0x80000000)
/******************* Bit definition for RCC_PLLCFGR register *******************/
#define RCC_PLLMUL ((uint32_t)0x0000001F)
#define RCC_PLLMUL_0 ((uint32_t)0x00000001)
#define RCC_PLLMUL_1 ((uint32_t)0x00000002)
#define RCC_PLLMUL_2 ((uint32_t)0x00000004)
#define RCC_PLLMUL_3 ((uint32_t)0x00000008)
#define RCC_PLLMUL_4 ((uint32_t)0x00000010)
#define RCC_PLLMUL4 ((uint32_t)0x00000000)
#define RCC_PLLMUL6 ((uint32_t)0x00000001)
#define RCC_PLLMUL7 ((uint32_t)0x00000002)
#define RCC_PLLMUL8 ((uint32_t)0x00000003)
#define RCC_PLLMUL8_5 ((uint32_t)0x00000004)
#define RCC_PLLMUL9 ((uint32_t)0x00000005)
#define RCC_PLLMUL9_5 ((uint32_t)0x00000006)
#define RCC_PLLMUL10 ((uint32_t)0x00000007)
#define RCC_PLLMUL10_5 ((uint32_t)0x00000008)
#define RCC_PLLMUL11 ((uint32_t)0x00000009)
#define RCC_PLLMUL11_5 ((uint32_t)0x0000000A)
#define RCC_PLLMUL12 ((uint32_t)0x0000000B)
#define RCC_PLLMUL12_5 ((uint32_t)0x0000000C)
#define RCC_PLLMUL13 ((uint32_t)0x0000000D)
#define RCC_PLLMUL14 ((uint32_t)0x0000000E)
#define RCC_PLLMUL15 ((uint32_t)0x0000000F)
#define RCC_PLLMUL16 ((uint32_t)0x00000010)
#define RCC_PLLMUL17 ((uint32_t)0x00000011)
#define RCC_PLLMUL18 ((uint32_t)0x00000012)
#define RCC_PLLMUL19 ((uint32_t)0x00000013)
#define RCC_PLLMUL20 ((uint32_t)0x00000014)
#define RCC_PLLMUL22 ((uint32_t)0x00000015)
#define RCC_PLLMUL24 ((uint32_t)0x00000016)
#define RCC_PLLMUL26 ((uint32_t)0x00000017)
#define RCC_PLLMUL28 ((uint32_t)0x00000018)
#define RCC_PLLMUL30 ((uint32_t)0x00000019)
#define RCC_PLLMUL32 ((uint32_t)0x0000001A)
#define RCC_PLLMUL34 ((uint32_t)0x0000001B)
#define RCC_PLLMUL36 ((uint32_t)0x0000001C)
#define RCC_PLLMUL38 ((uint32_t)0x0000001D)
#define RCC_PLLMUL40 ((uint32_t)0x0000001E)
#define RCC_PLLMUL59 ((uint32_t)0x0000001F)
#define RCC_PLLSRC ((uint32_t)0x000000E0)
#define RCC_PLLSRC_0 ((uint32_t)0x00000020)
#define RCC_PLLSRC_2 ((uint32_t)0x00000040)
#define RCC_PLLSRC_4 ((uint32_t)0x00000080)
#define RCC_PLLSRC_HSI ((uint32_t)0x00000000)
#define RCC_PLLSRC_HSE ((uint32_t)0x00000020)
#define RCC_PLLSRC_USBHS_PLL ((uint32_t)0x00000080)
#define RCC_PLLSRC_ETH_PLL ((uint32_t)0x000000A0)
#define RCC_PLLSRC_USBSS_PLL ((uint32_t)0x000000C0)
#define RCC_PLLSRC_SERDES_PLL ((uint32_t)0x000000E0)
#define RCC_PLL_SRC_DIV ((uint32_t)0x00003F00)
#define RCC_PLL_SRC_DIV_0 ((uint32_t)0x00000100)
#define RCC_PLL_SRC_DIV_1 ((uint32_t)0x00000200)
#define RCC_PLL_SRC_DIV_2 ((uint32_t)0x00000400)
#define RCC_PLL_SRC_DIV_3 ((uint32_t)0x00000800)
#define RCC_PLL_SRC_DIV_4 ((uint32_t)0x00001000)
#define RCC_PLL_SRC_DIV_5 ((uint32_t)0x00002000)
#define RCC_PLL_SRC_DIV1 ((uint32_t)0x00000000)
#define RCC_PLL_SRC_DIV2 ((uint32_t)0x00000100)
#define RCC_PLL_SRC_DIV3 ((uint32_t)0x00000200)
#define RCC_PLL_SRC_DIV4 ((uint32_t)0x00000300)
#define RCC_PLL_SRC_DIV5 ((uint32_t)0x00000400)
#define RCC_PLL_SRC_DIV6 ((uint32_t)0x00000500)
#define RCC_PLL_SRC_DIV7 ((uint32_t)0x00000600)
#define RCC_PLL_SRC_DIV8 ((uint32_t)0x00000700)
#define RCC_PLL_SRC_DIV9 ((uint32_t)0x00000800)
#define RCC_PLL_SRC_DIV10 ((uint32_t)0x00000900)
#define RCC_PLL_SRC_DIV11 ((uint32_t)0x00000A00)
#define RCC_PLL_SRC_DIV12 ((uint32_t)0x00000B00)
#define RCC_PLL_SRC_DIV13 ((uint32_t)0x00000C00)
#define RCC_PLL_SRC_DIV14 ((uint32_t)0x00000D00)
#define RCC_PLL_SRC_DIV15 ((uint32_t)0x00000E00)
#define RCC_PLL_SRC_DIV16 ((uint32_t)0x00000F00)
#define RCC_PLL_SRC_DIV17 ((uint32_t)0x00001000)
#define RCC_PLL_SRC_DIV18 ((uint32_t)0x00001100)
#define RCC_PLL_SRC_DIV19 ((uint32_t)0x00001200)
#define RCC_PLL_SRC_DIV20 ((uint32_t)0x00001300)
#define RCC_PLL_SRC_DIV21 ((uint32_t)0x00001400)
#define RCC_PLL_SRC_DIV22 ((uint32_t)0x00001500)
#define RCC_PLL_SRC_DIV23 ((uint32_t)0x00001600)
#define RCC_PLL_SRC_DIV24 ((uint32_t)0x00001700)
#define RCC_PLL_SRC_DIV25 ((uint32_t)0x00001800)
#define RCC_PLL_SRC_DIV26 ((uint32_t)0x00001900)
#define RCC_PLL_SRC_DIV27 ((uint32_t)0x00001A00)
#define RCC_PLL_SRC_DIV28 ((uint32_t)0x00001B00)
#define RCC_PLL_SRC_DIV29 ((uint32_t)0x00001C00)
#define RCC_PLL_SRC_DIV30 ((uint32_t)0x00001D00)
#define RCC_PLL_SRC_DIV31 ((uint32_t)0x00001E00)
#define RCC_PLL_SRC_DIV32 ((uint32_t)0x00001F00)
#define RCC_PLL_SRC_DIV33 ((uint32_t)0x00002000)
#define RCC_PLL_SRC_DIV34 ((uint32_t)0x00002100)
#define RCC_PLL_SRC_DIV35 ((uint32_t)0x00002200)
#define RCC_PLL_SRC_DIV36 ((uint32_t)0x00002300)
#define RCC_PLL_SRC_DIV37 ((uint32_t)0x00002400)
#define RCC_PLL_SRC_DIV38 ((uint32_t)0x00002500)
#define RCC_PLL_SRC_DIV39 ((uint32_t)0x00002600)
#define RCC_PLL_SRC_DIV40 ((uint32_t)0x00002700)
#define RCC_PLL_SRC_DIV41 ((uint32_t)0x00002800)
#define RCC_PLL_SRC_DIV42 ((uint32_t)0x00002900)
#define RCC_PLL_SRC_DIV43 ((uint32_t)0x00002A00)
#define RCC_PLL_SRC_DIV44 ((uint32_t)0x00002B00)
#define RCC_PLL_SRC_DIV45 ((uint32_t)0x00002C00)
#define RCC_PLL_SRC_DIV46 ((uint32_t)0x00002D00)
#define RCC_PLL_SRC_DIV47 ((uint32_t)0x00002E00)
#define RCC_PLL_SRC_DIV48 ((uint32_t)0x00002F00)
#define RCC_PLL_SRC_DIV49 ((uint32_t)0x00003000)
#define RCC_PLL_SRC_DIV50 ((uint32_t)0x00003100)
#define RCC_PLL_SRC_DIV51 ((uint32_t)0x00003200)
#define RCC_PLL_SRC_DIV52 ((uint32_t)0x00003300)
#define RCC_PLL_SRC_DIV53 ((uint32_t)0x00003400)
#define RCC_PLL_SRC_DIV54 ((uint32_t)0x00003500)
#define RCC_PLL_SRC_DIV55 ((uint32_t)0x00003600)
#define RCC_PLL_SRC_DIV56 ((uint32_t)0x00003700)
#define RCC_PLL_SRC_DIV57 ((uint32_t)0x00003800)
#define RCC_PLL_SRC_DIV58 ((uint32_t)0x00003900)
#define RCC_PLL_SRC_DIV59 ((uint32_t)0x00003A00)
#define RCC_PLL_SRC_DIV60 ((uint32_t)0x00003B00)
#define RCC_PLL_SRC_DIV61 ((uint32_t)0x00003C00)
#define RCC_PLL_SRC_DIV62 ((uint32_t)0x00003D00)
#define RCC_PLL_SRC_DIV63 ((uint32_t)0x00003E00)
#define RCC_PLL_SRC_DIV64 ((uint32_t)0x00003F00)
#define RCC_SYSPLL_SEL ((uint32_t)0x70000000)
#define RCC_SYSPLL_SEL_0 ((uint32_t)0x10000000)
#define RCC_SYSPLL_SEL_1 ((uint32_t)0x20000000)
#define RCC_SYSPLL_SEL_2 ((uint32_t)0x40000000)
#define RCC_SYSPLL_PLL ((uint32_t)0x00000000)
#define RCC_SYSPLL_USBHS ((uint32_t)0x40000000)
#define RCC_SYSPLL_ETH ((uint32_t)0x50000000)
#define RCC_SYSPLL_SERDES ((uint32_t)0x60000000)
#define RCC_SYSPLL_USBSS ((uint32_t)0x70000000)
#define RCC_SYSPLL_GATE ((uint32_t)0x80000000)
/******************* Bit definition for RCC_INTR register ********************/
#define RCC_LSIRDYF ((uint32_t)0x00000001) /* LSI Ready Interrupt flag */
#define RCC_LSERDYF ((uint32_t)0x00000002) /* LSE Ready Interrupt flag */
#define RCC_HSIRDYF ((uint32_t)0x00000004) /* HSI Ready Interrupt flag */
#define RCC_HSERDYF ((uint32_t)0x00000008) /* HSE Ready Interrupt flag */
#define RCC_PLLRDYF ((uint32_t)0x00000010) /* PLL Ready Interrupt flag */
#define RCC_ETHPLLRDYF ((uint32_t)0x00000020)
#define RCC_SERDESPLLRDYF ((uint32_t)0x00000040)
#define RCC_CSSF ((uint32_t)0x00000080) /* Clock Security System Interrupt flag */
#define RCC_LSIRDYIE ((uint32_t)0x00000100) /* LSI Ready Interrupt Enable */
#define RCC_LSERDYIE ((uint32_t)0x00000200) /* LSE Ready Interrupt Enable */
#define RCC_HSIRDYIE ((uint32_t)0x00000400) /* HSI Ready Interrupt Enable */
#define RCC_HSERDYIE ((uint32_t)0x00000800) /* HSE Ready Interrupt Enable */
#define RCC_PLLRDYIE ((uint32_t)0x00001000) /* PLL Ready Interrupt Enable */
#define RCC_ETHPLLRDYIE ((uint32_t)0x00002000)
#define RCC_SERDESPLLRDYIE ((uint32_t)0x00004000)
#define RCC_LSIRDYC ((uint32_t)0x00010000) /* LSI Ready Interrupt Clear */
#define RCC_LSERDYC ((uint32_t)0x00020000) /* LSE Ready Interrupt Clear */
#define RCC_HSIRDYC ((uint32_t)0x00040000) /* HSI Ready Interrupt Clear */
#define RCC_HSERDYC ((uint32_t)0x00080000) /* HSE Ready Interrupt Clear */
#define RCC_PLLRDYC ((uint32_t)0x00100000) /* PLL Ready Interrupt Clear */
#define RCC_ETHPLLRDYC ((uint32_t)0x00200000)
#define RCC_SERDESPLLRDYC ((uint32_t)0x00400000)
#define RCC_CSSC ((uint32_t)0x00800000) /* Clock Security System Interrupt Clear */
/***************** Bit definition for RCC_HB2PRSTR register *****************/
#define RCC_AFIORST ((uint32_t)0x00000001) /* Alternate Function I/O reset */
#define RCC_HSADCRST ((uint32_t)0x00000002)
#define RCC_IOPARST ((uint32_t)0x00000004) /* I/O port A reset */
#define RCC_IOPBRST ((uint32_t)0x00000008) /* I/O port B reset */
#define RCC_IOPCRST ((uint32_t)0x00000010) /* I/O port C reset */
#define RCC_IOPDRST ((uint32_t)0x00000020) /* I/O port D reset */
#define RCC_IOPERST ((uint32_t)0x00000040)
#define RCC_IOPFRST ((uint32_t)0x00000080)
#define RCC_ADC1RST ((uint32_t)0x00000200) /* ADC 1 interface reset */
#define RCC_ADC2RST ((uint32_t)0x00000400) /* ADC 2 interface reset */
#define RCC_TIM1RST ((uint32_t)0x00000800) /* TIM1 Timer reset */
#define RCC_SPI1RST ((uint32_t)0x00001000) /* SPI 1 reset */
#define RCC_TIM8RST ((uint32_t)0x00002000)
#define RCC_USART1RST ((uint32_t)0x00004000) /* USART1 reset */
#define RCC_I2C4RST ((uint32_t)0x00008000)
#define RCC_SAIRST ((uint32_t)0x00010000)
#define RCC_SDIORST ((uint32_t)0x00040000)
#define RCC_TIM9RST ((uint32_t)0x00080000)
#define RCC_TIM10RST ((uint32_t)0x00100000)
#define RCC_TIM11RST ((uint32_t)0x00200000)
#define RCC_TIM12RST ((uint32_t)0x00400000)
#define RCC_OPCMRST ((uint32_t)0x00800000)
#define RCC_DFSDMRST ((uint32_t)0x02000000)
#define RCC_ECDCRST ((uint32_t)0x04000000)
#define RCC_GPHARST ((uint32_t)0x08000000)
#define RCC_LTDCRST ((uint32_t)0x40000000)
#define RCC_I3CRST ((uint32_t)0x80000000)
/***************** Bit definition for RCC_HB1PRSTR register *****************/
#define RCC_TIM2RST ((uint32_t)0x00000001) /* Timer 2 reset */
#define RCC_TIM3RST ((uint32_t)0x00000002) /* Timer 3 reset */
#define RCC_TIM4RST ((uint32_t)0x00000004) /* Timer 4 reset */
#define RCC_TIM5RST ((uint32_t)0x00000008) /* Timer 5 reset */
#define RCC_TIM6RST ((uint32_t)0x00000010) /* Timer 6 reset */
#define RCC_TIM7RST ((uint32_t)0x00000020) /* Timer 7 reset */
#define RCC_USART6RST ((uint32_t)0x00000040) /* USART 2 reset */
#define RCC_USART7RST ((uint32_t)0x00000080) /* USART 2 reset */
#define RCC_USART8RST ((uint32_t)0x00000100) /* USART 2 reset */
#define RCC_LPTIM1RST ((uint32_t)0x00000200)
#define RCC_LPTIM2RST ((uint32_t)0x00000400)
#define RCC_WWDGRST ((uint32_t)0x00000800) /* Window Watchdog reset */
#define RCC_QSPI1RST ((uint32_t)0x00001000)
#define RCC_QSPI2RST ((uint32_t)0x00002000)
#define RCC_SPI2RST ((uint32_t)0x00004000) /* SPI 2 reset */
#define RCC_SPI3RST ((uint32_t)0x00008000) /* SPI 3 reset */
#define RCC_SPI4RST ((uint32_t)0x00010000)
#define RCC_USART2RST ((uint32_t)0x00020000) /* USART 2 reset */
#define RCC_USART3RST ((uint32_t)0x00040000) /* USART 3 reset */
#define RCC_USART4RST ((uint32_t)0x00080000) /* USART 4 reset */
#define RCC_USART5RST ((uint32_t)0x00100000) /* USART 5 reset */
#define RCC_I2C1RST ((uint32_t)0x00200000) /* I2C 1 reset */
#define RCC_I2C2RST ((uint32_t)0x00400000) /* I2C 2 reset */
#define RCC_CAN3RST ((uint32_t)0x01000000)
#define RCC_CAN1RST ((uint32_t)0x02000000) /* CAN1 reset */
#define RCC_CAN2RST ((uint32_t)0x04000000) /* CAN2 reset */
#define RCC_BKPRST ((uint32_t)0x08000000) /* Backup interface reset */
#define RCC_PWRRST ((uint32_t)0x10000000) /* Power interface reset */
#define RCC_DACRST ((uint32_t)0x20000000) /* DAC reset */
#define RCC_I2C3RST ((uint32_t)0x40000000)
#define RCC_SWPMIRST ((uint32_t)0x80000000)
/****************** Bit definition for RCC_HBPCENR register ******************/
#define RCC_DMA1EN ((uint16_t)0x0001) /* DMA1 clock enable */
#define RCC_DMA2EN ((uint16_t)0x0002)
#define RCC_CRCEN ((uint16_t)0x0040) /* CRC clock enable */
#define RCC_FMCEN ((uint16_t)0x0100)
#define RCC_RNGEN ((uint16_t)0x0200)
#define RCC_SDMMCEN ((uint16_t)0x0400)
#define RCC_USBHSEN ((uint16_t)0x0800)
#define RCC_USBSSEN ((uint16_t)0x1000)
#define RCC_DVPEN ((uint16_t)0x2000)
#define RCC_ETHEN ((uint16_t)0x4000)
#define RCC_USBOTGEN ((uint32_t)0x00020000)
#define RCC_UHSIFEN ((uint32_t)0x00040000)
#define RCC_USBPDEN ((uint32_t)0x00080000)
#define RCC_SERDESEN ((uint32_t)0x00100000)
#define RCC_PIOCEN ((uint32_t)0x00400000)
/****************** Bit definition for RCC_HB2PCENR register *****************/
#define RCC_AFIOEN ((uint32_t)0x00000001) /* Alternate Function I/O clock enable */
#define RCC_HSADCEN ((uint32_t)0x00000002)
#define RCC_IOPAEN ((uint32_t)0x00000004) /* I/O port A clock enable */
#define RCC_IOPBEN ((uint32_t)0x00000008) /* I/O port B clock enable */
#define RCC_IOPCEN ((uint32_t)0x00000010) /* I/O port C clock enable */
#define RCC_IOPDEN ((uint32_t)0x00000020) /* I/O port D clock enable */
#define RCC_IOPEEN ((uint32_t)0x00000040)
#define RCC_IOPFEN ((uint32_t)0x00000080)
#define RCC_ADC1EN ((uint32_t)0x00000200) /* ADC 1 interface clock enable */
#define RCC_ADC2EN ((uint32_t)0x00000400) /* ADC 2 interface clock enable */
#define RCC_TIM1EN ((uint32_t)0x00000800) /* TIM1 Timer clock enable */
#define RCC_SPI1EN ((uint32_t)0x00001000) /* SPI 1 clock enable */
#define RCC_TIM8EN ((uint32_t)0x00002000)
#define RCC_USART1EN ((uint32_t)0x00004000) /* USART1 clock enable */
#define RCC_I2C4EN ((uint32_t)0x00008000)
#define RCC_SAIEN ((uint32_t)0x00010000)
#define RCC_SDIOEN ((uint32_t)0x00040000)
#define RCC_TIM9EN ((uint32_t)0x00080000)
#define RCC_TIM10EN ((uint32_t)0x00100000)
#define RCC_TIM11EN ((uint32_t)0x00200000)
#define RCC_TIM12EN ((uint32_t)0x00400000)
#define RCC_OPCMEN ((uint32_t)0x00800000)
#define RCC_DFSDMEN ((uint32_t)0x02000000)
#define RCC_ECDCEN ((uint32_t)0x04000000)
#define RCC_GPHAEN ((uint32_t)0x08000000)
#define RCC_LTDCEN ((uint32_t)0x40000000)
#define RCC_I3CEN ((uint32_t)0x80000000)
/***************** Bit definition for RCC_HB1PCENR register ******************/
#define RCC_TIM2EN ((uint32_t)0x00000001) /* Timer 2 clock enabled*/
#define RCC_TIM3EN ((uint32_t)0x00000002) /* Timer 3 clock enable */
#define RCC_TIM4EN ((uint32_t)0x00000004)
#define RCC_TIM5EN ((uint32_t)0x00000008)
#define RCC_TIM6EN ((uint32_t)0x00000010)
#define RCC_TIM7EN ((uint32_t)0x00000020)
#define RCC_USART6EN ((uint32_t)0x00000040)
#define RCC_USART7EN ((uint32_t)0x00000080)
#define RCC_USART8EN ((uint32_t)0x00000100)
#define RCC_LPTIM1EN ((uint32_t)0x00000200)
#define RCC_LPTIM2EN ((uint32_t)0x00000400)
#define RCC_WWDGEN ((uint32_t)0x00000800) /* Window Watchdog clock enable */
#define RCC_QSPI1EN ((uint32_t)0x00001000)
#define RCC_QSPI2EN ((uint32_t)0x00002000)
#define RCC_SPI2EN ((uint32_t)0x00004000)
#define RCC_SPI3EN ((uint32_t)0x00008000)
#define RCC_SPI4EN ((uint32_t)0x00010000)
#define RCC_USART2EN ((uint32_t)0x00020000) /* USART 2 clock enable */
#define RCC_USART3EN ((uint32_t)0x00040000)
#define RCC_USART4EN ((uint32_t)0x00080000)
#define RCC_USART5EN ((uint32_t)0x00100000)
#define RCC_I2C1EN ((uint32_t)0x00200000) /* I2C 1 clock enable */
#define RCC_I2C2EN ((uint32_t)0x00400000)
#define RCC_CAN3EN ((uint32_t)0x01000000) /* USB Device clock enable */
#define RCC_CAN1EN ((uint32_t)0x02000000)
#define RCC_CAN2EN ((uint32_t)0x04000000)
#define RCC_BKPEN ((uint32_t)0x08000000) /* Backup interface clock enable */
#define RCC_PWREN ((uint32_t)0x10000000) /* Power interface clock enable */
#define RCC_DACEN ((uint32_t)0x20000000)
#define RCC_I2C3EN ((uint32_t)0x40000000)
#define RCC_SWPMIEN ((uint32_t)0x80000000)
/******************* Bit definition for RCC_BDCTLR register *******************/
#define RCC_LSEON ((uint32_t)0x00000001) /* External Low Speed oscillator enable */
#define RCC_LSERDY ((uint32_t)0x00000002) /* External Low Speed oscillator Ready */
#define RCC_LSEBYP ((uint32_t)0x00000004) /* External Low Speed oscillator Bypass */
#define RCC_CCO ((uint32_t)0x00000008)
#define RCC_ASOE ((uint32_t)0x00000010)
#define RCC_ASOS ((uint32_t)0x00000020)
#define RCC_RTCSEL ((uint32_t)0x000000C0) /* RTCSEL[1:0] bits (RTC clock source selection) */
#define RCC_RTCSEL_0 ((uint32_t)0x00000040) /* Bit 0 */
#define RCC_RTCSEL_1 ((uint32_t)0x00000080) /* Bit 1 */
#define RCC_RTCSEL_NOCLOCK ((uint32_t)0x00000000) /* No clock */
#define RCC_RTCSEL_LSE ((uint32_t)0x00000040) /* LSE oscillator clock used as RTC clock */
#define RCC_RTCSEL_LSI ((uint32_t)0x00000080) /* LSI oscillator clock used as RTC clock */
#define RCC_RTCSEL_HSE ((uint32_t)0x000000C0)
#define RCC_RTCEN ((uint32_t)0x00000100) /* RTC clock enable */
#define RCC_RTCCAL ((uint32_t)0x0000FE00)
#define RCC_BDRST ((uint32_t)0x00010000) /* Backup domain software reset */
/******************* Bit definition for RCC_RSTSCKR register ********************/
#define RCC_LSION ((uint32_t)0x00000001) /* Internal Low Speed oscillator enable */
#define RCC_LSIRDY ((uint32_t)0x00000002) /* Internal Low Speed oscillator Ready */
#define RCC_RMVF ((uint32_t)0x01000000) /* Remove reset flag */
#define RCC_PINRSTF ((uint32_t)0x04000000) /* PIN reset flag */
#define RCC_PORRSTF ((uint32_t)0x08000000) /* POR/PDR reset flag */
#define RCC_SFTRSTF ((uint32_t)0x10000000) /* Software Reset flag */
#define RCC_IWDGRSTF ((uint32_t)0x20000000) /* Independent Watchdog reset flag */
#define RCC_WWDGRSTF ((uint32_t)0x40000000) /* Window watchdog reset flag */
#define RCC_LOCKUPRSTF ((uint32_t)0x80000000) /* Low-Power reset flag */
/******************* Bit definition for RCC_HBRSTR register ********************/
#define RCC_DMA1RST ((uint32_t)0x00000001)
#define RCC_DMA2RST ((uint32_t)0x00000002)
#define RCC_FMCRST ((uint32_t)0x00000100)
#define RCC_RNGRST ((uint32_t)0x00000200)
#define RCC_SDMMCRST ((uint32_t)0x00000400)
#define RCC_USBHSRST ((uint32_t)0x00000800)
#define RCC_USBSSRST ((uint32_t)0x00001000)
#define RCC_DVPRST ((uint32_t)0x00002000)
#define RCC_ETHRST ((uint32_t)0x00004000)
#define RCC_USBOTGRST ((uint32_t)0x00020000)
#define RCC_UHSIFRST ((uint32_t)0x00040000)
#define RCC_USBPDRST ((uint32_t)0x00080000)
#define RCC_SERDESRST ((uint32_t)0x00100000)
#define RCC_PIOCRST ((uint32_t)0x00400000)
/******************* Bit definition for RCC_CFGR2 register ********************/
#define RCC_UHSIFDIV ((uint32_t)0x0000003F)
#define RCC_UHSIFDIV_0 ((uint32_t)0x00000001)
#define RCC_UHSIFDIV_1 ((uint32_t)0x00000002)
#define RCC_UHSIFDIV_2 ((uint32_t)0x00000004)
#define RCC_UHSIFDIV_3 ((uint32_t)0x00000008)
#define RCC_UHSIFDIV_4 ((uint32_t)0x00000010)
#define RCC_UHSIFDIV_5 ((uint32_t)0x00000020)
#define RCC_UHSIFDIV_DIV1 ((uint32_t)0x00000000)
#define RCC_UHSIFDIV_DIV2 ((uint32_t)0x00000001)
#define RCC_UHSIFDIV_DIV3 ((uint32_t)0x00000002)
#define RCC_UHSIFDIV_DIV4 ((uint32_t)0x00000003)
#define RCC_UHSIFDIV_DIV5 ((uint32_t)0x00000004)
#define RCC_UHSIFDIV_DIV6 ((uint32_t)0x00000005)
#define RCC_UHSIFDIV_DIV7 ((uint32_t)0x00000006)
#define RCC_UHSIFDIV_DIV8 ((uint32_t)0x00000007)
#define RCC_UHSIFDIV_DIV9 ((uint32_t)0x00000008)
#define RCC_UHSIFDIV_DIV10 ((uint32_t)0x00000009)
#define RCC_UHSIFDIV_DIV11 ((uint32_t)0x0000000A)
#define RCC_UHSIFDIV_DIV12 ((uint32_t)0x0000000B)
#define RCC_UHSIFDIV_DIV13 ((uint32_t)0x0000000C)
#define RCC_UHSIFDIV_DIV14 ((uint32_t)0x0000000D)
#define RCC_UHSIFDIV_DIV15 ((uint32_t)0x0000000E)
#define RCC_UHSIFDIV_DIV16 ((uint32_t)0x0000000F)
#define RCC_UHSIFDIV_DIV17 ((uint32_t)0x00000010)
#define RCC_UHSIFDIV_DIV18 ((uint32_t)0x00000011)
#define RCC_UHSIFDIV_DIV19 ((uint32_t)0x00000012)
#define RCC_UHSIFDIV_DIV20 ((uint32_t)0x00000013)
#define RCC_UHSIFDIV_DIV21 ((uint32_t)0x00000014)
#define RCC_UHSIFDIV_DIV22 ((uint32_t)0x00000015)
#define RCC_UHSIFDIV_DIV23 ((uint32_t)0x00000016)
#define RCC_UHSIFDIV_DIV24 ((uint32_t)0x00000017)
#define RCC_UHSIFDIV_DIV25 ((uint32_t)0x00000018)
#define RCC_UHSIFDIV_DIV26 ((uint32_t)0x00000019)
#define RCC_UHSIFDIV_DIV27 ((uint32_t)0x0000001A)
#define RCC_UHSIFDIV_DIV28 ((uint32_t)0x0000001B)
#define RCC_UHSIFDIV_DIV29 ((uint32_t)0x0000001C)
#define RCC_UHSIFDIV_DIV30 ((uint32_t)0x0000001D)
#define RCC_UHSIFDIV_DIV31 ((uint32_t)0x0000001E)
#define RCC_UHSIFDIV_DIV32 ((uint32_t)0x0000001F)
#define RCC_UHSIFDIV_DIV33 ((uint32_t)0x00000020)
#define RCC_UHSIFDIV_DIV34 ((uint32_t)0x00000021)
#define RCC_UHSIFDIV_DIV35 ((uint32_t)0x00000022)
#define RCC_UHSIFDIV_DIV36 ((uint32_t)0x00000023)
#define RCC_UHSIFDIV_DIV37 ((uint32_t)0x00000024)
#define RCC_UHSIFDIV_DIV38 ((uint32_t)0x00000025)
#define RCC_UHSIFDIV_DIV39 ((uint32_t)0x00000026)
#define RCC_UHSIFDIV_DIV40 ((uint32_t)0x00000027)
#define RCC_UHSIFDIV_DIV41 ((uint32_t)0x00000028)
#define RCC_UHSIFDIV_DIV42 ((uint32_t)0x00000029)
#define RCC_UHSIFDIV_DIV43 ((uint32_t)0x0000002A)
#define RCC_UHSIFDIV_DIV44 ((uint32_t)0x0000002B)
#define RCC_UHSIFDIV_DIV45 ((uint32_t)0x0000002C)
#define RCC_UHSIFDIV_DIV46 ((uint32_t)0x0000002D)
#define RCC_UHSIFDIV_DIV47 ((uint32_t)0x0000002E)
#define RCC_UHSIFDIV_DIV48 ((uint32_t)0x0000002F)
#define RCC_UHSIFDIV_DIV49 ((uint32_t)0x00000030)
#define RCC_UHSIFDIV_DIV50 ((uint32_t)0x00000031)
#define RCC_UHSIFDIV_DIV51 ((uint32_t)0x00000032)
#define RCC_UHSIFDIV_DIV52 ((uint32_t)0x00000033)
#define RCC_UHSIFDIV_DIV53 ((uint32_t)0x00000034)
#define RCC_UHSIFDIV_DIV54 ((uint32_t)0x00000035)
#define RCC_UHSIFDIV_DIV55 ((uint32_t)0x00000036)
#define RCC_UHSIFDIV_DIV56 ((uint32_t)0x00000037)
#define RCC_UHSIFDIV_DIV57 ((uint32_t)0x00000038)
#define RCC_UHSIFDIV_DIV58 ((uint32_t)0x00000039)
#define RCC_UHSIFDIV_DIV59 ((uint32_t)0x0000003A)
#define RCC_UHSIFDIV_DIV60 ((uint32_t)0x0000003B)
#define RCC_UHSIFDIV_DIV61 ((uint32_t)0x0000003C)
#define RCC_UHSIFDIV_DIV62 ((uint32_t)0x0000003D)
#define RCC_UHSIFDIV_DIV63 ((uint32_t)0x0000003E)
#define RCC_UHSIFDIV_DIV64 ((uint32_t)0x0000003F)
#define RCC_UHSIFSRC ((uint32_t)0x000000C0)
#define RCC_UHSIFSRC_0 ((uint32_t)0x00000040)
#define RCC_UHSIFSRC_1 ((uint32_t)0x00000080)
#define RCC_UHSIFSRC_SYSCLK ((uint32_t)0x00000000)
#define RCC_UHSIFSRC_PLLCLK ((uint32_t)0x00000040)
#define RCC_UHSIFSRC_USBHSPLL ((uint32_t)0x00000080)
#define RCC_UHSIFSRC_ETHPLL ((uint32_t)0x000000C0)
#define RCC_LTDCDIV ((uint32_t)0x00003F00)
#define RCC_LTDCDIV_0 ((uint32_t)0x00000100)
#define RCC_LTDCDIV_1 ((uint32_t)0x00000200)
#define RCC_LTDCDIV_2 ((uint32_t)0x00000400)
#define RCC_LTDCDIV_3 ((uint32_t)0x00000800)
#define RCC_LTDCDIV_4 ((uint32_t)0x00001000)
#define RCC_LTDCDIV_5 ((uint32_t)0x00002000)
#define RCC_LTDCDIV_DIV1 ((uint32_t)0x00000000)
#define RCC_LTDCDIV_DIV2 ((uint32_t)0x00000100)
#define RCC_LTDCDIV_DIV3 ((uint32_t)0x00000200)
#define RCC_LTDCDIV_DIV4 ((uint32_t)0x00000300)
#define RCC_LTDCDIV_DIV5 ((uint32_t)0x00000400)
#define RCC_LTDCDIV_DIV6 ((uint32_t)0x00000500)
#define RCC_LTDCDIV_DIV7 ((uint32_t)0x00000600)
#define RCC_LTDCDIV_DIV8 ((uint32_t)0x00000700)
#define RCC_LTDCDIV_DIV9 ((uint32_t)0x00000800)
#define RCC_LTDCDIV_DIV10 ((uint32_t)0x00000900)
#define RCC_LTDCDIV_DIV11 ((uint32_t)0x00000A00)
#define RCC_LTDCDIV_DIV12 ((uint32_t)0x00000B00)
#define RCC_LTDCDIV_DIV13 ((uint32_t)0x00000C00)
#define RCC_LTDCDIV_DIV14 ((uint32_t)0x00000D00)
#define RCC_LTDCDIV_DIV15 ((uint32_t)0x00000E00)
#define RCC_LTDCDIV_DIV16 ((uint32_t)0x00000F00)
#define RCC_LTDCDIV_DIV17 ((uint32_t)0x00001000)
#define RCC_LTDCDIV_DIV18 ((uint32_t)0x00001100)
#define RCC_LTDCDIV_DIV19 ((uint32_t)0x00001200)
#define RCC_LTDCDIV_DIV20 ((uint32_t)0x00001300)
#define RCC_LTDCDIV_DIV21 ((uint32_t)0x00001400)
#define RCC_LTDCDIV_DIV22 ((uint32_t)0x00001500)
#define RCC_LTDCDIV_DIV23 ((uint32_t)0x00001600)
#define RCC_LTDCDIV_DIV24 ((uint32_t)0x00001700)
#define RCC_LTDCDIV_DIV25 ((uint32_t)0x00001800)
#define RCC_LTDCDIV_DIV26 ((uint32_t)0x00001900)
#define RCC_LTDCDIV_DIV27 ((uint32_t)0x00001A00)
#define RCC_LTDCDIV_DIV28 ((uint32_t)0x00001B00)
#define RCC_LTDCDIV_DIV29 ((uint32_t)0x00001C00)
#define RCC_LTDCDIV_DIV30 ((uint32_t)0x00001D00)
#define RCC_LTDCDIV_DIV31 ((uint32_t)0x00001E00)
#define RCC_LTDCDIV_DIV32 ((uint32_t)0x00001F00)
#define RCC_LTDCDIV_DIV33 ((uint32_t)0x00002000)
#define RCC_LTDCDIV_DIV34 ((uint32_t)0x00002100)
#define RCC_LTDCDIV_DIV35 ((uint32_t)0x00002200)
#define RCC_LTDCDIV_DIV36 ((uint32_t)0x00002300)
#define RCC_LTDCDIV_DIV37 ((uint32_t)0x00002400)
#define RCC_LTDCDIV_DIV38 ((uint32_t)0x00002500)
#define RCC_LTDCDIV_DIV39 ((uint32_t)0x00002600)
#define RCC_LTDCDIV_DIV40 ((uint32_t)0x00002700)
#define RCC_LTDCDIV_DIV41 ((uint32_t)0x00002800)
#define RCC_LTDCDIV_DIV42 ((uint32_t)0x00002900)
#define RCC_LTDCDIV_DIV43 ((uint32_t)0x00002A00)
#define RCC_LTDCDIV_DIV44 ((uint32_t)0x00002B00)
#define RCC_LTDCDIV_DIV45 ((uint32_t)0x00002C00)
#define RCC_LTDCDIV_DIV46 ((uint32_t)0x00002D00)
#define RCC_LTDCDIV_DIV47 ((uint32_t)0x00002E00)
#define RCC_LTDCDIV_DIV48 ((uint32_t)0x00002F00)
#define RCC_LTDCDIV_DIV49 ((uint32_t)0x00003000)
#define RCC_LTDCDIV_DIV50 ((uint32_t)0x00003100)
#define RCC_LTDCDIV_DIV51 ((uint32_t)0x00003200)
#define RCC_LTDCDIV_DIV52 ((uint32_t)0x00003300)
#define RCC_LTDCDIV_DIV53 ((uint32_t)0x00003400)
#define RCC_LTDCDIV_DIV54 ((uint32_t)0x00003500)
#define RCC_LTDCDIV_DIV55 ((uint32_t)0x00003600)
#define RCC_LTDCDIV_DIV56 ((uint32_t)0x00003700)
#define RCC_LTDCDIV_DIV57 ((uint32_t)0x00003800)
#define RCC_LTDCDIV_DIV58 ((uint32_t)0x00003900)
#define RCC_LTDCDIV_DIV59 ((uint32_t)0x00003A00)
#define RCC_LTDCDIV_DIV60 ((uint32_t)0x00003B00)
#define RCC_LTDCDIV_DIV61 ((uint32_t)0x00003C00)
#define RCC_LTDCDIV_DIV62 ((uint32_t)0x00003D00)
#define RCC_LTDCDIV_DIV63 ((uint32_t)0x00003E00)
#define RCC_LTDCDIV_DIV64 ((uint32_t)0x00003F00)
#define RCC_LTDCSRC ((uint32_t)0x0000C000)
#define RCC_LTDCSRC_0 ((uint32_t)0x00004000)
#define RCC_LTDCSRC_1 ((uint32_t)0x00008000)
#define RCC_LTDCSRC_PLLCLK ((uint32_t)0x00000000)
#define RCC_LTDCSRC_SERDESPLL ((uint32_t)0x00004000)
#define RCC_LTDCSRC_ETHPLL ((uint32_t)0x00008000)
#define RCC_LTDCSRC_USBHSPLL ((uint32_t)0x0000C000)
#define RCC_USBFSDIV ((uint32_t)0x000F0000)
#define RCC_USBFSDIV_0 ((uint32_t)0x00010000)
#define RCC_USBFSDIV_1 ((uint32_t)0x00020000)
#define RCC_USBFSDIV_2 ((uint32_t)0x00040000)
#define RCC_USBFSDIV_3 ((uint32_t)0x00080000)
#define RCC_USBFSDIV_DIV1 ((uint32_t)0x00000000)
#define RCC_USBFSDIV_DIV2 ((uint32_t)0x00010000)
#define RCC_USBFSDIV_DIV3 ((uint32_t)0x00020000)
#define RCC_USBFSDIV_DIV4 ((uint32_t)0x00030000)
#define RCC_USBFSDIV_DIV5 ((uint32_t)0x00040000)
#define RCC_USBFSDIV_DIV6 ((uint32_t)0x00050000)
#define RCC_USBFSDIV_DIV8 ((uint32_t)0x00060000)
#define RCC_USBFSDIV_DIV10 ((uint32_t)0x00070000)
#define RCC_USBFSDIV_DIV1_5 ((uint32_t)0x00080000)
#define RCC_USBFSDIV_DIV2_5 ((uint32_t)0x00090000)
#define RCC_USBFSDIV_DIV3_5 ((uint32_t)0x000A0000)
#define RCC_USBFSDIV_DIV4_5 ((uint32_t)0x000B0000)
#define RCC_USBFSDIV_DIV5_5 ((uint32_t)0x000C0000)
#define RCC_USBFSDIV_DIV6_5 ((uint32_t)0x000D0000)
#define RCC_USBFSDIV_DIV7_5 ((uint32_t)0x000E0000)
#define RCC_USBFSDIV_DIV9_5 ((uint32_t)0x000F0000)
#define RCC_USBFSSRC ((uint32_t)0x00100000)
#define RCC_USBFSSRC_PLLCLK ((uint32_t)0x00000000)
#define RCC_USBFSSRC_USBHSPLL ((uint32_t)0x00100000)
#define RCC_RNGSRC ((uint32_t)0x00800000)
#define RCC_RNGSRC_SYSCLK ((uint32_t)0x00000000)
#define RCC_RNGSRC_PLLCLK ((uint32_t)0x00800000)
#define RCC_I2S2SRC ((uint32_t)0x01000000)
#define RCC_I2S2SRC_SYSCLK ((uint32_t)0x00000000)
#define RCC_I2S2SRC_PLLCLK ((uint32_t)0x01000000)
#define RCC_I2S3SRC ((uint32_t)0x02000000)
#define RCC_I2S3SRC_SYSCLK ((uint32_t)0x00000000)
#define RCC_I2S3SRC_PLLCLK ((uint32_t)0x02000000)
#define RCC_HSADCSRC ((uint32_t)0x30000000)
#define RCC_HSADCSRC_0 ((uint32_t)0x10000000)
#define RCC_HSADCSRC_1 ((uint32_t)0x20000000)
#define RCC_HSADCSRC_SYSCLK ((uint32_t)0x00000000)
#define RCC_HSADCSRC_PLLCLK ((uint32_t)0x10000000)
#define RCC_HSADCSRC_USBHSPLL ((uint32_t)0x20000000)
#define RCC_HSADCSRC_ETHPLL ((uint32_t)0x30000000)
#define RCC_ETH1GSRC ((uint32_t)0xC0000000)
#define RCC_ETH1GSRC_0 ((uint32_t)0x40000000)
#define RCC_ETH1GSRC_1 ((uint32_t)0x80000000)
#define RCC_ETH1GSRC_PLLCLK ((uint32_t)0x00000000)
#define RCC_ETH1GSRC_USBSSPLL ((uint32_t)0x40000000)
#define RCC_ETH1GSRC_ETHPLL_DIV4 ((uint32_t)0x80000000)
#define RCC_ETH1GSRC_SERDESPLL_DIV8 ((uint32_t)0xC0000000)
/******************* Bit definition for RCC_PLLCFGR2 register ********************/
#define RCC_USBHSPLLSRC ((uint32_t)0x00000003)
#define RCC_USBHSPLLSRC_0 ((uint32_t)0x00000001)
#define RCC_USBHSPLLSRC_1 ((uint32_t)0x00000002)
#define RCC_USBHSPLLSRC_HSE ((uint32_t)0x00000000)
#define RCC_USBHSPLLSRC_HSI ((uint32_t)0x00000001)
#define RCC_USBHSPLLSRC_ETHCLK_20M ((uint32_t)0x00000002)
#define RCC_USBHSPLLSRC_PLLCLK ((uint32_t)0x00000003)
#define RCC_USBHSPLL_REFSEL ((uint32_t)0x0000000C)
#define RCC_USBHSPLL_REFSEL_0 ((uint32_t)0x00000004)
#define RCC_USBHSPLL_REFSEL_1 ((uint32_t)0x00000008)
#define RCC_USBHSPLL_REFSEL_25MHZ ((uint32_t)0x00000000)
#define RCC_USBHSPLL_REFSEL_20MHZ ((uint32_t)0x00000004)
#define RCC_USBHSPLL_REFSEL_24MHZ ((uint32_t)0x00000008)
#define RCC_USBHSPLL_REFSEL_32MHZ ((uint32_t)0x0000000C)
#define RCC_USBSSPLL_REFSEL ((uint32_t)0x00000070)
#define RCC_USBSSPLL_REFSEL_0 ((uint32_t)0x00000010)
#define RCC_USBSSPLL_REFSEL_1 ((uint32_t)0x00000020)
#define RCC_USBSSPLL_REFSEL_2 ((uint32_t)0x00000030)
#define RCC_USBSSPLL_REFSEL_20MHz ((uint32_t)0x00000000)
#define RCC_USBSSPLL_REFSEL_24MHz ((uint32_t)0x00000010)
#define RCC_USBSSPLL_REFSEL_25MHz ((uint32_t)0x00000020)
#define RCC_USBSSPLL_REFSEL_30MHz ((uint32_t)0x00000030)
#define RCC_USBSSPLL_REFSEL_32MHz ((uint32_t)0x00000040)
#define RCC_USBSSPLL_REFSEL_40MHz ((uint32_t)0x00000050)
#define RCC_USBSSPLL_REFSEL_60MHz ((uint32_t)0x00000060)
#define RCC_USBSSPLL_REFSEL_80MHz ((uint32_t)0x00000070)
#define RCC_USBHSPLL_IN_DIV ((uint32_t)0x00001F00)
#define RCC_USBHSPLL_IN_DIV_0 ((uint32_t)0x00000100)
#define RCC_USBHSPLL_IN_DIV_1 ((uint32_t)0x00000200)
#define RCC_USBHSPLL_IN_DIV_2 ((uint32_t)0x00000400)
#define RCC_USBHSPLL_IN_DIV_3 ((uint32_t)0x00000800)
#define RCC_USBHSPLL_IN_DIV_4 ((uint32_t)0x00001000)
#define RCC_USBHSPLL_IN_DIV1 ((uint32_t)0x00000000)
#define RCC_USBHSPLL_IN_DIV2 ((uint32_t)0x00000100)
#define RCC_USBHSPLL_IN_DIV3 ((uint32_t)0x00000200)
#define RCC_USBHSPLL_IN_DIV4 ((uint32_t)0x00000300)
#define RCC_USBHSPLL_IN_DIV5 ((uint32_t)0x00000400)
#define RCC_USBHSPLL_IN_DIV6 ((uint32_t)0x00000500)
#define RCC_USBHSPLL_IN_DIV7 ((uint32_t)0x00000600)
#define RCC_USBHSPLL_IN_DIV8 ((uint32_t)0x00000700)
#define RCC_USBHSPLL_IN_DIV9 ((uint32_t)0x00000800)
#define RCC_USBHSPLL_IN_DIV10 ((uint32_t)0x00000900)
#define RCC_USBHSPLL_IN_DIV11 ((uint32_t)0x00000A00)
#define RCC_USBHSPLL_IN_DIV12 ((uint32_t)0x00000B00)
#define RCC_USBHSPLL_IN_DIV13 ((uint32_t)0x00000C00)
#define RCC_USBHSPLL_IN_DIV14 ((uint32_t)0x00000D00)
#define RCC_USBHSPLL_IN_DIV15 ((uint32_t)0x00000E00)
#define RCC_USBHSPLL_IN_DIV16 ((uint32_t)0x00000F00)
#define RCC_USBHSPLL_IN_DIV17 ((uint32_t)0x00001000)
#define RCC_USBHSPLL_IN_DIV18 ((uint32_t)0x00001100)
#define RCC_USBHSPLL_IN_DIV19 ((uint32_t)0x00001200)
#define RCC_USBHSPLL_IN_DIV20 ((uint32_t)0x00001300)
#define RCC_USBHSPLL_IN_DIV21 ((uint32_t)0x00001400)
#define RCC_USBHSPLL_IN_DIV22 ((uint32_t)0x00001500)
#define RCC_USBHSPLL_IN_DIV23 ((uint32_t)0x00001600)
#define RCC_USBHSPLL_IN_DIV24 ((uint32_t)0x00001700)
#define RCC_USBHSPLL_IN_DIV25 ((uint32_t)0x00001800)
#define RCC_USBHSPLL_IN_DIV26 ((uint32_t)0x00001900)
#define RCC_USBHSPLL_IN_DIV27 ((uint32_t)0x00001A00)
#define RCC_USBHSPLL_IN_DIV28 ((uint32_t)0x00001B00)
#define RCC_USBHSPLL_IN_DIV29 ((uint32_t)0x00001C00)
#define RCC_USBHSPLL_IN_DIV30 ((uint32_t)0x00001D00)
#define RCC_USBHSPLL_IN_DIV31 ((uint32_t)0x00001E00)
#define RCC_USBHSPLL_IN_DIV32 ((uint32_t)0x00001F00)
#define RCC_SERDESPLL_MUL ((uint32_t)0x000F0000)
#define RCC_SERDESPLL_MUL_0 ((uint32_t)0x00010000)
#define RCC_SERDESPLL_MUL_1 ((uint32_t)0x00020000)
#define RCC_SERDESPLL_MUL_2 ((uint32_t)0x00040000)
#define RCC_SERDESPLL_MUL_3 ((uint32_t)0x00080000)
#define RCC_SERDESPLL_MUL25 ((uint32_t)0x00000000)
#define RCC_SERDESPLL_MUL28 ((uint32_t)0x00010000)
#define RCC_SERDESPLL_MUL30 ((uint32_t)0x00020000)
#define RCC_SERDESPLL_MUL32 ((uint32_t)0x00030000)
#define RCC_SERDESPLL_MUL35 ((uint32_t)0x00040000)
#define RCC_SERDESPLL_MUL38 ((uint32_t)0x00050000)
#define RCC_SERDESPLL_MUL40 ((uint32_t)0x00060000)
#define RCC_SERDESPLL_MUL45 ((uint32_t)0x00070000)
#define RCC_SERDESPLL_MUL50 ((uint32_t)0x00080000)
#define RCC_SERDESPLL_MUL56 ((uint32_t)0x00090000)
#define RCC_SERDESPLL_MUL60 ((uint32_t)0x000A0000)
#define RCC_SERDESPLL_MUL64 ((uint32_t)0x000B0000)
#define RCC_SERDESPLL_MUL70 ((uint32_t)0x000C0000)
#define RCC_SERDESPLL_MUL76 ((uint32_t)0x000D0000)
#define RCC_SERDESPLL_MUL80 ((uint32_t)0x000E0000)
#define RCC_SERDESPLL_MUL90 ((uint32_t)0x000F0000)
/******************************************************************************/
/* RNG */
/******************************************************************************/
/******************** Bit definition for RNG_CR register *******************/
#define RNG_CR_RNGEN ((uint32_t)0x00000004)
#define RNG_CR_IE ((uint32_t)0x00000008)
/******************** Bit definition for RNG_SR register *******************/
#define RNG_SR_DRDY ((uint32_t)0x00000001)
#define RNG_SR_CECS ((uint32_t)0x00000002)
#define RNG_SR_SECS ((uint32_t)0x00000004)
#define RNG_SR_CEIS ((uint32_t)0x00000020)
#define RNG_SR_SEIS ((uint32_t)0x00000040)
/******************************************************************************/
/* Real-Time Clock */
/******************************************************************************/
/******************* Bit definition for RTC_CTLRH register ********************/
#define RTC_CTLRH_SECIE ((uint8_t)0x01) /* Second Interrupt Enable */
#define RTC_CTLRH_ALRIE ((uint8_t)0x02) /* Alarm Interrupt Enable */
#define RTC_CTLRH_OWIE ((uint8_t)0x04) /* OverfloW Interrupt Enable */
/******************* Bit definition for RTC_CTLRL register ********************/
#define RTC_CTLRL_SECF ((uint8_t)0x01) /* Second Flag */
#define RTC_CTLRL_ALRF ((uint8_t)0x02) /* Alarm Flag */
#define RTC_CTLRL_OWF ((uint8_t)0x04) /* OverfloW Flag */
#define RTC_CTLRL_RSF ((uint8_t)0x08) /* Registers Synchronized Flag */
#define RTC_CTLRL_CNF ((uint8_t)0x10) /* Configuration Flag */
#define RTC_CTLRL_RTOFF ((uint8_t)0x20) /* RTC operation OFF */
/******************* Bit definition for RTC_PSCRH register *******************/
#define RTC_PSCH_PRL ((uint16_t)0x000F) /* RTC Prescaler Reload Value High */
/******************* Bit definition for RTC_PSCRL register *******************/
#define RTC_PSCL_PRL ((uint16_t)0xFFFF) /* RTC Prescaler Reload Value Low */
/******************* Bit definition for RTC_DIVH register *******************/
#define RTC_DIVH_RTC_DIV ((uint16_t)0x000F) /* RTC Clock Divider High */
/******************* Bit definition for RTC_DIVL register *******************/
#define RTC_DIVL_RTC_DIV ((uint16_t)0xFFFF) /* RTC Clock Divider Low */
/******************* Bit definition for RTC_CNTH register *******************/
#define RTC_CNTH_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter High */
/******************* Bit definition for RTC_CNTL register *******************/
#define RTC_CNTL_RTC_CNT ((uint16_t)0xFFFF) /* RTC Counter Low */
/******************* Bit definition for RTC_ALRMH register *******************/
#define RTC_ALRMH_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm High */
/******************* Bit definition for RTC_ALRML register *******************/
#define RTC_ALRML_RTC_ALRM ((uint16_t)0xFFFF) /* RTC Alarm Low */
/******************************************************************************/
/* Serial Peripheral Interface */
/******************************************************************************/
/******************* Bit definition for SPI_CTLR1 register ********************/
#define SPI_CTLR1_CPHA ((uint16_t)0x0001) /* Clock Phase */
#define SPI_CTLR1_CPOL ((uint16_t)0x0002) /* Clock Polarity */
#define SPI_CTLR1_MSTR ((uint16_t)0x0004) /* Master Selection */
#define SPI_CTLR1_BR ((uint16_t)0x0038) /* BR[2:0] bits (Baud Rate Control) */
#define SPI_CTLR1_BR_0 ((uint16_t)0x0008) /* Bit 0 */
#define SPI_CTLR1_BR_1 ((uint16_t)0x0010) /* Bit 1 */
#define SPI_CTLR1_BR_2 ((uint16_t)0x0020) /* Bit 2 */
#define SPI_CTLR1_SPE ((uint16_t)0x0040) /* SPI Enable */
#define SPI_CTLR1_LSBFIRST ((uint16_t)0x0080) /* Frame Format */
#define SPI_CTLR1_SSI ((uint16_t)0x0100) /* Internal slave select */
#define SPI_CTLR1_SSM ((uint16_t)0x0200) /* Software slave management */
#define SPI_CTLR1_RXONLY ((uint16_t)0x0400) /* Receive only */
#define SPI_CTLR1_DFF ((uint16_t)0x0800) /* Data Frame Format */
#define SPI_CTLR1_CRCNEXT ((uint16_t)0x1000) /* Transmit CRC next */
#define SPI_CTLR1_CRCEN ((uint16_t)0x2000) /* Hardware CRC calculation enable */
#define SPI_CTLR1_BIDIOE ((uint16_t)0x4000) /* Output enable in bidirectional mode */
#define SPI_CTLR1_BIDIMODE ((uint16_t)0x8000) /* Bidirectional data mode enable */
/******************* Bit definition for SPI_CTLR2 register ********************/
#define SPI_CTLR2_RXDMAEN ((uint8_t)0x01) /* Rx Buffer DMA Enable */
#define SPI_CTLR2_TXDMAEN ((uint8_t)0x02) /* Tx Buffer DMA Enable */
#define SPI_CTLR2_SSOE ((uint8_t)0x04) /* SS Output Enable */
#define SPI_CTLR2_ERRIE ((uint8_t)0x20) /* Error Interrupt Enable */
#define SPI_CTLR2_RXNEIE ((uint8_t)0x40) /* RX buffer Not Empty Interrupt Enable */
#define SPI_CTLR2_TXEIE ((uint8_t)0x80) /* Tx buffer Empty Interrupt Enable */
/******************** Bit definition for SPI_STATR register ********************/
#define SPI_STATR_RXNE ((uint8_t)0x01) /* Receive buffer Not Empty */
#define SPI_STATR_TXE ((uint8_t)0x02) /* Transmit buffer Empty */
#define SPI_STATR_CHSIDE ((uint8_t)0x04) /* Channel side */
#define SPI_STATR_UDR ((uint8_t)0x08) /* Underrun flag */
#define SPI_STATR_CRCERR ((uint8_t)0x10) /* CRC Error flag */
#define SPI_STATR_MODF ((uint8_t)0x20) /* Mode fault */
#define SPI_STATR_OVR ((uint8_t)0x40) /* Overrun flag */
#define SPI_STATR_BSY ((uint8_t)0x80) /* Busy flag */
/******************** Bit definition for SPI_DATAR register ********************/
#define SPI_DATAR_DR ((uint16_t)0xFFFF) /* Data Register */
/******************* Bit definition for SPI_CRCR register ******************/
#define SPI_CRCR_CRCPOLY ((uint16_t)0xFFFF) /* CRC polynomial register */
/****************** Bit definition for SPI_RCRCR register ******************/
#define SPI_RCRCR_RXCRC ((uint16_t)0xFFFF) /* Rx CRC Register */
/****************** Bit definition for SPI_TCRCR register ******************/
#define SPI_TCRCR_TXCRC ((uint16_t)0xFFFF) /* Tx CRC Register */
/****************** Bit definition for SPI_I2SCFGR register *****************/
#define SPI_I2SCFGR_CHLEN ((uint16_t)0x0001) /* Channel length (number of bits per audio channel) */
#define SPI_I2SCFGR_DATLEN ((uint16_t)0x0006) /* DATLEN[1:0] bits (Data length to be transferred) */
#define SPI_I2SCFGR_DATLEN_0 ((uint16_t)0x0002) /* Bit 0 */
#define SPI_I2SCFGR_DATLEN_1 ((uint16_t)0x0004) /* Bit 1 */
#define SPI_I2SCFGR_CKPOL ((uint16_t)0x0008) /* steady state clock polarity */
#define SPI_I2SCFGR_I2SSTD ((uint16_t)0x0030) /* I2SSTD[1:0] bits (I2S standard selection) */
#define SPI_I2SCFGR_I2SSTD_0 ((uint16_t)0x0010) /* Bit 0 */
#define SPI_I2SCFGR_I2SSTD_1 ((uint16_t)0x0020) /* Bit 1 */
#define SPI_I2SCFGR_PCMSYNC ((uint16_t)0x0080) /* PCM frame synchronization */
#define SPI_I2SCFGR_I2SCFG ((uint16_t)0x0300) /* I2SCFG[1:0] bits (I2S configuration mode) */
#define SPI_I2SCFGR_I2SCFG_0 ((uint16_t)0x0100) /* Bit 0 */
#define SPI_I2SCFGR_I2SCFG_1 ((uint16_t)0x0200) /* Bit 1 */
#define SPI_I2SCFGR_I2SE ((uint16_t)0x0400) /* I2S Enable */
#define SPI_I2SCFGR_I2SMOD ((uint16_t)0x0800) /* I2S mode selection */
/****************** Bit definition for SPI_I2SPR register *******************/
#define SPI_I2SPR_I2SDIV ((uint16_t)0x00FF) /* I2S Linear prescaler */
#define SPI_I2SPR_ODD ((uint16_t)0x0100) /* Odd factor for the prescaler */
#define SPI_I2SPR_MCKOE ((uint16_t)0x0200) /* Master Clock Output Enable */
/****************** Bit definition for SPI_HSCR register *******************/
#define SPI_HSCR_HSRXEN ((uint16_t)0x0001)
#define SPI_HSCR_HSRXEN2 ((uint16_t)0x0004)
/******************************************************************************/
/* TIM */
/******************************************************************************/
/******************* Bit definition for TIM_CTLR1 register ********************/
#define TIM_CEN ((uint16_t)0x0001) /* Counter enable */
#define TIM_UDIS ((uint16_t)0x0002) /* Update disable */
#define TIM_URS ((uint16_t)0x0004) /* Update request source */
#define TIM_OPM ((uint16_t)0x0008) /* One pulse mode */
#define TIM_DIR ((uint16_t)0x0010) /* Direction */
#define TIM_CMS ((uint16_t)0x0060) /* CMS[1:0] bits (Center-aligned mode selection) */
#define TIM_CMS_0 ((uint16_t)0x0020) /* Bit 0 */
#define TIM_CMS_1 ((uint16_t)0x0040) /* Bit 1 */
#define TIM_ARPE ((uint16_t)0x0080) /* Auto-reload preload enable */
#define TIM_CTLR1_CKD ((uint16_t)0x0300) /* CKD[1:0] bits (clock division) */
#define TIM_CKD_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_CKD_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_CAPOV ((uint16_t)0x4000)
#define TIM_CAPLVL ((uint16_t)0x8000)
/******************* Bit definition for TIM_CTLR2 register ********************/
#define TIM_CCPC ((uint16_t)0x0001) /* Capture/Compare Preloaded Control */
#define TIM_CCUS ((uint16_t)0x0004) /* Capture/Compare Control Update Selection */
#define TIM_CCDS ((uint16_t)0x0008) /* Capture/Compare DMA Selection */
#define TIM_MMS ((uint16_t)0x0070) /* MMS[2:0] bits (Master Mode Selection) */
#define TIM_MMS_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_MMS_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_MMS_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_TI1S ((uint16_t)0x0080) /* TI1 Selection */
#define TIM_OIS1 ((uint16_t)0x0100) /* Output Idle state 1 (OC1 output) */
#define TIM_OIS1N ((uint16_t)0x0200) /* Output Idle state 1 (OC1N output) */
#define TIM_OIS2 ((uint16_t)0x0400) /* Output Idle state 2 (OC2 output) */
#define TIM_OIS2N ((uint16_t)0x0800) /* Output Idle state 2 (OC2N output) */
#define TIM_OIS3 ((uint16_t)0x1000) /* Output Idle state 3 (OC3 output) */
#define TIM_OIS3N ((uint16_t)0x2000) /* Output Idle state 3 (OC3N output) */
#define TIM_OIS4 ((uint16_t)0x4000) /* Output Idle state 4 (OC4 output) */
/******************* Bit definition for TIM_SMCFGR register *******************/
#define TIM_SMS ((uint16_t)0x0007) /* SMS[2:0] bits (Slave mode selection) */
#define TIM_SMS_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_SMS_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_SMS_2 ((uint16_t)0x0004) /* Bit 2 */
#define TIM_TS ((uint16_t)0x0070) /* TS[2:0] bits (Trigger selection) */
#define TIM_TS_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_TS_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_TS_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_MSM ((uint16_t)0x0080) /* Master/slave mode */
#define TIM_ETF ((uint16_t)0x0F00) /* ETF[3:0] bits (External trigger filter) */
#define TIM_ETF_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_ETF_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_ETF_2 ((uint16_t)0x0400) /* Bit 2 */
#define TIM_ETF_3 ((uint16_t)0x0800) /* Bit 3 */
#define TIM_ETPS ((uint16_t)0x3000) /* ETPS[1:0] bits (External trigger prescaler) */
#define TIM_ETPS_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_ETPS_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_ECE ((uint16_t)0x4000) /* External clock enable */
#define TIM_ETP ((uint16_t)0x8000) /* External trigger polarity */
/******************* Bit definition for TIM_DMAINTENR register *******************/
#define TIM_UIE ((uint16_t)0x0001) /* Update interrupt enable */
#define TIM_CC1IE ((uint16_t)0x0002) /* Capture/Compare 1 interrupt enable */
#define TIM_CC2IE ((uint16_t)0x0004) /* Capture/Compare 2 interrupt enable */
#define TIM_CC3IE ((uint16_t)0x0008) /* Capture/Compare 3 interrupt enable */
#define TIM_CC4IE ((uint16_t)0x0010) /* Capture/Compare 4 interrupt enable */
#define TIM_COMIE ((uint16_t)0x0020) /* COM interrupt enable */
#define TIM_TIE ((uint16_t)0x0040) /* Trigger interrupt enable */
#define TIM_BIE ((uint16_t)0x0080) /* Break interrupt enable */
#define TIM_UDE ((uint16_t)0x0100) /* Update DMA request enable */
#define TIM_CC1DE ((uint16_t)0x0200) /* Capture/Compare 1 DMA request enable */
#define TIM_CC2DE ((uint16_t)0x0400) /* Capture/Compare 2 DMA request enable */
#define TIM_CC3DE ((uint16_t)0x0800) /* Capture/Compare 3 DMA request enable */
#define TIM_CC4DE ((uint16_t)0x1000) /* Capture/Compare 4 DMA request enable */
#define TIM_COMDE ((uint16_t)0x2000) /* COM DMA request enable */
#define TIM_TDE ((uint16_t)0x4000) /* Trigger DMA request enable */
/******************** Bit definition for TIM_INTFR register ********************/
#define TIM_UIF ((uint16_t)0x0001) /* Update interrupt Flag */
#define TIM_CC1IF ((uint16_t)0x0002) /* Capture/Compare 1 interrupt Flag */
#define TIM_CC2IF ((uint16_t)0x0004) /* Capture/Compare 2 interrupt Flag */
#define TIM_CC3IF ((uint16_t)0x0008) /* Capture/Compare 3 interrupt Flag */
#define TIM_CC4IF ((uint16_t)0x0010) /* Capture/Compare 4 interrupt Flag */
#define TIM_COMIF ((uint16_t)0x0020) /* COM interrupt Flag */
#define TIM_TIF ((uint16_t)0x0040) /* Trigger interrupt Flag */
#define TIM_BIF ((uint16_t)0x0080) /* Break interrupt Flag */
#define TIM_CC1OF ((uint16_t)0x0200) /* Capture/Compare 1 Overcapture Flag */
#define TIM_CC2OF ((uint16_t)0x0400) /* Capture/Compare 2 Overcapture Flag */
#define TIM_CC3OF ((uint16_t)0x0800) /* Capture/Compare 3 Overcapture Flag */
#define TIM_CC4OF ((uint16_t)0x1000) /* Capture/Compare 4 Overcapture Flag */
/******************* Bit definition for TIM_SWEVGR register ********************/
#define TIM_UG ((uint8_t)0x01) /* Update Generation */
#define TIM_CC1G ((uint8_t)0x02) /* Capture/Compare 1 Generation */
#define TIM_CC2G ((uint8_t)0x04) /* Capture/Compare 2 Generation */
#define TIM_CC3G ((uint8_t)0x08) /* Capture/Compare 3 Generation */
#define TIM_CC4G ((uint8_t)0x10) /* Capture/Compare 4 Generation */
#define TIM_COMG ((uint8_t)0x20) /* Capture/Compare Control Update Generation */
#define TIM_TG ((uint8_t)0x40) /* Trigger Generation */
#define TIM_BG ((uint8_t)0x80) /* Break Generation */
/****************** Bit definition for TIM_CHCTLR1 register *******************/
#define TIM_CC1S ((uint16_t)0x0003) /* CC1S[1:0] bits (Capture/Compare 1 Selection) */
#define TIM_CC1S_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_CC1S_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_OC1FE ((uint16_t)0x0004) /* Output Compare 1 Fast enable */
#define TIM_OC1PE ((uint16_t)0x0008) /* Output Compare 1 Preload enable */
#define TIM_OC1M ((uint16_t)0x0070) /* OC1M[2:0] bits (Output Compare 1 Mode) */
#define TIM_OC1M_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_OC1M_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_OC1M_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_OC1CE ((uint16_t)0x0080) /* Output Compare 1Clear Enable */
#define TIM_CC2S ((uint16_t)0x0300) /* CC2S[1:0] bits (Capture/Compare 2 Selection) */
#define TIM_CC2S_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_CC2S_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_OC2FE ((uint16_t)0x0400) /* Output Compare 2 Fast enable */
#define TIM_OC2PE ((uint16_t)0x0800) /* Output Compare 2 Preload enable */
#define TIM_OC2M ((uint16_t)0x7000) /* OC2M[2:0] bits (Output Compare 2 Mode) */
#define TIM_OC2M_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_OC2M_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_OC2M_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_OC2CE ((uint16_t)0x8000) /* Output Compare 2 Clear Enable */
#define TIM_IC1PSC ((uint16_t)0x000C) /* IC1PSC[1:0] bits (Input Capture 1 Prescaler) */
#define TIM_IC1PSC_0 ((uint16_t)0x0004) /* Bit 0 */
#define TIM_IC1PSC_1 ((uint16_t)0x0008) /* Bit 1 */
#define TIM_IC1F ((uint16_t)0x00F0) /* IC1F[3:0] bits (Input Capture 1 Filter) */
#define TIM_IC1F_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_IC1F_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_IC1F_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_IC1F_3 ((uint16_t)0x0080) /* Bit 3 */
#define TIM_IC2PSC ((uint16_t)0x0C00) /* IC2PSC[1:0] bits (Input Capture 2 Prescaler) */
#define TIM_IC2PSC_0 ((uint16_t)0x0400) /* Bit 0 */
#define TIM_IC2PSC_1 ((uint16_t)0x0800) /* Bit 1 */
#define TIM_IC2F ((uint16_t)0xF000) /* IC2F[3:0] bits (Input Capture 2 Filter) */
#define TIM_IC2F_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_IC2F_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_IC2F_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_IC2F_3 ((uint16_t)0x8000) /* Bit 3 */
/****************** Bit definition for TIM_CHCTLR2 register *******************/
#define TIM_CC3S ((uint16_t)0x0003) /* CC3S[1:0] bits (Capture/Compare 3 Selection) */
#define TIM_CC3S_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_CC3S_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_OC3FE ((uint16_t)0x0004) /* Output Compare 3 Fast enable */
#define TIM_OC3PE ((uint16_t)0x0008) /* Output Compare 3 Preload enable */
#define TIM_OC3M ((uint16_t)0x0070) /* OC3M[2:0] bits (Output Compare 3 Mode) */
#define TIM_OC3M_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_OC3M_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_OC3M_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_OC3CE ((uint16_t)0x0080) /* Output Compare 3 Clear Enable */
#define TIM_CC4S ((uint16_t)0x0300) /* CC4S[1:0] bits (Capture/Compare 4 Selection) */
#define TIM_CC4S_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_CC4S_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_OC4FE ((uint16_t)0x0400) /* Output Compare 4 Fast enable */
#define TIM_OC4PE ((uint16_t)0x0800) /* Output Compare 4 Preload enable */
#define TIM_OC4M ((uint16_t)0x7000) /* OC4M[2:0] bits (Output Compare 4 Mode) */
#define TIM_OC4M_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_OC4M_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_OC4M_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_OC4CE ((uint16_t)0x8000) /* Output Compare 4 Clear Enable */
#define TIM_IC3PSC ((uint16_t)0x000C) /* IC3PSC[1:0] bits (Input Capture 3 Prescaler) */
#define TIM_IC3PSC_0 ((uint16_t)0x0004) /* Bit 0 */
#define TIM_IC3PSC_1 ((uint16_t)0x0008) /* Bit 1 */
#define TIM_IC3F ((uint16_t)0x00F0) /* IC3F[3:0] bits (Input Capture 3 Filter) */
#define TIM_IC3F_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_IC3F_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_IC3F_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_IC3F_3 ((uint16_t)0x0080) /* Bit 3 */
#define TIM_IC4PSC ((uint16_t)0x0C00) /* IC4PSC[1:0] bits (Input Capture 4 Prescaler) */
#define TIM_IC4PSC_0 ((uint16_t)0x0400) /* Bit 0 */
#define TIM_IC4PSC_1 ((uint16_t)0x0800) /* Bit 1 */
#define TIM_IC4F ((uint16_t)0xF000) /* IC4F[3:0] bits (Input Capture 4 Filter) */
#define TIM_IC4F_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_IC4F_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_IC4F_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_IC4F_3 ((uint16_t)0x8000) /* Bit 3 */
/******************* Bit definition for TIM_CCER register *******************/
#define TIM_CC1E ((uint16_t)0x0001) /* Capture/Compare 1 output enable */
#define TIM_CC1P ((uint16_t)0x0002) /* Capture/Compare 1 output Polarity */
#define TIM_CC1NE ((uint16_t)0x0004) /* Capture/Compare 1 Complementary output enable */
#define TIM_CC1NP ((uint16_t)0x0008) /* Capture/Compare 1 Complementary output Polarity */
#define TIM_CC2E ((uint16_t)0x0010) /* Capture/Compare 2 output enable */
#define TIM_CC2P ((uint16_t)0x0020) /* Capture/Compare 2 output Polarity */
#define TIM_CC2NE ((uint16_t)0x0040) /* Capture/Compare 2 Complementary output enable */
#define TIM_CC2NP ((uint16_t)0x0080) /* Capture/Compare 2 Complementary output Polarity */
#define TIM_CC3E ((uint16_t)0x0100) /* Capture/Compare 3 output enable */
#define TIM_CC3P ((uint16_t)0x0200) /* Capture/Compare 3 output Polarity */
#define TIM_CC3NE ((uint16_t)0x0400) /* Capture/Compare 3 Complementary output enable */
#define TIM_CC3NP ((uint16_t)0x0800) /* Capture/Compare 3 Complementary output Polarity */
#define TIM_CC4E ((uint16_t)0x1000) /* Capture/Compare 4 output enable */
#define TIM_CC4P ((uint16_t)0x2000) /* Capture/Compare 4 output Polarity */
/******************* Bit definition for TIM_CNT register ********************/
#define TIM_CNT ((uint16_t)0xFFFF) /* Counter Value */
/******************* Bit definition for TIM_PSC register ********************/
#define TIM_PSC ((uint16_t)0xFFFF) /* Prescaler Value */
/******************* Bit definition for TIM_ATRLR register ********************/
#define TIM_ARR ((uint16_t)0xFFFF) /* actual auto-reload Value */
/******************* Bit definition for TIM_RPTCR register ********************/
#define TIM_REP ((uint8_t)0xFF) /* Repetition Counter Value */
/******************* Bit definition for TIM_CH1CVR register *******************/
#define TIM_CCR1 ((uint16_t)0xFFFF) /* Capture/Compare 1 Value */
#define TIM_LEVEL1 ((uint32_t)0x00010000)
/******************* Bit definition for TIM_CH2CVR register *******************/
#define TIM_CCR2 ((uint16_t)0xFFFF) /* Capture/Compare 2 Value */
#define TIM_LEVEL2 ((uint32_t)0x00010000)
/******************* Bit definition for TIM_CH3CVR register *******************/
#define TIM_CCR3 ((uint16_t)0xFFFF) /* Capture/Compare 3 Value */
#define TIM_LEVEL3 ((uint32_t)0x00010000)
/******************* Bit definition for TIM_CH4CVR register *******************/
#define TIM_CCR4 ((uint16_t)0xFFFF) /* Capture/Compare 4 Value */
#define TIM_LEVEL4 ((uint32_t)0x00010000)
/******************* Bit definition for TIM_BDTR register *******************/
#define TIM_DTG ((uint16_t)0x00FF) /* DTG[0:7] bits (Dead-Time Generator set-up) */
#define TIM_DTG_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_DTG_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_DTG_2 ((uint16_t)0x0004) /* Bit 2 */
#define TIM_DTG_3 ((uint16_t)0x0008) /* Bit 3 */
#define TIM_DTG_4 ((uint16_t)0x0010) /* Bit 4 */
#define TIM_DTG_5 ((uint16_t)0x0020) /* Bit 5 */
#define TIM_DTG_6 ((uint16_t)0x0040) /* Bit 6 */
#define TIM_DTG_7 ((uint16_t)0x0080) /* Bit 7 */
#define TIM_LOCK ((uint16_t)0x0300) /* LOCK[1:0] bits (Lock Configuration) */
#define TIM_LOCK_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_LOCK_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_OSSI ((uint16_t)0x0400) /* Off-State Selection for Idle mode */
#define TIM_OSSR ((uint16_t)0x0800) /* Off-State Selection for Run mode */
#define TIM_BKE ((uint16_t)0x1000) /* Break enable */
#define TIM_BKP ((uint16_t)0x2000) /* Break Polarity */
#define TIM_AOE ((uint16_t)0x4000) /* Automatic Output enable */
#define TIM_MOE ((uint16_t)0x8000) /* Main Output enable */
/******************* Bit definition for TIM_DMACFGR register ********************/
#define TIM_DBA ((uint16_t)0x001F) /* DBA[4:0] bits (DMA Base Address) */
#define TIM_DBA_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_DBA_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_DBA_2 ((uint16_t)0x0004) /* Bit 2 */
#define TIM_DBA_3 ((uint16_t)0x0008) /* Bit 3 */
#define TIM_DBA_4 ((uint16_t)0x0010) /* Bit 4 */
#define TIM_DBL ((uint16_t)0x1F00) /* DBL[4:0] bits (DMA Burst Length) */
#define TIM_DBL_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_DBL_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_DBL_2 ((uint16_t)0x0400) /* Bit 2 */
#define TIM_DBL_3 ((uint16_t)0x0800) /* Bit 3 */
#define TIM_DBL_4 ((uint16_t)0x1000) /* Bit 4 */
/******************* Bit definition for TIM_DMAADR register *******************/
#define TIM_DMAR_DMAB ((uint16_t)0xFFFF) /* DMA register for burst accesses */
/******************* Bit definition for TIM_AUX register *******************/
#define TIM_AUX_CAPCH2_ED ((uint16_t)0x0001)
#define TIM_AUX_CAPCH3_ED ((uint16_t)0x0002)
#define TIM_AUX_CAPCH4_ED ((uint16_t)0x0004)
#define TIM_AUX_BK_SEL ((uint16_t)0x0038)
#define TIM_AUX_BK_SEL_0 ((uint16_t)0x0008)
#define TIM_AUX_BK_SEL_1 ((uint16_t)0x0010)
#define TIM_AUX_BK_SEL_2 ((uint16_t)0x0020)
#define TIM_AUX_DT_MODE ((uint16_t)0x0040)
#define TIM_AUX_DTN_MODE ((uint16_t)0x0080)
#define TIM_AUX_DT_VLU2 ((uint16_t)0xFF00)
/******************************************************************************/
/* Universal Synchronous Asynchronous Receiver Transmitter */
/******************************************************************************/
/******************* Bit definition for USART_STATR register *******************/
#define USART_STATR_PE ((uint16_t)0x0001) /* Parity Error */
#define USART_STATR_FE ((uint16_t)0x0002) /* Framing Error */
#define USART_STATR_NE ((uint16_t)0x0004) /* Noise Error Flag */
#define USART_STATR_ORE ((uint16_t)0x0008) /* OverRun Error */
#define USART_STATR_IDLE ((uint16_t)0x0010) /* IDLE line detected */
#define USART_STATR_RXNE ((uint16_t)0x0020) /* Read Data Register Not Empty */
#define USART_STATR_TC ((uint16_t)0x0040) /* Transmission Complete */
#define USART_STATR_TXE ((uint16_t)0x0080) /* Transmit Data Register Empty */
#define USART_STATR_LBD ((uint16_t)0x0100) /* LIN Break Detection Flag */
#define USART_STATR_CTS ((uint16_t)0x0200) /* CTS Flag */
#define USART_STATR_RX_BUSY ((uint16_t)0x0400)
#define USART_STATR_MS_ERR ((uint16_t)0x0800)
#define USART_STATR_USART_WKUP ((uint16_t)0x8000)
/******************* Bit definition for USART_DATAR register *******************/
#define USART_DATAR_DR ((uint16_t)0x01FF) /* Data value */
/****************** Bit definition for USART_BRR register *******************/
#define USART_BRR_DIV_Fraction ((uint16_t)0x000F) /* Fraction of USARTDIV */
#define USART_BRR_DIV_Mantissa ((uint16_t)0xFFF0) /* Mantissa of USARTDIV */
/****************** Bit definition for USART_CTLR1 register *******************/
#define USART_CTLR1_SBK ((uint16_t)0x0001) /* Send Break */
#define USART_CTLR1_RWU ((uint16_t)0x0002) /* Receiver wakeup */
#define USART_CTLR1_RE ((uint16_t)0x0004) /* Receiver Enable */
#define USART_CTLR1_TE ((uint16_t)0x0008) /* Transmitter Enable */
#define USART_CTLR1_IDLEIE ((uint16_t)0x0010) /* IDLE Interrupt Enable */
#define USART_CTLR1_RXNEIE ((uint16_t)0x0020) /* RXNE Interrupt Enable */
#define USART_CTLR1_TCIE ((uint16_t)0x0040) /* Transmission Complete Interrupt Enable */
#define USART_CTLR1_TXEIE ((uint16_t)0x0080) /* PE Interrupt Enable */
#define USART_CTLR1_PEIE ((uint16_t)0x0100) /* PE Interrupt Enable */
#define USART_CTLR1_PS ((uint16_t)0x0200) /* Parity Selection */
#define USART_CTLR1_PCE ((uint16_t)0x0400) /* Parity Control Enable */
#define USART_CTLR1_WAKE ((uint16_t)0x0800) /* Wakeup method */
#define USART_CTLR1_M ((uint16_t)0x1000) /* Word length */
#define USART_CTLR1_UE ((uint16_t)0x2000) /* USART Enable */
#define USART_CTLR1_M_EXT ((uint16_t)0xC000)
#define USART_CTLR1_M_EXT_0 ((uint16_t)0x4000)
#define USART_CTLR1_M_EXT_1 ((uint16_t)0x8000)
#define USART_CTLR1_M_EXT5 ((uint16_t)0xC000)
#define USART_CTLR1_M_EXT6 ((uint16_t)0x8000)
#define USART_CTLR1_M_EXT7 ((uint16_t)0x4000)
/****************** Bit definition for USART_CTLR2 register *******************/
#define USART_CTLR2_ADD ((uint16_t)0x000F) /* Address of the USART node */
#define USART_CTLR2_LBDL ((uint16_t)0x0020) /* LIN Break Detection Length */
#define USART_CTLR2_LBDIE ((uint16_t)0x0040) /* LIN Break Detection Interrupt Enable */
#define USART_CTLR2_LBCL ((uint16_t)0x0100) /* Last Bit Clock pulse */
#define USART_CTLR2_CPHA ((uint16_t)0x0200) /* Clock Phase */
#define USART_CTLR2_CPOL ((uint16_t)0x0400) /* Clock Polarity */
#define USART_CTLR2_CLKEN ((uint16_t)0x0800) /* Clock Enable */
#define USART_CTLR2_STOP ((uint16_t)0x3000) /* STOP[1:0] bits (STOP bits) */
#define USART_CTLR2_STOP_0 ((uint16_t)0x1000) /* Bit 0 */
#define USART_CTLR2_STOP_1 ((uint16_t)0x2000) /* Bit 1 */
#define USART_CTLR2_LINEN ((uint16_t)0x4000) /* LIN mode enable */
/****************** Bit definition for USART_CTLR3 register *******************/
#define USART_CTLR3_EIE ((uint16_t)0x0001) /* Error Interrupt Enable */
#define USART_CTLR3_IREN ((uint16_t)0x0002) /* IrDA mode Enable */
#define USART_CTLR3_IRLP ((uint16_t)0x0004) /* IrDA Low-Power */
#define USART_CTLR3_HDSEL ((uint16_t)0x0008) /* Half-Duplex Selection */
#define USART_CTLR3_NACK ((uint16_t)0x0010) /* Smartcard NACK enable */
#define USART_CTLR3_SCEN ((uint16_t)0x0020) /* Smartcard mode enable */
#define USART_CTLR3_DMAR ((uint16_t)0x0040) /* DMA Enable Receiver */
#define USART_CTLR3_DMAT ((uint16_t)0x0080) /* DMA Enable Transmitter */
#define USART_CTLR3_RTSE ((uint16_t)0x0100) /* RTS Enable */
#define USART_CTLR3_CTSE ((uint16_t)0x0200) /* CTS Enable */
#define USART_CTLR3_CTSIE ((uint16_t)0x0400) /* CTS Interrupt Enable */
#define USART_CTLR3_LPWKUP_EN ((uint16_t)0x0800)
#define USART_CTLR3_LPWKUP_CK_SRC ((uint16_t)0x1000)
#define USART_CTLR3_LPWKUP_DLY_CFG ((uint16_t)0xE000)
/****************** Bit definition for USART_GPR register ******************/
#define USART_GPR_PSC ((uint16_t)0x00FF) /* PSC[7:0] bits (Prescaler value) */
#define USART_GPR_PSC_0 ((uint16_t)0x0001) /* Bit 0 */
#define USART_GPR_PSC_1 ((uint16_t)0x0002) /* Bit 1 */
#define USART_GPR_PSC_2 ((uint16_t)0x0004) /* Bit 2 */
#define USART_GPR_PSC_3 ((uint16_t)0x0008) /* Bit 3 */
#define USART_GPR_PSC_4 ((uint16_t)0x0010) /* Bit 4 */
#define USART_GPR_PSC_5 ((uint16_t)0x0020) /* Bit 5 */
#define USART_GPR_PSC_6 ((uint16_t)0x0040) /* Bit 6 */
#define USART_GPR_PSC_7 ((uint16_t)0x0080) /* Bit 7 */
#define USART_GPR_GT ((uint16_t)0xFF00) /* Guard time value */
/****************** Bit definition for USART_CTLR4 register ******************/
#define USART_CTLR4_MS_ERRIE ((uint16_t)0x0002)
#define USART_CTLR4_CHECK_SEL ((uint16_t)0x000C)
#define USART_CTLR4_CHECK_MARKENABLE ((uint16_t)0x0008)
#define USART_CTLR4_CHECK_APACEENABLE ((uint16_t)0x000C)
/******************************************************************************/
/* OPA */
/******************************************************************************/
/******************* Bit definition for OPA_CTLR1 register ********************/
#define OPA_CTLR1_EN1 ((uint16_t)0x0001)
#define OPA_CTLR1_MODE1 ((uint16_t)0x0006)
#define OPA_CTLR1_MODE1_0 ((uint16_t)0x0002)
#define OPA_CTLR1_MODE1_1 ((uint16_t)0x0004)
#define OPA_CTLR1_PSEL1 ((uint16_t)0x0008)
#define OPA_CTLR1_NSEL1 ((uint16_t)0x0070)
#define OPA_CTLR1_NSEL1_0 ((uint16_t)0x0010)
#define OPA_CTLR1_NSEL1_1 ((uint16_t)0x0020)
#define OPA_CTLR1_NSEL1_2 ((uint16_t)0x0030)
#define OPA_CTLR1_FBEN1 ((uint16_t)0x0100)
#define OPA_CTLR1_PGADIF1 ((uint16_t)0x0200)
#define OPA_CTLR1_HS1 ((uint16_t)0x0400)
/******************* Bit definition for OPA_CTLR2 register ********************/
#define OPA_CTLR2_EN2 ((uint16_t)0x0001)
#define OPA_CTLR2_MODE2 ((uint16_t)0x0006)
#define OPA_CTLR2_MODE2_0 ((uint16_t)0x0002)
#define OPA_CTLR2_MODE2_1 ((uint16_t)0x0004)
#define OPA_CTLR2_PSEL2 ((uint16_t)0x0008)
#define OPA_CTLR2_NSEL2 ((uint16_t)0x0070)
#define OPA_CTLR2_NSEL2_0 ((uint16_t)0x0010)
#define OPA_CTLR2_NSEL2_1 ((uint16_t)0x0020)
#define OPA_CTLR2_NSEL2_2 ((uint16_t)0x0030)
#define OPA_CTLR2_FBEN2 ((uint16_t)0x0100)
#define OPA_CTLR2_PGADIF2 ((uint16_t)0x0200)
#define OPA_CTLR2_HS2 ((uint16_t)0x0400)
/******************* Bit definition for OPA_CTLR3 register ********************/
#define OPA_CTLR3_EN3 ((uint16_t)0x0001)
#define OPA_CTLR3_MODE3 ((uint16_t)0x0006)
#define OPA_CTLR3_MODE3_0 ((uint16_t)0x0002)
#define OPA_CTLR3_MODE3_1 ((uint16_t)0x0004)
#define OPA_CTLR3_PSEL3 ((uint16_t)0x0008)
#define OPA_CTLR3_NSEL3 ((uint16_t)0x0070)
#define OPA_CTLR3_NSEL3_0 ((uint16_t)0x0010)
#define OPA_CTLR3_NSEL3_1 ((uint16_t)0x0020)
#define OPA_CTLR3_NSEL3_2 ((uint16_t)0x0030)
#define OPA_CTLR3_FBEN3 ((uint16_t)0x0100)
#define OPA_CTLR3_PGADIF3 ((uint16_t)0x0200)
#define OPA_CTLR3_HS3 ((uint16_t)0x0400)
/******************* Bit definition for CMP_CTLR register ********************/
#define OPA_CMP_CTLR_PSEL ((uint32_t)0x00000003)
#define OPA_CMP_CTLR_PSEL_0 ((uint32_t)0x00000001)
#define OPA_CMP_CTLR_PSEL_1 ((uint32_t)0x00000002)
#define OPA_CMP_CTLR_NSEL ((uint32_t)0x0000000C)
#define OPA_CMP_CTLR_NSEL_0 ((uint32_t)0x00000004)
#define OPA_CMP_CTLR_NSEL_1 ((uint32_t)0x00000008)
#define OPA_CMP_CTLR_MODE ((uint32_t)0x000000F0)
#define OPA_CMP_CTLR_MODE_0 ((uint32_t)0x00000010)
#define OPA_CMP_CTLR_MODE_1 ((uint32_t)0x00000020)
#define OPA_CMP_CTLR_MODE_2 ((uint32_t)0x00000040)
#define OPA_CMP_CTLR_MODE_3 ((uint32_t)0x00000080)
#define OPA_CMP_CTLR_EN ((uint32_t)0x00000100)
#define OPA_CMP_CTLR_HYPSEL ((uint32_t)0x00000600)
#define OPA_CMP_CTLR_HYPSEL_0 ((uint32_t)0x00000200)
#define OPA_CMP_CTLR_HYPSEL_1 ((uint32_t)0x00000400)
#define OPA_CMP_CTLR_VREF ((uint32_t)0x00001800)
#define OPA_CMP_CTLR_VREF_0 ((uint32_t)0x00000800)
#define OPA_CMP_CTLR_VREF_1 ((uint32_t)0x00001000)
#define OPA_CMP_CTLR_FILT_EN ((uint32_t)0x00002000)
#define OPA_CMP_CTLR_FILT_CFG ((uint32_t)0x01FF0000)
#define OPA_CMP_CTLR_FILT_BASE ((uint32_t)0x70000000)
/******************* Bit definition for CMP_STATR register ********************/
#define OPA_CMP_STATR_OUTFILT ((uint8_t)0x01)
/******************************************************************************/
/* Window WATCHDOG */
/******************************************************************************/
/******************* Bit definition for WWDG_CTLR register ********************/
#define WWDG_CTLR_T ((uint8_t)0x7F) /* T[6:0] bits (7-Bit counter (MSB to LSB)) */
#define WWDG_CTLR_T0 ((uint8_t)0x01) /* Bit 0 */
#define WWDG_CTLR_T1 ((uint8_t)0x02) /* Bit 1 */
#define WWDG_CTLR_T2 ((uint8_t)0x04) /* Bit 2 */
#define WWDG_CTLR_T3 ((uint8_t)0x08) /* Bit 3 */
#define WWDG_CTLR_T4 ((uint8_t)0x10) /* Bit 4 */
#define WWDG_CTLR_T5 ((uint8_t)0x20) /* Bit 5 */
#define WWDG_CTLR_T6 ((uint8_t)0x40) /* Bit 6 */
#define WWDG_CTLR_WDGA ((uint8_t)0x80) /* Activation bit */
/******************* Bit definition for WWDG_CFGR register *******************/
#define WWDG_CFGR_W ((uint16_t)0x007F) /* W[6:0] bits (7-bit window value) */
#define WWDG_CFGR_W0 ((uint16_t)0x0001) /* Bit 0 */
#define WWDG_CFGR_W1 ((uint16_t)0x0002) /* Bit 1 */
#define WWDG_CFGR_W2 ((uint16_t)0x0004) /* Bit 2 */
#define WWDG_CFGR_W3 ((uint16_t)0x0008) /* Bit 3 */
#define WWDG_CFGR_W4 ((uint16_t)0x0010) /* Bit 4 */
#define WWDG_CFGR_W5 ((uint16_t)0x0020) /* Bit 5 */
#define WWDG_CFGR_W6 ((uint16_t)0x0040) /* Bit 6 */
#define WWDG_CFGR_WDGTB ((uint16_t)0x0180) /* WDGTB[1:0] bits (Timer Base) */
#define WWDG_CFGR_WDGTB0 ((uint16_t)0x0080) /* Bit 0 */
#define WWDG_CFGR_WDGTB1 ((uint16_t)0x0100) /* Bit 1 */
#define WWDG_CFGR_EWI ((uint16_t)0x0200) /* Early Wakeup Interrupt */
/******************* Bit definition for WWDG_STATR register ********************/
#define WWDG_STATR_EWIF ((uint8_t)0x01) /* Early Wakeup Interrupt Flag */
/******************************************************************************/
/* DVP */
/******************************************************************************/
/******************* Bit definition for DVP_CR0 register ********************/
#define RB_DVP_ENABLE 0x01 // RW, DVP enable
#define RB_DVP_V_POLAR 0x02 // RW, DVP VSYNC polarity control: 1 = invert, 0 = not invert
#define RB_DVP_H_POLAR 0x04 // RW, DVP HSYNC polarity control: 1 = invert, 0 = not invert
#define RB_DVP_P_POLAR 0x08 // RW, DVP PCLK polarity control: 1 = invert, 0 = not invert
#define RB_DVP_MSK_DAT_MOD 0x30
#define RB_DVP_D8_MOD 0x00 // RW, DVP 8bits data mode
#define RB_DVP_D10_MOD 0x10 // RW, DVP 10bits data mode
#define RB_DVP_D12_MOD 0x20 // RW, DVP 12bits data mode
#define RB_DVP_JPEG 0x40 // RW, DVP JPEG mode
/******************* Bit definition for DVP_CR1 register ********************/
#define RB_DVP_DMA_EN 0x01 // RW, DVP dma enable
#define RB_DVP_ALL_CLR 0x02 // RW, DVP all clear, high action
#define RB_DVP_RCV_CLR 0x04 // RW, DVP receive logic clear, high action
#define RB_DVP_BUF_TOG 0x08 // RW, DVP bug toggle by software, write 1 to toggle, ignored writing 0
#define RB_DVP_CM 0x10 // RW, DVP capture mode
#define RB_DVP_CROP 0x20 // RW, DVP Crop feature enable
#define RB_DVP_FCRC 0xC0 // RW, DVP frame capture rate control:
#define DVP_RATE_100P 0x00 // 00 = every frame captured (100%)
#define DVP_RATE_50P 0x40 // 01 = every alternate frame captured (50%)
#define DVP_RATE_25P 0x80 // 10 = one frame in four frame captured (25%)
/******************* Bit definition for DVP_IER register ********************/
#define RB_DVP_IE_STR_FRM 0x01 // RW, DVP frame start interrupt enable
#define RB_DVP_IE_ROW_DONE 0x02 // RW, DVP row received done interrupt enable
#define RB_DVP_IE_FRM_DONE 0x04 // RW, DVP frame received done interrupt enable
#define RB_DVP_IE_FIFO_OV 0x08 // RW, DVP receive fifo overflow interrupt enable
#define RB_DVP_IE_STP_FRM 0x10 // RW, DVP frame stop interrupt enable
/******************* Bit definition for DVP_ROW_NUM register ********************/
#define RB_DVP_ROW_NUM ((uint16_t)0xFFFF)
/******************* Bit definition for DVP_COL_NUM register ********************/
#define RB_DVP_COL_NUM ((uint16_t)0xFFFF)
/******************* Bit definition for DVP_DMA_BUF0 register ********************/
#define RB_DVP_DMA_BUF0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for DVP_DMA_BUF1 register ********************/
#define RB_DVP_DMA_BUF1 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for DVP_IFR register ********************/
#define RB_DVP_IF_STR_FRM 0x01 // RW1, interrupt flag for DVP frame start
#define RB_DVP_IF_ROW_DONE 0x02 // RW1, interrupt flag for DVP row receive done
#define RB_DVP_IF_FRM_DONE 0x04 // RW1, interrupt flag for DVP frame receive done
#define RB_DVP_IF_FIFO_OV 0x08 // RW1, interrupt flag for DVP receive fifo overflow
#define RB_DVP_IF_STP_FRM 0x10 // RW1, interrupt flag for DVP frame stop
/******************* Bit definition for DVP_STATUS register ********************/
#define RB_DVP_FIFO_RDY 0x01 // RO, DVP receive fifo ready
#define RB_DVP_FIFO_FULL 0x02 // RO, DVP receive fifo full
#define RB_DVP_FIFO_OV 0x04 // RO, DVP receive fifo overflow
#define RB_DVP_MSK_FIFO_CNT 0x70 // RO, DVP receive fifo count
/******************* Bit definition for DVP_ROW_CNT register ********************/
#define RB_DVP_ROW_CNT ((uint16_t)0xFF)
/******************* Bit definition for DVP_HOFFCNT register ********************/
#define RB_DVP_HOFFCNT ((uint16_t)0xFF)
/******************* Bit definition for DVP_VST register ********************/
#define RB_DVP_VST ((uint16_t)0xFF)
/******************* Bit definition for DVP_CAPCNT register ********************/
#define RB_DVP_CAPCNT ((uint16_t)0xFF)
/******************* Bit definition for DVP_VLINE register ********************/
#define RB_DVP_VLINE ((uint16_t)0xFF)
/******************* Bit definition for DVP_DR register ********************/
#define RB_DVP_DR ((uint16_t)0xFF)
/******************************************************************************/
/* TKEY */
/******************************************************************************/
/******************* Bit definition for TKEY_CHARGE1 register *******************/
#define TKEY_CHARGE1_TKCG10 ((uint32_t)0x0007)
#define TKEY_CHARGE1_TKCG10_1C5 ((uint32_t)0x0000)
#define TKEY_CHARGE1_TKCG10_7C5 ((uint32_t)0x0001)
#define TKEY_CHARGE1_TKCG10_13C5 ((uint32_t)0x0002)
#define TKEY_CHARGE1_TKCG10_28C5 ((uint32_t)0x0003)
#define TKEY_CHARGE1_TKCG10_41C5 ((uint32_t)0x0004)
#define TKEY_CHARGE1_TKCG10_55C5 ((uint32_t)0x0005)
#define TKEY_CHARGE1_TKCG10_71C5 ((uint32_t)0x0006)
#define TKEY_CHARGE1_TKCG10_239C5 ((uint32_t)0x0007)
#define TKEY_CHARGE1_TKCG11 ((uint32_t)0x0038)
#define TKEY_CHARGE1_TKCG11_1C5 ((uint32_t)0x0000)
#define TKEY_CHARGE1_TKCG11_7C5 ((uint32_t)0x0008)
#define TKEY_CHARGE1_TKCG11_13C5 ((uint32_t)0x0010)
#define TKEY_CHARGE1_TKCG11_28C5 ((uint32_t)0x0018)
#define TKEY_CHARGE1_TKCG11_41C5 ((uint32_t)0x0020)
#define TKEY_CHARGE1_TKCG11_55C5 ((uint32_t)0x0028)
#define TKEY_CHARGE1_TKCG11_71C5 ((uint32_t)0x0030)
#define TKEY_CHARGE1_TKCG11_239C5 ((uint32_t)0x0038)
#define TKEY_CHARGE1_TKCG12 ((uint32_t)0x01C0)
#define TKEY_CHARGE1_TKCG12_1C5 ((uint32_t)0x0000)
#define TKEY_CHARGE1_TKCG12_7C5 ((uint32_t)0x0040)
#define TKEY_CHARGE1_TKCG12_13C5 ((uint32_t)0x0080)
#define TKEY_CHARGE1_TKCG12_28C5 ((uint32_t)0x00C0)
#define TKEY_CHARGE1_TKCG12_41C5 ((uint32_t)0x0100)
#define TKEY_CHARGE1_TKCG12_55C5 ((uint32_t)0x0140)
#define TKEY_CHARGE1_TKCG12_71C5 ((uint32_t)0x0180)
#define TKEY_CHARGE1_TKCG12_239C5 ((uint32_t)0x01C0)
#define TKEY_CHARGE1_TKCG13 ((uint32_t)0x0E00)
#define TKEY_CHARGE1_TKCG13_1C5 ((uint32_t)0x0000)
#define TKEY_CHARGE1_TKCG13_7C5 ((uint32_t)0x0200)
#define TKEY_CHARGE1_TKCG13_13C5 ((uint32_t)0x0400)
#define TKEY_CHARGE1_TKCG13_28C5 ((uint32_t)0x0600)
#define TKEY_CHARGE1_TKCG13_41C5 ((uint32_t)0x0800)
#define TKEY_CHARGE1_TKCG13_55C5 ((uint32_t)0x0A00)
#define TKEY_CHARGE1_TKCG13_71C5 ((uint32_t)0x0C00)
#define TKEY_CHARGE1_TKCG13_239C5 ((uint32_t)0x0E00)
#define TKEY_CHARGE1_TKCG14 ((uint32_t)0x7000)
#define TKEY_CHARGE1_TKCG15 ((uint32_t)0x38000)
/******************************************************************************/
/* SDMMC */
/******************************************************************************/
/******************* Bit definition for SDMMC_ARGUMENT register *******************/
#define SDMMC_ARGUMENT ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_CMD_SET register *******************/
#define SDMMC_CMDIDX_MASK ((uint16_t)0x003F)
#define SDMMC_RPTY_MASK ((uint16_t)0x0300)
#define SDMMC_CKCRC ((uint16_t)0x0400)
#define SDMMC_CKIDX ((uint16_t)0x0800)
/******************* Bit definition for SDMMC_RESPONSE0 register *******************/
#define SDMMC_RESPONSE0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_RESPONSE1 register *******************/
#define SDMMC_RESPONSE1 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_RESPONSE2 register *******************/
#define SDMMC_RESPONSE2 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_RESPONSE3 register *******************/
#define SDMMC_RESPONSE3 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_WRITE_CONT register *******************/
#define SDMMC_WRITE_CONT ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_CONTROL register *******************/
#define SDMMC_LW_MASK ((uint16_t)0x0003)
#define SDMMC_LW_MASK_0 ((uint16_t)0x0001)
#define SDMMC_LW_MASK_1 ((uint16_t)0x0002)
#define SDMMC_ALL_CLR ((uint16_t)0x0004)
#define SDMMC_DMAEN ((uint16_t)0x0008)
#define SDMMC_RST_LGC ((uint16_t)0x0010)
#define SDMMC_NEGSMP ((uint16_t)0x0020)
#define SDMMC_SLV_MODE ((uint16_t)0x0100)
#define SDMMC_SLV_FORCE_ERR ((uint16_t)000200)
/******************* Bit definition for SDMMC_TIMEOUT register *******************/
#define SDMMC_TOCNT_MASK ((uint8_t)0x0F)
/******************* Bit definition for SDMMC_STATUS register *******************/
#define SDMMC_MASK_BLOCK_NUM ((uint16_t)0xFFFF)
#define SDMMC_CMDSTA ((uint32_t)0x00010000)
#define SDMMC_DAT0STA ((uint32_t)0x00020000)
/******************* Bit definition for SDMMC_INT_FG register *******************/
#define SDMMC_IF_RE_TMOUT ((uint16_t)0x0001)
#define SDMMC_IF_RECRC_WR ((uint16_t)0x0002)
#define SDMMC_IF_REIDX_ER ((uint16_t)0x0004)
#define SDMMC_IF_CMDDONE ((uint16_t)0x0008)
#define SDMMC_IF_DATTMO ((uint16_t)0x0010)
#define SDMMC_IF_TRANERR ((uint16_t)0x0020)
#define SDMMC_IF_TRANDONE ((uint16_t)0x0040)
#define SDMMC_IF_BKGAP ((uint16_t)0x0080)
#define SDMMC_IF_FIFO_OV ((uint16_t)0x0100)
#define SDMMC_IF_SDIOINT ((uint16_t)0x0200)
#define SDMMC_SIF_SLV_BUF_RELEAS ((uint16_t)0x0400)
/******************* Bit definition for SDMMC_INT_EN register *******************/
#define SDMMC_IE_RE_TMOUT ((uint16_t)0x0001)
#define SDMMC_IE_RECRC_WR ((uint16_t)0x0002)
#define SDMMC_IE_REIDX_ER ((uint16_t)0x0004)
#define SDMMC_IE_CMDDONE ((uint16_t)0x0008)
#define SDMMC_IE_DATTMO ((uint16_t)0x0010)
#define SDMMC_IE_TRANERR ((uint16_t)0x0020)
#define SDMMC_IE_TRANDONE ((uint16_t)0x0040)
#define SDMMC_IE_FIFO_OV ((uint16_t)0x0080)
#define SDMMC_IE_SDIOINT ((uint16_t)0x0100)
/******************* Bit definition for SDMMC_DMA_BEG1 register *******************/
#define SDMMC_DMAAD1_MASK ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_BLOCK_CFG register *******************/
#define SDMMC_BKNUM_MASK ((uint32_t)0x0000FFFF)
#define SDMMC_BKSIZE_MASK ((uint32_t)0x0FFF0000)
/******************* Bit definition for SDMMC_TRAN_MODE register *******************/
#define SDMMC_DMA_DIR ((uint32_t)0x00000001)
#define SDMMC_GAP_STOP ((uint32_t)0x00000002)
#define SDMMC_MODE_BOOT ((uint32_t)0x00000004)
#define SDMMC_AUTOGAPSTOP ((uint32_t)0x00000010)
#define SDMMC_DMATN_CNT ((uint32_t)0x00007F00)
#define SDMMC_DULEDMA_EN ((uint32_t)0x00010000)
#define SDMMC_DDR_MODE ((uint32_t)0x00020000)
#define SDMMC_CARE_NEG ((uint32_t)0x00040000)
#define SDMMC_SW ((uint32_t)0x00180000)
#define SDMMC_SW_0 ((uint32_t)0x00080000)
#define SDMMC_SW_1 ((uint32_t)0x00100000)
/******************* Bit definition for SDMMC_CLK_DIV register *******************/
#define SDMMC_DIV_MASK ((uint32_t)0x0000001F)
#define SDMMC_CLKOE ((uint32_t)0x00000100)
#define SDMMC_CLKMode ((uint32_t)0x00000200)
#define SDMMC_PHASEINV ((uint32_t)0x00000400)
/******************* Bit definition for SDMMC_DMA_BEG2 register *******************/
#define SDMMC_DMAAD2_MASK ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SDMMC_TUNE_DATO register *******************/
#define SDMMC_TUNNE_DAT0_O ((uint32_t)0x0000000F)
#define SDMMC_TUNNE_DAT1_O ((uint32_t)0x000000F0)
#define SDMMC_TUNNE_DAT2_O ((uint32_t)0x00000F00)
#define SDMMC_TUNNE_DAT3_O ((uint32_t)0x0000F000)
#define SDMMC_TUNNE_DAT4_O ((uint32_t)0x000F0000)
#define SDMMC_TUNNE_DAT5_O ((uint32_t)0x00F00000)
#define SDMMC_TUNNE_DAT6_O ((uint32_t)0x0F000000)
#define SDMMC_TUNNE_DAT7_O ((uint32_t)0xF0000000)
/******************* Bit definition for SDMMC_TUNE_DATI register *******************/
#define SDMMC_TUNNE_DAT0_I ((uint32_t)0x0000000F)
#define SDMMC_TUNNE_DAT1_I ((uint32_t)0x000000F0)
#define SDMMC_TUNNE_DAT2_I ((uint32_t)0x00000F00)
#define SDMMC_TUNNE_DAT3_I ((uint32_t)0x0000F000)
#define SDMMC_TUNNE_DAT4_I ((uint32_t)0x000F0000)
#define SDMMC_TUNNE_DAT5_I ((uint32_t)0x00F00000)
#define SDMMC_TUNNE_DAT6_I ((uint32_t)0x0F000000)
#define SDMMC_TUNNE_DAT7_I ((uint32_t)0xF0000000)
/******************* Bit definition for SDMMC_TUNE_CLK_CMD register *******************/
#define SDMMC_TUNNE_CLK_O ((uint32_t)0x0000000F)
#define SDMMC_TUNNE_CLK_I ((uint32_t)0x000000F0)
#define SDMMC_TUNNE_CMD_O ((uint32_t)0x000F0000)
#define SDMMC_TUNNE_CMD_I ((uint32_t)0x00F00000)
/******************* Bit definition for SDMMC_ARGUMENT register *******************/
#define EMMC_ARGUMENT SDMMC_ARGUMENT
/******************* Bit definition for SDMMC_CMD_SET register *******************/
#define EMMC_CMDIDX_MASK SDMMC_CMDIDX_MASK
#define EMMC_RPTY_MASK SDMMC_RPTY_MASK
#define EMMC_CKCRC SDMMC_CKCRC
#define EMMC_CKIDX SDMMC_CKIDX
/******************* Bit definition for SDMMC_RESPONSE0 register *******************/
#define EMMC_RESPONSE0 SDMMC_RESPONSE0
/******************* Bit definition for SDMMC_RESPONSE1 register *******************/
#define EMMC_RESPONSE1 SDMMC_RESPONSE1
/******************* Bit definition for SDMMC_RESPONSE2 register *******************/
#define EMMC_RESPONSE2 SDMMC_RESPONSE2
/******************* Bit definition for SDMMC_RESPONSE3 register *******************/
#define EMMC_RESPONSE3 SDMMC_RESPONSE3
/******************* Bit definition for SDMMC_WRITE_CONT register *******************/
#define EMMC_WRITE_CONT SDMMC_WRITE_CONT
/******************* Bit definition for SDMMC_CONTROL register *******************/
#define EMMC_LW_MASK SDMMC_LW_MASK
#define EMMC_LW_MASK_0 SDMMC_LW_MASK_0
#define EMMC_LW_MASK_1 SDMMC_LW_MASK_1
#define EMMC_ALL_CLR SDMMC_ALL_CLR
#define EMMC_DMAEN SDMMC_DMAEN
#define EMMC_RST_LGC SDMMC_RST_LGC
#define EMMC_NEGSMP SDMMC_NEGSMP
#define EMMC_SLV_MODE SDMMC_SLV_MODE
#define EMMC_SLV_FORCE_ERR SDMMC_SLV_FORCE_ERR
/******************* Bit definition for SDMMC_TIMEOUT register *******************/
#define EMMC_TOCNT_MASK SDMMC_TOCNT_MASK
/******************* Bit definition for SDMMC_STATUS register *******************/
#define EMMC_MASK_BLOCK_NUM SDMMC_MASK_BLOCK_NUM
#define EMMC_CMDSTA SDMMC_CMDSTA
#define EMMC_DAT0STA SDMMC_DAT0STA
/******************* Bit definition for SDMMC_INT_FG register *******************/
#define EMMC_IF_RE_TMOUT SDMMC_IF_RE_TMOUT
#define EMMC_IF_RECRC_WR SDMMC_IF_RECRC_WR
#define EMMC_IF_REIDX_ER SDMMC_IF_REIDX_ER
#define EMMC_IF_CMDDONE SDMMC_IF_CMDDONE
#define EMMC_IF_DATTMO SDMMC_IF_DATTMO
#define EMMC_IF_TRANERR SDMMC_IF_TRANERR
#define EMMC_IF_TRANDONE SDMMC_IF_TRANDONE
#define EMMC_IF_BKGAP SDMMC_IF_BKGAP
#define EMMC_IF_FIFO_OV SDMMC_IF_FIFO_OV
#define EMMC_IF_SDIOINT SDMMC_IF_SDIOINT
#define EMMC_SIF_SLV_BUF_RELEAS SDMMC_SIF_SLV_BUF_RELEAS
/******************* Bit definition for SDMMC_INT_EN register *******************/
#define EMMC_IE_RE_TMOUT SDMMC_IE_RE_TMOUT
#define EMMC_IE_RECRC_WR SDMMC_IE_RECRC_WR
#define EMMC_IE_REIDX_ER SDMMC_IE_REIDX_ER
#define EMMC_IE_CMDDONE SDMMC_IE_CMDDONE
#define EMMC_IE_DATTMO SDMMC_IE_DATTMO
#define EMMC_IE_TRANERR SDMMC_IE_TRANERR
#define EMMC_IE_TRANDONE SDMMC_IE_TRANDONE
#define EMMC_IE_FIFO_OV SDMMC_IE_FIFO_OV
#define EMMC_IE_SDIOINT SDMMC_IE_SDIOINT
/******************* Bit definition for SDMMC_DMA_BEG1 register *******************/
#define EMMC_DMAAD1_MASK SDMMC_DMAAD1_MASK
/******************* Bit definition for SDMMC_BLOCK_CFG register *******************/
#define EMMC_BKNUM_MASK SDMMC_BKNUM_MASK
#define EMMC_BKSIZE_MASK SDMMC_BKSIZE_MASK
/******************* Bit definition for SDMMC_TRAN_MODE register *******************/
#define EMMC_DMA_DIR SDMMC_DMA_DIR
#define EMMC_GAP_STOP SDMMC_GAP_STOP
#define EMMC_MODE_BOOT SDMMC_MODE_BOOT
#define EMMC_AUTOGAPSTOP SDMMC_AUTOGAPSTOP
#define EMMC_DMATN_CNT SDMMC_DMATN_CNT
#define EMMC_DULEDMA_EN SDMMC_DULEDMA_EN
#define EMMC_DDR_MODE SDMMC_DDR_MODE
#define EMMC_CARE_NEG SDMMC_CARE_NEG
#define EMMC_SW SDMMC_SW
#define EMMC_SW_0 SDMMC_SW_0
#define EMMC_SW_1 SDMMC_SW_1
/******************* Bit definition for SDMMC_CLK_DIV register *******************/
#define EMMC_DIV_MASK SDMMC_DIV_MASK
#define EMMC_CLKOE SDMMC_CLKOE
#define EMMC_CLKMode SDMMC_CLKMode
#define EMMC_PHASEINV SDMMC_PHASEINV
/******************* Bit definition for SDMMC_DMA_BEG2 register *******************/
#define EMMC_DMAAD2_MASK SDMMC_DMAAD2_MASK
/******************* Bit definition for SDMMC_TUNE_DATO register *******************/
#define EMMC_TUNNE_DAT0_O SDMMC_TUNNE_DAT0_O
#define EMMC_TUNNE_DAT1_O SDMMC_TUNNE_DAT1_O
#define EMMC_TUNNE_DAT2_O SDMMC_TUNNE_DAT2_O
#define EMMC_TUNNE_DAT3_O SDMMC_TUNNE_DAT3_O
#define EMMC_TUNNE_DAT4_O SDMMC_TUNNE_DAT4_O
#define EMMC_TUNNE_DAT5_O SDMMC_TUNNE_DAT5_O
#define EMMC_TUNNE_DAT6_O SDMMC_TUNNE_DAT6_O
#define EMMC_TUNNE_DAT7_O SDMMC_TUNNE_DAT7_O
/******************* Bit definition for SDMMC_TUNE_DATI register *******************/
#define EMMC_TUNNE_DAT0_I SDMMC_TUNNE_DAT0_I
#define EMMC_TUNNE_DAT1_I SDMMC_TUNNE_DAT1_I
#define EMMC_TUNNE_DAT2_I SDMMC_TUNNE_DAT2_I
#define EMMC_TUNNE_DAT3_I SDMMC_TUNNE_DAT3_I
#define EMMC_TUNNE_DAT4_I SDMMC_TUNNE_DAT4_I
#define EMMC_TUNNE_DAT5_I SDMMC_TUNNE_DAT5_I
#define EMMC_TUNNE_DAT6_I SDMMC_TUNNE_DAT6_I
#define EMMC_TUNNE_DAT7_I SDMMC_TUNNE_DAT7_I
/******************* Bit definition for SDMMC_TUNE_CLK_CMD register *******************/
#define EMMC_TUNNE_CLK_O SDMMC_TUNNE_CLK_O
#define EMMC_TUNNE_CLK_I SDMMC_TUNNE_CLK_I
#define EMMC_TUNNE_CMD_O SDMMC_TUNNE_CMD_O
#define EMMC_TUNNE_CMD_I SDMMC_TUNNE_CMD_I
/******************************************************************************/
/* SAI */
/******************************************************************************/
/******************* Bit definition for SAI_xCFGR1 register *******************/
#define SAI_CFGR1_MODE ((uint32_t)0x00000003)
#define SAI_CFGR1_MODE_0 ((uint32_t)0x00000001)
#define SAI_CFGR1_MODE_1 ((uint32_t)0x00000002)
#define SAI_CFGR1_PRTCFG ((uint32_t)0x0000000C)
#define SAI_CFGR1_PRTCFG_0 ((uint32_t)0x00000004)
#define SAI_CFGR1_PRTCFG_1 ((uint32_t)0x00000008)
#define SAI_CFGR1_DS ((uint32_t)0x000000E0)
#define SAI_CFGR1_DS_0 ((uint32_t)0x00000020)
#define SAI_CFGR1_DS_1 ((uint32_t)0x00000040)
#define SAI_CFGR1_DS_2 ((uint32_t)0x00000080)
#define SAI_CFGR1_LSBFIRST ((uint32_t)0x00000100)
#define SAI_CFGR1_CKSTR ((uint32_t)0x00000200)
#define SAI_CFGR1_SYNCEN ((uint32_t)0x00000C00)
#define SAI_CFGR1_SYNCEN_0 ((uint32_t)0x00000400)
#define SAI_CFGR1_SYNCEN_1 ((uint32_t)0x00000800)
#define SAI_CFGR1_MONO ((uint32_t)0x00001000)
#define SAI_CFGR1_EN ((uint32_t)0x00010000)
#define SAI_CFGR1_DMAEN ((uint32_t)0x00020000)
#define SAI_CFGR1_NODIV ((uint32_t)0x00080000)
#define SAI_CFGR1_MCKDIV ((uint32_t)0x03F00000)
#define SAI_CFGR1_OSR ((uint32_t)0x04000000)
/******************* Bit definition for SAI_xCFGR2 register *******************/
#define SAI_CFGR2_FTH ((uint32_t)0x00000007)
#define SAI_CFGR2_FTH_0 ((uint32_t)0x00000001)
#define SAI_CFGR2_FTH_1 ((uint32_t)0x00000002)
#define SAI_CFGR2_FTH_2 ((uint32_t)0x00000004)
#define SAI_CFGR2_FFLUSH ((uint32_t)0x00000008)
#define SAI_CFGR2_TRIS ((uint32_t)0x00000010)
#define SAI_CFGR2_MUTE ((uint32_t)0x00000020)
#define SAI_CFGR2_MUTEVAL ((uint32_t)0x00000040)
#define SAI_CFGR2_MUTECNT ((uint32_t)0x00001F80)
#define SAI_CFGR2_CPL ((uint32_t)0x00002000)
#define SAI_CFGR2_COMP ((uint32_t)0x0000C000)
/******************* Bit definition for SAI_xFRCR register *******************/
#define SAI_FRCR_FRL ((uint32_t)0x000000FF)
#define SAI_FRCR_FSALL ((uint32_t)0x00007F00)
#define SAI_FRCR_FSDEF ((uint32_t)0x00010000)
#define SAI_FRCR_FSPOL ((uint32_t)0x00020000)
#define SAI_FRCR_FSOFF ((uint32_t)0x00040000)
/******************* Bit definition for SAI_xSLOTR register *******************/
#define SAI_SLOTR_FBOFF ((uint32_t)0x0000001F)
#define SAI_SLOTR_SLOTSZ ((uint32_t)0x000000C0)
#define SAI_SLOTR_NBSLOT ((uint32_t)0x00000F00)
#define SAI_SLOTR_SLOTEN ((uint32_t)0xFFFF0000)
/******************* Bit definition for SAI_xINTENR register *******************/
#define SAI_INTENR_OVRUDRIE ((uint32_t)0x00000001)
#define SAI_INTENR_MUTEDETIE ((uint32_t)0x00000002)
#define SAI_INTENR_WCKCFGIE ((uint32_t)0x00000004)
#define SAI_INTENR_FREQIE ((uint32_t)0x00000008)
#define SAI_INTENR_CNRDYIE ((uint32_t)0x00000010)
#define SAI_INTENR_AFSDETIE ((uint32_t)0x00000020)
#define SAI_INTENR_LFSDETIE ((uint32_t)0x00000040)
/********************* Bit definition for SAI_xSR register *********************/
#define SAI_SR_OVRUDR ((uint32_t)0x00000001)
#define SAI_SR_MUTEDET ((uint32_t)0x00000002)
#define SAI_SR_WCKCFG ((uint32_t)0x00000004)
#define SAI_SR_FREQ ((uint32_t)0x00000008)
#define SAI_SR_CNRDY ((uint32_t)0x00000010)
#define SAI_SR_AFSDET ((uint32_t)0x00000020)
#define SAI_SR_LFSDET ((uint32_t)0x00000040)
#define SAI_SR_FLTH ((uint32_t)0x00070000)
#define SAI_SR_FLTH_0 ((uint32_t)0x00010000)
#define SAI_SR_FLTH_1 ((uint32_t)0x00020000)
#define SAI_SR_FLTH_2 ((uint32_t)0x00030000)
/********************* Bit definition for SAI_xDATAR register *********************/
#define SAI_DATAR_DR ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* SERDES */
/******************************************************************************/
/********************* Bit definition for SERDES_CTRL register *********************/
#define SDS_CLR_ALL ((uint32_t)0x00000001)
#define SDS_RESET_LINK ((uint32_t)0x00000002)
#define SDS_RESET_PHY ((uint32_t)0x00000004)
#define SDS_INT_BUSY_EN ((uint32_t)0x00000008)
#define SDS_RX_POLARITY ((uint32_t)0x00000010)
#define SDS_RX_EN ((uint32_t)0x00000020)
#define SDS_TX_EN ((uint32_t)0x00000040)
#define SDS_DMA_EN ((uint32_t)0x00000080)
#define SDS_PLL_FACTOR ((uint32_t)0x00001F00)
#define SDS_PLL_PWR_UP ((uint32_t)0x00002000)
#define SDS_RX_PWR_UP ((uint32_t)0x00004000)
#define SDS_TX_PWR_UP ((uint32_t)0x00008000)
#define SDS_PHY_PWR_UP ((uint32_t)0x00010000)
#define SDS_CONT_EN ((uint32_t)0x00020000)
#define SDS_ALIGN_EN ((uint32_t)0x00040000)
/********************* Bit definition for SERDES_INT_EN register *********************/
#define SDS_PHYRDY_IE ((uint32_t)0x00000001)
#define SDS_RECV_ERR_IE ((uint32_t)0x00000002)
#define SDS_TRAN_DONE_IE ((uint32_t)0x00000002)
#define SDS_RECV_DONE_IE ((uint32_t)0x00000004)
#define SDS_FIFO_OV_IE ((uint32_t)0x00000008)
#define SDS_COMINIT_IE ((uint32_t)0x00000020)
/********************* Bit definition for SERDES_INT_FG register *********************/
#define SDS_PHYRDY_IF ((uint32_t)0x00000001)
#define SDS_RECV_ERR_IF ((uint32_t)0x00000002)
#define SDS_TRAN_DONE_IF ((uint32_t)0x00000002)
#define SDS_RECV_DONE_IF ((uint32_t)0x00000004)
#define SDS_FIFO_OV_IF ((uint32_t)0x00000008)
#define SDS_COMINIT_IF ((uint32_t)0x00000020)
#define SDS_PHYRDY ((uint32_t)0x00010000)
#define SDS_RX_SEQ_MATCH ((uint32_t)0x00020000)
#define SDS_RECV_CRC_OK ((uint32_t)0x00040000)
#define SDS_PLL_LOCK ((uint32_t)0x00080000)
#define SDS_LINK_FREE ((uint32_t)0x00100000)
#define SDS_R_FIFO_RDY ((uint32_t)0x00200000)
#define SDS_RX_SEQ_NUM ((uint32_t)0x0F000000)
#define SDS_TX_SEQ_NUM ((uint32_t)0xF0000000)
/********************* Bit definition for SERDES_RTX_CTRL register *********************/
#define SDS_SERDES_TX_LEN ((uint32_t)0x0000FFFF)
#define SDS_LINK_INIT ((uint32_t)0x00010000)
#define SDS_TX_VLD ((uint32_t)0x00020000)
#define SDS_BUF_MODE ((uint32_t)0x00040000)
/********************* Bit definition for SERDES_RX_LEN0 register *********************/
#define SDS_SERDES_RX_LEN0 ((uint32_t)0x0000FFFF)
/********************* Bit definition for SERDES_DATA0 register *********************/
#define SDS_SERDES_DATA0 ((uint32_t)0xFFFFFFFF)
/********************* Bit definition for SERDES_DMA0 register *********************/
#define SDS_SERDES_DMA0 ((uint32_t)0xFFFFFFFF)
/********************* Bit definition for SERDES_RX_LEN1 register *********************/
#define SDS_SERDES_RX_LEN1 ((uint32_t)0x0000FFFF)
/********************* Bit definition for SERDES_DATA1 register *********************/
#define SDS_SERDES_DATA1 ((uint32_t)0xFFFFFFFF)
/********************* Bit definition for SERDES_DMA1 register *********************/
#define SDS_SERDES_DMA1 ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* SWPMI */
/******************************************************************************/
/******************* Bit definition for SWPMI_CR register *******************/
#define SWPMI_RXDMA ((uint32_t)0x00000001)
#define SWPMI_TXDMA ((uint32_t)0x00000002)
#define SWPMI_RXMODE ((uint32_t)0x00000004)
#define SWPMI_TXMODE ((uint32_t)0x00000008)
#define SWPMI_LPBK ((uint32_t)0x00000010)
#define SWPMI_SWPACT ((uint32_t)0x00000020)
#define SWPMI_DEACT ((uint32_t)0x00000400)
#define SWPMI_SWPTEN ((uint32_t)0x00000800)
/******************* Bit definition for SWPMI_BRR register *******************/
#define SWPMI_BR ((uint32_t)0x000000FF)
/******************* Bit definition for SWPMI_ISR register *******************/
#define SWPMI_RXBFF ((uint32_t)0x00000001)
#define SWPMI_TXBEF ((uint32_t)0x00000002)
#define SWPMI_RXBERF ((uint32_t)0x00000004)
#define SWPMI_RXOVRF ((uint32_t)0x00000008)
#define SWPMI_TXUNRF ((uint32_t)0x00000010)
#define SWPMI_RXNE ((uint32_t)0x00000020)
#define SWPMI_TXE ((uint32_t)0x00000040)
#define SWPMI_TCF ((uint32_t)0x00000080)
#define SWPMI_SRF ((uint32_t)0x00000100)
#define SWPMI_SUSP ((uint32_t)0x00000200)
#define SWPMI_DEACTF ((uint32_t)0x00000400)
#define SWPMI_RDYF ((uint32_t)0x00000800)
/******************* Bit definition for SWPMI_ICR register *******************/
#define SWPMI_CRXBFF ((uint32_t)0x00000001)
#define SWPMI_CTXBEF ((uint32_t)0x00000002)
#define SWPMI_CRXBERF ((uint32_t)0x00000004)
#define SWPMI_CRXOVRF ((uint32_t)0x00000008)
#define SWPMI_CTXUNRF ((uint32_t)0x00000010)
#define SWPMI_CTCF ((uint32_t)0x00000080)
#define SWPMI_CSRF ((uint32_t)0x00000100)
#define SWPMI_CRDYF ((uint32_t)0x00000800)
/******************* Bit definition for SWPMI_IER register *******************/
#define SWPMI_RXBFIE ((uint32_t)0x00000001)
#define SWPMI_TXBEIE ((uint32_t)0x00000002)
#define SWPMI_RXBERIE ((uint32_t)0x00000004)
#define SWPMI_RXOVRIE ((uint32_t)0x00000008)
#define SWPMI_TXUNRIE ((uint32_t)0x00000010)
#define SWPMI_RIE ((uint32_t)0x00000020)
#define SWPMI_TIE ((uint32_t)0x00000040)
#define SWPMI_TCIE ((uint32_t)0x00000080)
#define SWPMI_SRIE ((uint32_t)0x00000100)
#define SWPMI_RDYIE ((uint32_t)0x00000800)
/******************* Bit definition for SWPMI_RFL register *******************/
#define SWPMI_RFL ((uint32_t)0x0000001F)
/******************* Bit definition for SWPMI_TDR register *******************/
#define SWPMI_TD ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for SWPMI_OR register *******************/
#define SWPMI_SWP_TBYP ((uint32_t)0x00000001)
#define SWPMI_SWP_ISEL ((uint32_t)0x0000000C)
#define SWPMI_SWP_ISEL_0 ((uint32_t)0x00000004)
#define SWPMI_SWP_ISEL_1 ((uint32_t)0x00000008)
/******************************************************************************/
/* FMC */
/******************************************************************************/
/******************* Bit definition for FMC_BCR1 register *******************/
#define FMC_BCR1_MBKEN ((uint32_t)0x00000001)
#define FMC_BCR1_MUXEN ((uint32_t)0x00000002)
#define FMC_BCR1_MTYP ((uint32_t)0x0000000C)
#define FMC_BCR1_MTYP_0 ((uint32_t)0x00000004)
#define FMC_BCR1_MTYP_1 ((uint32_t)0x00000008)
#define FMC_BCR1_MWID ((uint32_t)0x00000030)
#define FMC_BCR1_MWID_0 ((uint32_t)0x00000010)
#define FMC_BCR1_MWID_1 ((uint32_t)0x00000020)
#define FMC_BCR1_MFACCEN ((uint32_t)0x00000040)
#define FMC_BCR1_BURSTEN ((uint32_t)0x00000100)
#define FMC_BCR1_WAITPOL ((uint32_t)0x00000200)
#define FMC_BCR1_WAITCFG ((uint32_t)0x00000800)
#define FMC_BCR1_WREN ((uint32_t)0x00001000)
#define FMC_BCR1_WAITEN ((uint32_t)0x00002000)
#define FMC_BCR1_EXTMOD ((uint32_t)0x00004000)
#define FMC_BCR1_ASYNCWAIT ((uint32_t)0x00008000)
#define FMC_BCR1_CPSIZE ((uint32_t)0x00070000)
#define FMC_BCR1_CPSIZE_0 ((uint32_t)0x00010000)
#define FMC_BCR1_CPSIZE_1 ((uint32_t)0x00020000)
#define FMC_BCR1_CPSIZE_2 ((uint32_t)0x00040000)
#define FMC_BCR1_CBURSTRW ((uint32_t)0x00080000)
#define FMC_BCR1_BMP ((uint32_t)0x03000000)
#define FMC_BCR1_BMP_0 ((uint32_t)0x01000000)
#define FMC_BCR1_BMP_1 ((uint32_t)0x02000000)
#define FMC_BCR1_FMCEN ((uint32_t)0x80000000)
/******************* Bit definition for FMC_BCR2 register *******************/
#define FMC_BCR2_MBKEN ((uint32_t)0x00000001)
#define FMC_BCR2_MUXEN ((uint32_t)0x00000002)
#define FMC_BCR2_MTYP ((uint32_t)0x0000000C)
#define FMC_BCR2_MTYP_0 ((uint32_t)0x00000004)
#define FMC_BCR2_MTYP_1 ((uint32_t)0x00000008)
#define FMC_BCR2_MWID ((uint32_t)0x00000030)
#define FMC_BCR2_MWID_0 ((uint32_t)0x00000010)
#define FMC_BCR2_MWID_1 ((uint32_t)0x00000020)
#define FMC_BCR2_FACCEN ((uint32_t)0x00000040)
#define FMC_BCR2_BURSTEN ((uint32_t)0x00000100)
#define FMC_BCR2_WAITPOL ((uint32_t)0x00000200)
#define FMC_BCR2_WAITCFG ((uint32_t)0x00000800)
#define FMC_BCR2_WREN ((uint32_t)0x00001000)
#define FMC_BCR2_WAITEN ((uint32_t)0x00002000)
#define FMC_BCR2_EXTMOD ((uint32_t)0x00004000)
#define FMC_BCR2_ASYNCWAIT ((uint32_t)0x00008000)
#define FMC_BCR2_CPSZIE ((uint32_t)0x00070000)
#define FMC_BCR2_CPSZIE_0 ((uint32_t)0x00010000)
#define FMC_BCR2_CPSZIE_1 ((uint32_t)0x00020000)
#define FMC_BCR2_CPSZIE_2 ((uint32_t)0x00040000)
#define FMC_BCR2_CBURSTRW ((uint32_t)0x00080000)
#define FMC_BCR2_BMP ((uint32_t)0x03000000)
#define FMC_BCR2_BMP_0 ((uint32_t)0x01000000)
#define FMC_BCR2_BMP_1 ((uint32_t)0x02000000)
#define FMC_BCR2_FMCEN ((uint32_t)0x80000000)
/******************* Bit definition for FMC_BCR3 register *******************/
#define FMC_BCR3_MBKEN ((uint32_t)0x00000001)
#define FMC_BCR3_MUXEN ((uint32_t)0x00000002)
#define FMC_BCR3_MTYP ((uint32_t)0x0000000C)
#define FMC_BCR3_MTYP_0 ((uint32_t)0x00000004)
#define FMC_BCR3_MTYP_1 ((uint32_t)0x00000008)
#define FMC_BCR3_MWID ((uint32_t)0x00000030)
#define FMC_BCR3_MWID_0 ((uint32_t)0x00000010)
#define FMC_BCR3_MWID_1 ((uint32_t)0x00000020)
#define FMC_BCR3_FACCEN ((uint32_t)0x00000040)
#define FMC_BCR3_BURSTEN ((uint32_t)0x00000100)
#define FMC_BCR3_WAITPOL ((uint32_t)0x00000200)
#define FMC_BCR3_WAITCFG ((uint32_t)0x00000800)
#define FMC_BCR3_WREN ((uint32_t)0x00001000)
#define FMC_BCR3_WAITEN ((uint32_t)0x00002000)
#define FMC_BCR3_EXTMOD ((uint32_t)0x00004000)
#define FMC_BCR3_ASYNCWAIT ((uint32_t)0x00008000)
#define FMC_BCR3_CPSZIE ((uint32_t)0x00070000)
#define FMC_BCR3_CPSZIE_0 ((uint32_t)0x00010000)
#define FMC_BCR3_CPSZIE_1 ((uint32_t)0x00020000)
#define FMC_BCR3_CPSZIE_2 ((uint32_t)0x00040000)
#define FMC_BCR3_CBURSTRW ((uint32_t)0x00080000)
#define FMC_BCR3_BMP ((uint32_t)0x03000000)
#define FMC_BCR3_BMP_0 ((uint32_t)0x01000000)
#define FMC_BCR3_BMP_1 ((uint32_t)0x02000000)
#define FMC_BCR3_FMCEN ((uint32_t)0x80000000)
/******************* Bit definition for FMC_BCR4 register *******************/
#define FMC_BCR4_MBKEN ((uint32_t)0x00000001)
#define FMC_BCR4_MUXEN ((uint32_t)0x00000002)
#define FMC_BCR4_MTYP ((uint32_t)0x0000000C)
#define FMC_BCR4_MTYP_0 ((uint32_t)0x00000004)
#define FMC_BCR4_MTYP_1 ((uint32_t)0x00000008)
#define FMC_BCR4_MWID ((uint32_t)0x00000030)
#define FMC_BCR4_MWID_0 ((uint32_t)0x00000010)
#define FMC_BCR4_MWID_1 ((uint32_t)0x00000020)
#define FMC_BCR4_FACCEN ((uint32_t)0x00000040)
#define FMC_BCR4_BURSTEN ((uint32_t)0x00000100)
#define FMC_BCR4_WAITPOL ((uint32_t)0x00000200)
#define FMC_BCR4_WAITCFG ((uint32_t)0x00000800)
#define FMC_BCR4_WREN ((uint32_t)0x00001000)
#define FMC_BCR4_WAITEN ((uint32_t)0x00002000)
#define FMC_BCR4_EXTMOD ((uint32_t)0x00004000)
#define FMC_BCR4_ASYNCWAIT ((uint32_t)0x00008000)
#define FMC_BCR4_CPSZIE ((uint32_t)0x00070000)
#define FMC_BCR4_CPSZIE_0 ((uint32_t)0x00010000)
#define FMC_BCR4_CPSZIE_1 ((uint32_t)0x00020000)
#define FMC_BCR4_CPSZIE_2 ((uint32_t)0x00040000)
#define FMC_BCR4_CBURSTRW ((uint32_t)0x00080000)
#define FMC_BCR4_BMP ((uint32_t)0x03000000)
#define FMC_BCR4_BMP_0 ((uint32_t)0x01000000)
#define FMC_BCR4_BMP_1 ((uint32_t)0x02000000)
#define FMC_BCR4_FMCEN ((uint32_t)0x80000000)
/******************* Bit definition for FMC_BTR1 register *******************/
#define FMC_BTR1_ADDSET ((uint32_t)0x0000000F)
#define FMC_BTR1_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BTR1_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BTR1_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BTR1_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BTR1_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BTR1_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BTR1_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BTR1_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BTR1_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BTR1_DATAST ((uint32_t)0x0000FF00)
#define FMC_BTR1_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BTR1_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BTR1_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BTR1_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BTR1_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BTR1_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BTR1_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BTR1_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BTR1_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BTR1_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BTR1_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BTR1_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BTR1_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BTR1_CLKDIV ((uint32_t)0x00F00000)
#define FMC_BTR1_CLKDIV_0 ((uint32_t)0x00100000)
#define FMC_BTR1_CLKDIV_1 ((uint32_t)0x00200000)
#define FMC_BTR1_CLKDIV_2 ((uint32_t)0x00400000)
#define FMC_BTR1_CLKDIV_3 ((uint32_t)0x00800000)
#define FMC_BTR1_DATLAT ((uint32_t)0x0F000000)
#define FMC_BTR1_DATLAT_0 ((uint32_t)0x01000000)
#define FMC_BTR1_DATLAT_1 ((uint32_t)0x02000000)
#define FMC_BTR1_DATLAT_2 ((uint32_t)0x04000000)
#define FMC_BTR1_DATLAT_3 ((uint32_t)0x08000000)
#define FMC_BTR1_ACCMOD ((uint32_t)0x30000000)
#define FMC_BTR1_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BTR1_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BTR2 register *******************/
#define FMC_BTR2_ADDSET ((uint32_t)0x0000000F)
#define FMC_BTR2_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BTR2_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BTR2_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BTR2_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BTR2_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BTR2_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BTR2_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BTR2_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BTR2_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BTR2_DATAST ((uint32_t)0x0000FF00)
#define FMC_BTR2_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BTR2_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BTR2_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BTR2_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BTR2_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BTR2_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BTR2_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BTR2_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BTR2_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BTR2_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BTR2_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BTR2_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BTR2_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BTR2_CLKDIV ((uint32_t)0x00F00000)
#define FMC_BTR2_CLKDIV_0 ((uint32_t)0x00100000)
#define FMC_BTR2_CLKDIV_1 ((uint32_t)0x00200000)
#define FMC_BTR2_CLKDIV_2 ((uint32_t)0x00400000)
#define FMC_BTR2_CLKDIV_3 ((uint32_t)0x00800000)
#define FMC_BTR2_DATLAT ((uint32_t)0x0F000000)
#define FMC_BTR2_DATLAT_0 ((uint32_t)0x01000000)
#define FMC_BTR2_DATLAT_1 ((uint32_t)0x02000000)
#define FMC_BTR2_DATLAT_2 ((uint32_t)0x04000000)
#define FMC_BTR2_DATLAT_3 ((uint32_t)0x08000000)
#define FMC_BTR2_ACCMOD ((uint32_t)0x30000000)
#define FMC_BTR2_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BTR2_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BTR3 register *******************/
#define FMC_BTR3_ADDSET ((uint32_t)0x0000000F)
#define FMC_BTR3_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BTR3_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BTR3_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BTR3_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BTR3_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BTR3_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BTR3_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BTR3_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BTR3_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BTR3_DATAST ((uint32_t)0x0000FF00)
#define FMC_BTR3_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BTR3_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BTR3_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BTR3_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BTR3_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BTR3_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BTR3_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BTR3_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BTR3_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BTR3_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BTR3_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BTR3_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BTR3_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BTR3_CLKDIV ((uint32_t)0x00F00000)
#define FMC_BTR3_CLKDIV_0 ((uint32_t)0x00100000)
#define FMC_BTR3_CLKDIV_1 ((uint32_t)0x00200000)
#define FMC_BTR3_CLKDIV_2 ((uint32_t)0x00400000)
#define FMC_BTR3_CLKDIV_3 ((uint32_t)0x00800000)
#define FMC_BTR3_DATLAT ((uint32_t)0x0F000000)
#define FMC_BTR3_DATLAT_0 ((uint32_t)0x01000000)
#define FMC_BTR3_DATLAT_1 ((uint32_t)0x02000000)
#define FMC_BTR3_DATLAT_2 ((uint32_t)0x04000000)
#define FMC_BTR3_DATLAT_3 ((uint32_t)0x08000000)
#define FMC_BTR3_ACCMOD ((uint32_t)0x30000000)
#define FMC_BTR3_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BTR3_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BTR4 register *******************/
#define FMC_BTR4_ADDSET ((uint32_t)0x0000000F)
#define FMC_BTR4_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BTR4_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BTR4_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BTR4_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BTR4_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BTR4_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BTR4_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BTR4_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BTR4_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BTR4_DATAST ((uint32_t)0x0000FF00)
#define FMC_BTR4_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BTR4_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BTR4_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BTR4_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BTR4_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BTR4_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BTR4_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BTR4_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BTR4_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BTR4_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BTR4_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BTR4_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BTR4_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BTR4_CLKDIV ((uint32_t)0x00F00000)
#define FMC_BTR4_CLKDIV_0 ((uint32_t)0x00100000)
#define FMC_BTR4_CLKDIV_1 ((uint32_t)0x00200000)
#define FMC_BTR4_CLKDIV_2 ((uint32_t)0x00400000)
#define FMC_BTR4_CLKDIV_3 ((uint32_t)0x00800000)
#define FMC_BTR4_DATLAT ((uint32_t)0x0F000000)
#define FMC_BTR4_DATLAT_0 ((uint32_t)0x01000000)
#define FMC_BTR4_DATLAT_1 ((uint32_t)0x02000000)
#define FMC_BTR4_DATLAT_2 ((uint32_t)0x04000000)
#define FMC_BTR4_DATLAT_3 ((uint32_t)0x08000000)
#define FMC_BTR4_ACCMOD ((uint32_t)0x30000000)
#define FMC_BTR4_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BTR4_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BWTR1 register *******************/
#define FMC_BWTR1_ADDSET ((uint32_t)0x0000000F)
#define FMC_BWTR1_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BWTR1_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BWTR1_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BWTR1_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BWTR1_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BWTR1_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BWTR1_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BWTR1_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BWTR1_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BWTR1_DATAST ((uint32_t)0x0000FF00)
#define FMC_BWTR1_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BWTR1_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BWTR1_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BWTR1_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BWTR1_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BWTR1_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BWTR1_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BWTR1_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BWTR1_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BWTR1_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BWTR1_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BWTR1_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BWTR1_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BWTR1_ACCMOD ((uint32_t)0x30000000)
#define FMC_BWTR1_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BWTR1_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BWTR2 register *******************/
#define FMC_BWTR2_ADDSET ((uint32_t)0x0000000F)
#define FMC_BWTR2_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BWTR2_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BWTR2_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BWTR2_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BWTR2_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BWTR2_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BWTR2_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BWTR2_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BWTR2_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BWTR2_DATAST ((uint32_t)0x0000FF00)
#define FMC_BWTR2_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BWTR2_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BWTR2_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BWTR2_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BWTR2_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BWTR2_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BWTR2_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BWTR2_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BWTR2_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BWTR2_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BWTR2_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BWTR2_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BWTR2_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BWTR2_ACCMOD ((uint32_t)0x30000000)
#define FMC_BWTR2_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BWTR2_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BWTR3 register *******************/
#define FMC_BWTR3_ADDSET ((uint32_t)0x0000000F)
#define FMC_BWTR3_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BWTR3_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BWTR3_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BWTR3_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BWTR3_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BWTR3_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BWTR3_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BWTR3_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BWTR3_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BWTR3_DATAST ((uint32_t)0x0000FF00)
#define FMC_BWTR3_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BWTR3_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BWTR3_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BWTR3_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BWTR3_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BWTR3_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BWTR3_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BWTR3_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BWTR3_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BWTR3_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BWTR3_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BWTR3_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BWTR3_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BWTR3_ACCMOD ((uint32_t)0x30000000)
#define FMC_BWTR3_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BWTR3_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_BWTR4 register *******************/
#define FMC_BWTR4_ADDSET ((uint32_t)0x0000000F)
#define FMC_BWTR4_ADDSET_0 ((uint32_t)0x00000001)
#define FMC_BWTR4_ADDSET_1 ((uint32_t)0x00000002)
#define FMC_BWTR4_ADDSET_2 ((uint32_t)0x00000004)
#define FMC_BWTR4_ADDSET_3 ((uint32_t)0x00000008)
#define FMC_BWTR4_ADDHLD ((uint32_t)0x000000F0)
#define FMC_BWTR4_ADDHLD_0 ((uint32_t)0x00000010)
#define FMC_BWTR4_ADDHLD_1 ((uint32_t)0x00000020)
#define FMC_BWTR4_ADDHLD_2 ((uint32_t)0x00000040)
#define FMC_BWTR4_ADDHLD_3 ((uint32_t)0x00000080)
#define FMC_BWTR4_DATAST ((uint32_t)0x0000FF00)
#define FMC_BWTR4_DATAST_0 ((uint32_t)0x00000100)
#define FMC_BWTR4_DATAST_1 ((uint32_t)0x00000200)
#define FMC_BWTR4_DATAST_2 ((uint32_t)0x00000400)
#define FMC_BWTR4_DATAST_3 ((uint32_t)0x00000800)
#define FMC_BWTR4_DATAST_4 ((uint32_t)0x00001000)
#define FMC_BWTR4_DATAST_5 ((uint32_t)0x00002000)
#define FMC_BWTR4_DATAST_6 ((uint32_t)0x00004000)
#define FMC_BWTR4_DATAST_7 ((uint32_t)0x00008000)
#define FMC_BWTR4_BUSTURN ((uint32_t)0x000F0000)
#define FMC_BWTR4_BUSTURN_0 ((uint32_t)0x00010000)
#define FMC_BWTR4_BUSTURN_1 ((uint32_t)0x00020000)
#define FMC_BWTR4_BUSTURN_2 ((uint32_t)0x00040000)
#define FMC_BWTR4_BUSTURN_3 ((uint32_t)0x00080000)
#define FMC_BWTR4_ACCMOD ((uint32_t)0x30000000)
#define FMC_BWTR4_ACCMOD_0 ((uint32_t)0x10000000)
#define FMC_BWTR4_ACCMOD_1 ((uint32_t)0x20000000)
/******************* Bit definition for FMC_PCR register *******************/
#define FMC_PCR_PWAITEN ((uint32_t)0x00000020)
#define FMC_PCR_PBKEN ((uint32_t)0x00000040)
#define FMC_PCR_PTYP ((uint32_t)0x00000080)
#define FMC_PCR_PWID ((uint32_t)0x00000300)
#define FMC_PCR_PWID_0 ((uint32_t)0x00000100)
#define FMC_PCR_PWID_1 ((uint32_t)0x00000200)
#define FMC_PCR_ECCEN ((uint32_t)0x00000400)
#define FMC_PCR_TCLR ((uint32_t)0x00001E00)
#define FMC_PCR_TCLR_0 ((uint32_t)0x00000200)
#define FMC_PCR_TCLR_1 ((uint32_t)0x00000400)
#define FMC_PCR_TCLR_2 ((uint32_t)0x00000800)
#define FMC_PCR_TCLR_3 ((uint32_t)0x00001000)
#define FMC_PCR_TAR ((uint32_t)0x0001E000)
#define FMC_PCR_TAR_0 ((uint32_t)0x00002000)
#define FMC_PCR_TAR_1 ((uint32_t)0x00004000)
#define FMC_PCR_TAR_2 ((uint32_t)0x00008000)
#define FMC_PCR_TAR_3 ((uint32_t)0x00010000)
#define FMC_PCR_ECCPS ((uint32_t)0x000E0000)
#define FMC_PCR_ECCPS_0 ((uint32_t)0x00020000)
#define FMC_PCR_ECCPS_1 ((uint32_t)0x00040000)
#define FMC_PCR_ECCPS_2 ((uint32_t)0x00080000)
/******************* Bit definition for FMC_SR register *******************/
#define FMC_SR_IRS ((uint32_t)0x00000001)
#define FMC_SR_ILS ((uint32_t)0x00000002)
#define FMC_SR_IFS ((uint32_t)0x00000004)
#define FMC_SR_IREN ((uint32_t)0x00000008)
#define FMC_SR_ILEN ((uint32_t)0x00000010)
#define FMC_SR_IFEN ((uint32_t)0x00000020)
#define FMC_SR_FEMPT ((uint32_t)0x00000040)
/******************* Bit definition for FMC_PMEM register *******************/
#define FMC_PMEM_MEMSET ((uint32_t)0x000000FF)
#define FMC_PMEM_MEMWAIT ((uint32_t)0x0000FF00)
#define FMC_PMEM_MEMHOLD ((uint32_t)0x00FF0000)
#define FMC_PMEM_MEMHIZ ((uint32_t)0xFF000000)
/******************* Bit definition for FMC_PATT register *******************/
#define FMC_PATT_ATTSET ((uint32_t)0x000000FF)
#define FMC_PATT_ATTWAIT ((uint32_t)0x0000FF00)
#define FMC_PATT_ATTHOLD ((uint32_t)0x00FF0000)
#define FMC_PATT_ATTHIZ ((uint32_t)0xFF000000)
/******************* Bit definition for FMC_ECCR register *******************/
#define FMC_ECCR_ECC ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for FMC_SDCR1 register *******************/
#define FMC_SDCR1_NC ((uint32_t)0x00000003)
#define FMC_SDCR1_NC_0 ((uint32_t)0x00000001)
#define FMC_SDCR1_NC_1 ((uint32_t)0x00000002)
#define FMC_SDCR1_NR ((uint32_t)0x0000000C)
#define FMC_SDCR1_NR_0 ((uint32_t)0x00000004)
#define FMC_SDCR1_NR_1 ((uint32_t)0x00000008)
#define FMC_SDCR1_MWID ((uint32_t)0x00000030)
#define FMC_SDCR1_MWID_0 ((uint32_t)0x00000010)
#define FMC_SDCR1_MWID_1 ((uint32_t)0x00000020)
#define FMC_SDCR1_NB ((uint32_t)0x00000040)
#define FMC_SDCR1_CAS ((uint32_t)0x00000180)
#define FMC_SDCR1_CAS_0 ((uint32_t)0x00000080)
#define FMC_SDCR1_CAS_1 ((uint32_t)0x00000100)
#define FMC_SDCR1_WP ((uint32_t)0x00000200)
#define FMC_SDCR1_SDCLK ((uint32_t)0x00000C00)
#define FMC_SDCR1_SDCLK_0 ((uint32_t)0x00000400)
#define FMC_SDCR1_SDCLK_1 ((uint32_t)0x00000800)
#define FMC_SDCR1_RBURST ((uint32_t)0x00001000)
#define FMC_SDCR1_RPIPE ((uint32_t)0x00006000)
#define FMC_SDCR1_RPIPE_0 ((uint32_t)0x00002000)
#define FMC_SDCR1_RPIPE_1 ((uint32_t)0x00004000)
/******************* Bit definition for FMC_SDCR2 register *******************/
#define FMC_SDCR2_NC ((uint32_t)0x00000003)
#define FMC_SDCR2_NC_0 ((uint32_t)0x00000001)
#define FMC_SDCR2_NC_1 ((uint32_t)0x00000002)
#define FMC_SDCR2_NR ((uint32_t)0x0000000C)
#define FMC_SDCR2_NR_0 ((uint32_t)0x00000004)
#define FMC_SDCR2_NR_1 ((uint32_t)0x00000008)
#define FMC_SDCR2_MWID ((uint32_t)0x00000030)
#define FMC_SDCR2_MWID_0 ((uint32_t)0x00000010)
#define FMC_SDCR2_MWID_1 ((uint32_t)0x00000020)
#define FMC_SDCR2_NB ((uint32_t)0x00000040)
#define FMC_SDCR2_CAS ((uint32_t)0x00000180)
#define FMC_SDCR2_CAS_0 ((uint32_t)0x00000080)
#define FMC_SDCR2_CAS_1 ((uint32_t)0x00000100)
#define FMC_SDCR2_WP ((uint32_t)0x00000200)
#define FMC_SDCR2_SDCLK ((uint32_t)0x00000C00)
#define FMC_SDCR2_SDCLK_0 ((uint32_t)0x00000400)
#define FMC_SDCR2_SDCLK_1 ((uint32_t)0x00000800)
#define FMC_SDCR2_RBURST ((uint32_t)0x00001000)
#define FMC_SDCR2_RPIPE ((uint32_t)0x00006000)
#define FMC_SDCR2_RPIPE_0 ((uint32_t)0x00002000)
#define FMC_SDCR2_RPIPE_1 ((uint32_t)0x00004000)
/******************* Bit definition for FMC_SDTR1 register *******************/
#define FMC_SDTR1_TMRD ((uint32_t)0x0000000F)
#define FMC_SDTR1_TMRD_0 ((uint32_t)0x00000001)
#define FMC_SDTR1_TMRD_1 ((uint32_t)0x00000002)
#define FMC_SDTR1_TMRD_2 ((uint32_t)0x00000004)
#define FMC_SDTR1_TMRD_3 ((uint32_t)0x00000008)
#define FMC_SDTR1_TXSR ((uint32_t)0x000000F0)
#define FMC_SDTR1_TXSR_0 ((uint32_t)0x00000010)
#define FMC_SDTR1_TXSR_2 ((uint32_t)0x00000020)
#define FMC_SDTR1_TXSR_4 ((uint32_t)0x00000040)
#define FMC_SDTR1_TXSR_8 ((uint32_t)0x00000080)
#define FMC_SDTR1_TRAS ((uint32_t)0x00000F00)
#define FMC_SDTR1_TRAS_0 ((uint32_t)0x00000100)
#define FMC_SDTR1_TRAS_1 ((uint32_t)0x00000200)
#define FMC_SDTR1_TRAS_2 ((uint32_t)0x00000400)
#define FMC_SDTR1_TRAS_3 ((uint32_t)0x00000800)
#define FMC_SDTR1_TRC ((uint32_t)0x0000F000)
#define FMC_SDTR1_TRC_0 ((uint32_t)0x00001000)
#define FMC_SDTR1_TRC_1 ((uint32_t)0x00002000)
#define FMC_SDTR1_TRC_2 ((uint32_t)0x00004000)
#define FMC_SDTR1_TRC_3 ((uint32_t)0x00008000)
#define FMC_SDTR1_TWR ((uint32_t)0x000F0000)
#define FMC_SDTR1_TWR_0 ((uint32_t)0x00010000)
#define FMC_SDTR1_TWR_1 ((uint32_t)0x00020000)
#define FMC_SDTR1_TWR_2 ((uint32_t)0x00040000)
#define FMC_SDTR1_TWR_3 ((uint32_t)0x00080000)
#define FMC_SDTR1_TRP ((uint32_t)0x00F00000)
#define FMC_SDTR1_TRP_0 ((uint32_t)0x00100000)
#define FMC_SDTR1_TRP_2 ((uint32_t)0x00200000)
#define FMC_SDTR1_TRP_3 ((uint32_t)0x00400000)
#define FMC_SDTR1_TRP_4 ((uint32_t)0x00800000)
#define FMC_SDTR1_TRCD ((uint32_t)0x0F000000)
#define FMC_SDTR1_TRCD_0 ((uint32_t)0x01000000)
#define FMC_SDTR1_TRCD_1 ((uint32_t)0x02000000)
#define FMC_SDTR1_TRCD_2 ((uint32_t)0x04000000)
#define FMC_SDTR1_TRCD_3 ((uint32_t)0x08000000)
/******************* Bit definition for FMC_SDTR2 register *******************/
#define FMC_SDTR2_TMRD ((uint32_t)0x0000000F)
#define FMC_SDTR2_TMRD_0 ((uint32_t)0x00000001)
#define FMC_SDTR2_TMRD_1 ((uint32_t)0x00000002)
#define FMC_SDTR2_TMRD_2 ((uint32_t)0x00000004)
#define FMC_SDTR2_TMRD_3 ((uint32_t)0x00000008)
#define FMC_SDTR2_TXSR ((uint32_t)0x000000F0)
#define FMC_SDTR2_TXSR_0 ((uint32_t)0x00000010)
#define FMC_SDTR2_TXSR_2 ((uint32_t)0x00000020)
#define FMC_SDTR2_TXSR_4 ((uint32_t)0x00000040)
#define FMC_SDTR2_TXSR_8 ((uint32_t)0x00000080)
#define FMC_SDTR2_TRAS ((uint32_t)0x00000F00)
#define FMC_SDTR2_TRAS_0 ((uint32_t)0x00000100)
#define FMC_SDTR2_TRAS_1 ((uint32_t)0x00000200)
#define FMC_SDTR2_TRAS_2 ((uint32_t)0x00000400)
#define FMC_SDTR2_TRAS_3 ((uint32_t)0x00000800)
#define FMC_SDTR2_TRC ((uint32_t)0x0000F000)
#define FMC_SDTR2_TRC_0 ((uint32_t)0x00001000)
#define FMC_SDTR2_TRC_1 ((uint32_t)0x00002000)
#define FMC_SDTR2_TRC_2 ((uint32_t)0x00004000)
#define FMC_SDTR2_TRC_3 ((uint32_t)0x00008000)
#define FMC_SDTR2_TWR ((uint32_t)0x000F0000)
#define FMC_SDTR2_TWR_0 ((uint32_t)0x00010000)
#define FMC_SDTR2_TWR_1 ((uint32_t)0x00020000)
#define FMC_SDTR2_TWR_2 ((uint32_t)0x00040000)
#define FMC_SDTR2_TWR_3 ((uint32_t)0x00080000)
#define FMC_SDTR2_TRP ((uint32_t)0x00F00000)
#define FMC_SDTR2_TRP_0 ((uint32_t)0x00100000)
#define FMC_SDTR2_TRP_2 ((uint32_t)0x00200000)
#define FMC_SDTR2_TRP_3 ((uint32_t)0x00400000)
#define FMC_SDTR2_TRP_4 ((uint32_t)0x00800000)
#define FMC_SDTR2_TRCD ((uint32_t)0x0F000000)
#define FMC_SDTR2_TRCD_0 ((uint32_t)0x01000000)
#define FMC_SDTR2_TRCD_1 ((uint32_t)0x02000000)
#define FMC_SDTR2_TRCD_2 ((uint32_t)0x04000000)
#define FMC_SDTR2_TRCD_3 ((uint32_t)0x08000000)
/******************* Bit definition for FMC_SDCMR register *******************/
#define FMC_SDCMR_MODE ((uint32_t)0x00000007)
#define FMC_SDCMR_MODE_0 ((uint32_t)0x00000001)
#define FMC_SDCMR_MODE_1 ((uint32_t)0x00000002)
#define FMC_SDCMR_MODE_2 ((uint32_t)0x00000004)
#define FMC_SDCMR_CTB2 ((uint32_t)0x00000008)
#define FMC_SDCMR_CTB1 ((uint32_t)0x00000010)
#define FMC_SDCMR_NRFS ((uint32_t)0x000001E0)
#define FMC_SDCMR_NRFS_0 ((uint32_t)0x00000020)
#define FMC_SDCMR_NRFS_1 ((uint32_t)0x00000040)
#define FMC_SDCMR_NRFS_2 ((uint32_t)0x00000080)
#define FMC_SDCMR_NRFS_3 ((uint32_t)0x00000100)
#define FMC_SDCMR_MRD ((uint32_t)0x003FFE00)
/******************* Bit definition for FMC_SDRTR register *******************/
#define FMC_SDRTR_CRE ((uint32_t)0x00000001)
#define FMC_SDRTR_COUNT ((uint32_t)0x00003FFE)
#define FMC_SDRTR_REIE ((uint32_t)0x00004000)
/******************* Bit definition for FMC_SDSR register *******************/
#define FMC_SDSR_RE ((uint32_t)0x00000001)
#define FMC_SDSR_MODES1 ((uint32_t)0x00000006)
#define FMC_SDSR_MODES1_0 ((uint32_t)0x00000002)
#define FMC_SDSR_MODES1_1 ((uint32_t)0x00000004)
#define FMC_SDSR_MODES2 ((uint32_t)0x00000018)
#define FMC_SDSR_MODES2_0 ((uint32_t)0x00000008)
#define FMC_SDSR_MODES2_1 ((uint32_t)0x00000010)
#define FMC_SDSR_BUSY ((uint32_t)0x00000020)
/******************* Bit definition for FMC_MISC register *******************/
#define FMC_MISC_NRFS_CNT ((uint32_t)0x0000000F)
#define FMC_MISC_NRFS_CNT_0 ((uint32_t)0x00000001)
#define FMC_MISC_NRFS_CNT_1 ((uint32_t)0x00000002)
#define FMC_MISC_NRFS_CNT_2 ((uint32_t)0x00000004)
#define FMC_MISC_NRFS_CNT_3 ((uint32_t)0x00000008)
#define FMC_MISC_Phase_Sel ((uint32_t)0x000000F0)
#define FMC_MISC_Phase_Sel_0 ((uint32_t)0x00000010)
#define FMC_MISC_Phase_Sel_1 ((uint32_t)0x00000020)
#define FMC_MISC_Phase_Sel_2 ((uint32_t)0x00000040)
#define FMC_MISC_Phase_Sel_3 ((uint32_t)0x00000080)
#define FMC_MISC_Enhance_read_mode ((uint32_t)0x00001000)
#define FMC_MISC_En_Bank1 ((uint32_t)0x00010000)
#define FMC_MISC_En_Bank2 ((uint32_t)0x00020000)
/******************************************************************************/
/* ECDC */
/******************************************************************************/
/******************* Bit definition for ECDC_CTRL register *******************/
#define ECDC_KEYEX_EN ((uint32_t)0x00000001)
#define ECDC_NORMAL_EN ((uint32_t)0x00000002)
#define ECDC_MODE_SEL ((uint32_t)0x00000008)
#define ECDC_CLKDIV_MASK ((uint32_t)0x00000070)
#define ECDC_WRSRAM_EN ((uint32_t)0x00000080)
#define ECDC_ALGRM_MOD ((uint32_t)0x00000100)
#define ECDC_CIPHER_MOD ((uint32_t)0x00000200)
#define ECDC_KLEN_MASK ((uint32_t)0x00000C00)
#define ECDC_DAT_MOD ((uint32_t)0x00002000)
#define ECDC_IE_SINGLE ((uint32_t)0x00020000)
#define ECDC_IE_WRSRAM ((uint32_t)0x00040000)
#define ECDC_CLOCK_SELECT ((uint32_t)0x01000000)
#define ECDC_ECDC_SM4_CLOCK_EN ((uint32_t)0x02000000)
/******************* Bit definition for ECDC_INT_FG register *******************/
#define ECDC_IF_EKDONE ((uint32_t)0x00010000)
#define ECDC_IF_SINGLE ((uint32_t)0x00020000)
#define ECDC_IF_WRSRAM ((uint32_t)0x00040000)
/******************* Bit definition for ECDC_KEY register *******************/
#define ECDC_KEY_255T224 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_223T192 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_191T160 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_159T128 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_127T96 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_95T64 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_63T32 ((uint32_t)0xFFFFFFFF)
#define ECDC_KEY_31T0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_IV register *******************/
#define ECDC_IV_127T96 ((uint32_t)0xFFFFFFFF)
#define ECDC_IV_95T64 ((uint32_t)0xFFFFFFFF)
#define ECDC_IV_63T32 ((uint32_t)0xFFFFFFFF)
#define ECDC_IV_31T0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_SGSD register *******************/
#define ECDC_SGSD_127T96 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGSD_95T64 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGSD_63T32 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGSD_31T0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_SGRT register *******************/
#define ECDC_SGRT_127T96 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGRT_95T64 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGRT_63T32 ((uint32_t)0xFFFFFFFF)
#define ECDC_SGRT_31T0 ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_SRC_ADDR register *******************/
#define ECDC_SRAM_SRC_ADDR ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_DST_ADDR register *******************/
#define ECDC_SRAM_DST_ADDR ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for ECDC_SRAM_LEN register *******************/
#define ECDC_SRAM_LEN ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* DFSDM */
/******************************************************************************/
/******************* Bit definition for DFSDM_CFGR1 register *******************/
#define DFSDM_CFGR1_SITP ((uint32_t)0x00000003)
#define DFSDM_CFGR1_SITP_0 ((uint32_t)0x00000001)
#define DFSDM_CFGR1_SITP_1 ((uint32_t)0x00000002)
#define DFSDM_CFGR1_SPICKSEL ((uint32_t)0x0000000C)
#define DFSDM_CFGR1_SPICKSEL_0 ((uint32_t)0x00000004)
#define DFSDM_CFGR1_SPICKSEL_1 ((uint32_t)0x00000008)
#define DFSDM_CFGR1_SCDEN ((uint32_t)0x00000020)
#define DFSDM_CFGR1_CKABEN ((uint32_t)0x00000040)
#define DFSDM_CFGR1_CHEN ((uint32_t)0x00000080)
#define DFSDM_CFGR1_CHINSEL ((uint32_t)0x00000100)
#define DFSDM_CFGR1_DATMPX ((uint32_t)0x00003000)
#define DFSDM_CFGR1_DATMPX_0 ((uint32_t)0x00001000)
#define DFSDM_CFGR1_DATMPX_1 ((uint32_t)0x00002000)
#define DFSDM_CFGR1_DATPACK ((uint32_t)0x0000C000)
#define DFSDM_CFGR1_DATPACK_0 ((uint32_t)0x00004000)
#define DFSDM_CFGR1_DATPACK_1 ((uint32_t)0x00008000)
#define DFSDM_CFGR1_CKOUTDIV ((uint32_t)0x00FF0000)
#define DFSDM_CFGR1_CKOUTSRC ((uint32_t)0x40000000)
#define DFSDM_CFGR1_DFSDMEN ((uint32_t)0x80000000)
/******************* Bit definition for DFSDM_CFGR2 register *******************/
#define DFSDM_CFGR2_DTRBS ((uint32_t)0x000000F8)
#define DFSDM_CFGR2_OFFSET ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_AWSCDR register *******************/
#define DFSDM_AWSCDR_SCDT ((uint32_t)0x000000FF)
#define DFSDM_AWSCDR_BKSCD ((uint32_t)0x00003000)
#define DFSDM_AWSCDR_BKSCD_0 ((uint32_t)0x00001000)
#define DFSDM_AWSCDR_BKSCD_1 ((uint32_t)0x00002000)
#define DFSDM_AWSCDR_AWFOSR ((uint32_t)0x001F0000)
#define DFSDM_AWSCDR_AWFOSR_0 ((uint32_t)0x00010000)
#define DFSDM_AWSCDR_AWFOSR_1 ((uint32_t)0x00020000)
#define DFSDM_AWSCDR_AWFOSR_2 ((uint32_t)0x00040000)
#define DFSDM_AWSCDR_AWFOSR_3 ((uint32_t)0x00080000)
#define DFSDM_AWSCDR_AWFOSR_4 ((uint32_t)0x00100000)
#define DFSDM_AWSCDR_AWFORD ((uint32_t)0x00C00000)
#define DFSDM_AWSCDR_AWFORD_0 ((uint32_t)0x00400000)
#define DFSDM_AWSCDR_AWFORD_1 ((uint32_t)0x00800000)
/******************* Bit definition for DFSDM_WDATR register *******************/
#define DFSDM_WDATR ((uint16_t)0xFFFF)
/******************* Bit definition for DFSDM_DATINR register *******************/
#define DFSDM_DATINR_INDAT0 ((uint32_t)0x0000FFFF)
#define DFSDM_DATINR_INDAT1 ((uint32_t)0xFFFF0000)
/******************* Bit definition for DFSDM_FLTCR1 register *******************/
#define DFSDM_FLTCR1_DFEN ((uint32_t)0x00000001)
#define DFSDM_FLTCR1_JSWSTART ((uint32_t)0x00000002)
#define DFSDM_FLTCR1_JSYNC ((uint32_t)0x00000008)
#define DFSDM_FLTCR1_JSCAN ((uint32_t)0x00000010)
#define DFSDM_FLTCR1_JDMAEN ((uint32_t)0x00000020)
#define DFSDM_FLTCR1_JEXTSEL ((uint32_t)0x00000F00)
#define DFSDM_FLTCR1_JEXTSEL_0 ((uint32_t)0x00000100)
#define DFSDM_FLTCR1_JEXTSEL_1 ((uint32_t)0x00000200)
#define DFSDM_FLTCR1_JEXTSEL_2 ((uint32_t)0x00000400)
#define DFSDM_FLTCR1_JEXTSEL_3 ((uint32_t)0x00000800)
#define DFSDM_FLTCR1_JEXTEN ((uint32_t)0x00006000)
#define DFSDM_FLTCR1_JEXTEN_0 ((uint32_t)0x00002000)
#define DFSDM_FLTCR1_JEXTEN_1 ((uint32_t)0x00004000)
#define DFSDM_FLTCR1_RSWSTART ((uint32_t)0x00020000)
#define DFSDM_FLTCR1_RCONT ((uint32_t)0x00040000)
#define DFSDM_FLTCR1_RSYNC ((uint32_t)0x00080000)
#define DFSDM_FLTCR1_RDMAEN ((uint32_t)0x00200000)
#define DFSDM_FLTCR1_RCH ((uint32_t)0x01000000)
#define DFSDM_FLTCR1_FAST ((uint32_t)0x20000000)
#define DFSDM_FLTCR1_AWFSEL ((uint32_t)0x40000000)
/******************* Bit definition for DFSDM_FLTCR2 register *******************/
#define DFSDM_FLTCR2_JEOCIE ((uint32_t)0x00000001)
#define DFSDM_FLTCR2_REOCIE ((uint32_t)0x00000002)
#define DFSDM_FLTCR2_JOVRIE ((uint32_t)0x00000004)
#define DFSDM_FLTCR2_ROVRIE ((uint32_t)0x00000008)
#define DFSDM_FLTCR2_AWDIE ((uint32_t)0x00000010)
#define DFSDM_FLTCR2_SCDIE ((uint32_t)0x00000020)
#define DFSDM_FLTCR2_CKABIE ((uint32_t)0x00000040)
#define DFSDM_FLTCR2_EXCH ((uint32_t)0x00000300)
#define DFSDM_FLTCR2_EXCH_0 ((uint32_t)0x00000100)
#define DFSDM_FLTCR2_EXCH_1 ((uint32_t)0x00000200)
#define DFSDM_FLTCR2_AWDCH ((uint32_t)0x00030000)
#define DFSDM_FLTCR2_AWDCH_0 ((uint32_t)0x00010000)
#define DFSDM_FLTCR2_AWDCH_1 ((uint32_t)0x00020000)
/******************* Bit definition for DFSDM_FLTISR register *******************/
#define DFSDM_FLTISR_JEOCF ((uint32_t)0x00000001)
#define DFSDM_FLTISR_REOCF ((uint32_t)0x00000002)
#define DFSDM_FLTISR_JOVRF ((uint32_t)0x00000004)
#define DFSDM_FLTISR_ROVRF ((uint32_t)0x00000008)
#define DFSDM_FLTISR_AWDF ((uint32_t)0x00000010)
#define DFSDM_FLTISR_JCIP ((uint32_t)0x00002000)
#define DFSDM_FLTISR_RCIP ((uint32_t)0x00004000)
#define DFSDM_FLTISR_CKABF ((uint32_t)0x00030000)
#define DFSDM_FLTISR_CKABF_0 ((uint32_t)0x00010000)
#define DFSDM_FLTISR_CKABF_1 ((uint32_t)0x00020000)
#define DFSDM_FLTISR_SCDF ((uint32_t)0x03000000)
#define DFSDM_FLTISR_SCDF_0 ((uint32_t)0x01000000)
#define DFSDM_FLTISR_SCDF_1 ((uint32_t)0x02000000)
/******************* Bit definition for DFSDM_FLTICR register *******************/
#define DFSDM_FLTICR_CLRJOVRF ((uint32_t)0x00000004)
#define DFSDM_FLTICR_CLRROVRF ((uint32_t)0x00000008)
#define DFSDM_FLTICR_CLRCKABF ((uint32_t)0x00030000)
#define DFSDM_FLTICR_CLRCKABF_0 ((uint32_t)0x00010000)
#define DFSDM_FLTICR_CLRCKABF_1 ((uint32_t)0x00020000)
#define DFSDM_FLTICR_CLRSCDF ((uint32_t)0x03000000)
#define DFSDM_FLTICR_CLRSCDF_0 ((uint32_t)0x01000000)
#define DFSDM_FLTICR_CLRSCDF_1 ((uint32_t)0x02000000)
/******************* Bit definition for DFSDM_FLTJCHGR register *******************/
#define DFSDM_FLTJCHGR_JCHG ((uint32_t)0x00000003)
/******************* Bit definition for DFSDM_FLTFCR3 register *******************/
#define DFSDM_FLTFCR3_IOSR ((uint32_t)0x000000FF)
#define DFSDM_FLTFCR3_IOSR_0 ((uint32_t)0x00000001)
#define DFSDM_FLTFCR3_IOSR_1 ((uint32_t)0x00000002)
#define DFSDM_FLTFCR3_IOSR_2 ((uint32_t)0x00000004)
#define DFSDM_FLTFCR3_IOSR_3 ((uint32_t)0x00000008)
#define DFSDM_FLTFCR3_IOSR_4 ((uint32_t)0x00000010)
#define DFSDM_FLTFCR3_IOSR_5 ((uint32_t)0x00000020)
#define DFSDM_FLTFCR3_IOSR_6 ((uint32_t)0x00000040)
#define DFSDM_FLTFCR3_IOSR_7 ((uint32_t)0x00000080)
#define DFSDM_FLTFCR3_FOSR ((uint32_t)0x03FF0000)
#define DFSDM_FLTFCR3_FOSR_0 ((uint32_t)0x00010000)
#define DFSDM_FLTFCR3_FOSR_1 ((uint32_t)0x00020000)
#define DFSDM_FLTFCR3_FOSR_2 ((uint32_t)0x00040000)
#define DFSDM_FLTFCR3_FOSR_3 ((uint32_t)0x00080000)
#define DFSDM_FLTFCR3_FOSR_4 ((uint32_t)0x00100000)
#define DFSDM_FLTFCR3_FOSR_5 ((uint32_t)0x00200000)
#define DFSDM_FLTFCR3_FOSR_6 ((uint32_t)0x00400000)
#define DFSDM_FLTFCR3_FOSR_7 ((uint32_t)0x00800000)
#define DFSDM_FLTFCR3_FOSR_8 ((uint32_t)0x01000000)
#define DFSDM_FLTFCR3_FOSR_9 ((uint32_t)0x03FF0000)
#define DFSDM_FLTFCR3_FORD ((uint32_t)0xE0000000)
#define DFSDM_FLTFCR3_FORD_0 ((uint32_t)0x20000000)
#define DFSDM_FLTFCR3_FORD_1 ((uint32_t)0x40000000)
#define DFSDM_FLTFCR3_FORD_2 ((uint32_t)0x80000000)
/******************* Bit definition for DFSDM_FLTJDATAR register *******************/
#define DFSDM_FLTJDATAR_JDATACH ((uint32_t)0x00000001)
#define DFSDM_FLTJDATAR_JDATA ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTRDATAR register *******************/
#define DFSDM_FLTRDATAR_RDATACH ((uint32_t)0x00000001)
#define DFSDM_FLTRDATAR_RPEND ((uint32_t)0x00000010)
#define DFSDM_FLTRDATAR_RDATA ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTAWHTR register *******************/
#define DFSDM_FLTAWHTR_BKAWH ((uint32_t)0x0000000F)
#define DFSDM_FLTAWHTR_BKAWH_0 ((uint32_t)0x00000001)
#define DFSDM_FLTAWHTR_BKAWH_1 ((uint32_t)0x00000002)
#define DFSDM_FLTAWHTR_BKAWH_2 ((uint32_t)0x00000004)
#define DFSDM_FLTAWHTR_BKAWH_3 ((uint32_t)0x00000008)
#define DFSDM_FLTAWHTR_AWHT ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTAWLTR register *******************/
#define DFSDM_FLTAWLTR_BKAWL ((uint32_t)0x0000000F)
#define DFSDM_FLTAWLTR_BKAWL_0 ((uint32_t)0x00000001)
#define DFSDM_FLTAWLTR_BKAWL_1 ((uint32_t)0x00000002)
#define DFSDM_FLTAWLTR_BKAWL_2 ((uint32_t)0x00000004)
#define DFSDM_FLTAWLTR_BKAWL_3 ((uint32_t)0x00000008)
#define DFSDM_FLTAWLTR_AWLT ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTAWSR register *******************/
#define DFSDM_FLTAWSR_AWLTF ((uint32_t)0x00000003)
#define DFSDM_FLTAWSR_AWHTF ((uint32_t)0x00000300)
/******************* Bit definition for DFSDM_FLTAWCFR register *******************/
#define DFSDM_FLTAWCFR_CLRAWLTF ((uint32_t)0x00000003)
#define DFSDM_FLTAWCFR_CLRAWLTF_0 ((uint32_t)0x00000001)
#define DFSDM_FLTAWCFR_CLRAWLTF_1 ((uint32_t)0x00000002)
#define DFSDM_FLTAWCFR_CLRAWHTF ((uint32_t)0x00000300)
#define DFSDM_FLTAWCFR_CLRAWHTF_0 ((uint32_t)0x00000100)
#define DFSDM_FLTAWCFR_CLRAWHTF_1 ((uint32_t)0x00000200)
/******************* Bit definition for DFSDM_FLTEXMAX register *******************/
#define DFSDM_FLTEXMAX_EXMAXCH ((uint32_t)0x00000001)
#define DFSDM_FLTEXMAX_EXMAX ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTEXMIN register *******************/
#define DFSDM_FLTEXMIN_EXMINCH ((uint32_t)0x00000001)
#define DFSDM_FLTEXMIN_EXMIN ((uint32_t)0xFFFFFF00)
/******************* Bit definition for DFSDM_FLTCNVTIMR register *******************/
#define DFSDM_FLTCNVTIMR_CNVCNT ((uint32_t)0xFFFFFF00)
/******************************************************************************/
/* LTDC */
/******************************************************************************/
/******************* Bit definition for LTDC_SSCR register *******************/
#define LTDC_SSCR_VSH ((uint32_t)0x000007FF)
#define LTDC_SSCR_HSW ((uint32_t)0x0FFF0000)
/******************* Bit definition for LTDC_BPCR register *******************/
#define LTDC_BPCR_AVBP ((uint32_t)0x000007FF)
#define LTDC_BPCR_AHBP ((uint32_t)0x0FFF0000)
/******************* Bit definition for LTDC_AWCR register *******************/
#define LTDC_AWCR_AAH ((uint32_t)0x000007FF)
#define LTDC_AWCR_AAW ((uint32_t)0x0FFF0000)
/******************* Bit definition for LTDC_TWCR register *******************/
#define LTDC_TWCR_TOTALH ((uint32_t)0x000007FF)
#define LTDC_TWCR_TOTALW ((uint32_t)0x0FFF0000)
/******************* Bit definition for LTDC_GCR register *******************/
#define LTDC_GCR_LTDCEN ((uint32_t)0x00000001)
#define LTDC_GCR_DBW ((uint32_t)0x00000070)
#define LTDC_GCR_DBW_0 ((uint32_t)0x00000010)
#define LTDC_GCR_DBW_1 ((uint32_t)0x00000020)
#define LTDC_GCR_DBW_2 ((uint32_t)0x00000040)
#define LTDC_GCR_DGW ((uint32_t)0x00000700)
#define LTDC_GCR_DGW_0 ((uint32_t)0x00000100)
#define LTDC_GCR_DGW_1 ((uint32_t)0x00000200)
#define LTDC_GCR_DGW_2 ((uint32_t)0x00000400)
#define LTDC_GCR_DRW ((uint32_t)0x00007000)
#define LTDC_GCR_DRW_0 ((uint32_t)0x00001000)
#define LTDC_GCR_DRW_1 ((uint32_t)0x00002000)
#define LTDC_GCR_DRW_2 ((uint32_t)0x00004000)
#define LTDC_GCR_DEN ((uint32_t)0x00010000)
#define LTDC_GCR_PCPOL ((uint32_t)0x10000000)
#define LTDC_GCR_DEPOL ((uint32_t)0x20000000)
#define LTDC_GCR_VSPOL ((uint32_t)0x40000000)
#define LTDC_GCR_HSPOL ((uint32_t)0x80000000)
/******************* Bit definition for LTDC_SRCR register *******************/
#define LTDC_SRCR_IMR ((uint32_t)0x00000001)
#define LTDC_SRCR_VBR ((uint32_t)0x00000002)
/******************* Bit definition for LTDC_BCCR register *******************/
#define LTDC_BCCR_BCBLUE ((uint32_t)0x000000FF)
#define LTDC_BCCR_BCGREEN ((uint32_t)0x0000FF00)
#define LTDC_BCCR_BCRED ((uint32_t)0x00FF0000)
/******************* Bit definition for LTDC_IER register *******************/
#define LTDC_IER_LIE ((uint32_t)0x00000001)
#define LTDC_IER_FUIE ((uint32_t)0x00000002)
#define LTDC_IER_RRIE ((uint32_t)0x00000008)
/******************* Bit definition for LTDC_ISR register *******************/
#define LTDC_ISR_LIF ((uint32_t)0x00000001)
#define LTDC_ISR_FUIF ((uint32_t)0x00000002)
#define LTDC_ISR_RRIF ((uint32_t)0x00000008)
/******************* Bit definition for LTDC_ICR register *******************/
#define LTDC_ICR_CLIF ((uint32_t)0x00000001)
#define LTDC_ICR_CFUIF ((uint32_t)0x00000002)
#define LTDC_ICR_CRRIF ((uint32_t)0x00000008)
/******************* Bit definition for LTDC_LIPCR register *******************/
#define LTDC_LIPCR_LIPOS ((uint32_t)0x000007FF)
/******************* Bit definition for LTDC_CPSR register *******************/
#define LTDC_CPSR_CYPOS ((uint32_t)0x0000FFFF)
#define LTDC_CPSR_CXPOS ((uint32_t)0xFFFF0000)
/******************* Bit definition for LTDC_CDSR register *******************/
#define LTDC_CDSR_VDES ((uint32_t)0x00000001)
#define LTDC_CDSR_HDES ((uint32_t)0x00000002)
#define LTDC_CDSR_VSYNCS ((uint32_t)0x00000004)
#define LTDC_CDSR_HSYNCS ((uint32_t)0x00000008)
/******************* Bit definition for LTDC_CR register *******************/
#define LTDC_CR_LEN ((uint32_t)0x00000001)
#define LTDC_CR_COLKEN ((uint32_t)0x00000002)
#define LTDC_CR_CLUTEN ((uint32_t)0x00000010)
/******************* Bit definition for LTDC_WHPCR register *******************/
#define LTDC_WHPCR_WHSTPOS ((uint32_t)0x00000FFF)
#define LTDC_WHPCR_WHSPPOS ((uint32_t)0x0FFF0000)
/******************* Bit definition for LTDC_WVPCR register *******************/
#define LTDC_WVPCR_WVSTPOS ((uint32_t)0x000007FF)
#define LTDC_WVPCR_WVSPPOS ((uint32_t)0x07FF0000)
/******************* Bit definition for LTDC_CKCR register *******************/
#define LTDC_CKCR_CKBLUE ((uint32_t)0x000000FF)
#define LTDC_CKCR_CKGREEN ((uint32_t)0x0000FF00)
#define LTDC_CKCR_CKRED ((uint32_t)0x00FF0000)
/******************* Bit definition for LTDC_PFCR register *******************/
#define LTDC_PFCR_PF ((uint32_t)0x00000007)
#define LTDC_PFCR_PF_0 ((uint32_t)0x00000001)
#define LTDC_PFCR_PF_1 ((uint32_t)0x00000002)
#define LTDC_PFCR_PF_2 ((uint32_t)0x00000004)
#define LTDC_PFCR_PF_ARGB8888 ((uint32_t)0x00000000)
#define LTDC_PFCR_PF_RGB888 ((uint32_t)0x00000001)
#define LTDC_PFCR_PF_RGB565 ((uint32_t)0x00000002)
#define LTDC_PFCR_PF_ARGB1555 ((uint32_t)0x00000003)
#define LTDC_PFCR_PF_ARGB4444 ((uint32_t)0x00000004)
#define LTDC_PFCR_PF_L8 ((uint32_t)0x00000005)
#define LTDC_PFCR_PF_AL44 ((uint32_t)0x00000006)
#define LTDC_PFCR_PF_AL88 ((uint32_t)0x00000007)
/******************* Bit definition for LTDC_CACR register *******************/
#define LTDC_CACR_CONSTA ((uint32_t)0x000000FF)
/******************* Bit definition for LTDC_DCCR register *******************/
#define LTDC_DCCR_DCBLUE ((uint32_t)0x000000FF)
#define LTDC_DCCR_DCGREEN ((uint32_t)0x0000FF00)
#define LTDC_DCCR_DCRED ((uint32_t)0x00FF0000)
#define LTDC_DCCR_DCALPHA ((uint32_t)0xFF000000)
/******************* Bit definition for LTDC_BFCR register *******************/
#define LTDC_BFCR_BF2 ((uint32_t)0x00000007)
#define LTDC_BFCR_BF2_0 ((uint32_t)0x00000001)
#define LTDC_BFCR_BF2_1 ((uint32_t)0x00000002)
#define LTDC_BFCR_BF2_2 ((uint32_t)0x00000004)
#define LTDC_BFCR_BF1 ((uint32_t)0x00000700)
#define LTDC_BFCR_BF1_0 ((uint32_t)0x00000100)
#define LTDC_BFCR_BF1_1 ((uint32_t)0x00000200)
#define LTDC_BFCR_BF1_2 ((uint32_t)0x00000400)
/******************* Bit definition for LTDC_CFBAR register *******************/
#define LTDC_CFBAR_CFBADD ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for LTDC_CFBLR register *******************/
#define LTDC_CFBLR_CFBLL ((uint32_t)0x00001FFF)
#define LTDC_CFBLR_CFBP ((uint32_t)0x1FFF0000)
/******************* Bit definition for LTDC_CFBLNR register *******************/
#define LTDC_CFBLNR_CFBLNBR ((uint32_t)0x000007FF)
/******************* Bit definition for LTDC_CLUTWR register *******************/
#define LTDC_CLUTWR_BLUE ((uint32_t)0x000000FF)
#define LTDC_CLUTWR_GREEN ((uint32_t)0x0000FF00)
#define LTDC_CLUTWR_RED ((uint32_t)0x00FF0000)
#define LTDC_CLUTWR_CLUTADD ((uint32_t)0xFF000000)
/******************************************************************************/
/* GPHA */
/******************************************************************************/
/******************* Bit definition for GPHA_CTLR register *******************/
#define GPHA_CTLR_START ((uint32_t)0x00000001)
#define GPHA_CTLR_SUSP ((uint32_t)0x00000002)
#define GPHA_CTLR_ABORT ((uint32_t)0x00000004)
#define GPHA_CTLR_TCIE ((uint32_t)0x00000200)
#define GPHA_CTLR_TWIE ((uint32_t)0x00000400)
#define GPHA_CTLR_CAEIE ((uint32_t)0x00000800)
#define GPHA_CTLR_CTCIE ((uint32_t)0x00001000)
#define GPHA_CTLR_CEIE ((uint32_t)0x00002000)
#define GPHA_CTLR_MODE ((uint32_t)0x00070000)
#define GPHA_CTLR_MODE_0 ((uint32_t)0x00010000)
#define GPHA_CTLR_MODE_1 ((uint32_t)0x00020000)
#define GPHA_CTLR_MODE_2 ((uint32_t)0x00040000)
/******************* Bit definition for GPHA_ISR register *******************/
#define GPHA_ISR_TCIF ((uint32_t)0x00000002)
#define GPHA_ISR_TWIF ((uint32_t)0x00000004)
#define GPHA_ISR_CAEIF ((uint32_t)0x00000008)
#define GPHA_ISR_CTCIF ((uint32_t)0x00000010)
#define GPHA_ISR_CEIF ((uint32_t)0x00000020)
/******************* Bit definition for GPHA_IFCR register *******************/
#define GPHA_IFCR_CTCIF ((uint32_t)0x00000002)
#define GPHA_IFCR_CTWIF ((uint32_t)0x00000004)
#define GPHA_IFCR_CAECIF ((uint32_t)0x00000008)
#define GPHA_IFCR_CCTCIF ((uint32_t)0x00000010)
#define GPHA_IFCR_CCEIF ((uint32_t)0x00000020)
/******************* Bit definition for GPHA_FGMAR register *******************/
#define GPHA_FGMAR_MA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_FGOR register *******************/
#define GPHA_FGOR_LO ((uint32_t)0x00003FFF)
/******************* Bit definition for GPHA_BGMAR register *******************/
#define GPHA_BGMAR_MA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_BGOR register *******************/
#define GPHA_BGOR_LO ((uint32_t)0x00003FFF)
/******************* Bit definition for GPHA_FGPFCCR register *******************/
#define GPHA_FGPFCCR_CM ((uint32_t)0x0000000F)
#define GPHA_FGPFCCR_CM_0 ((uint32_t)0x00000001)
#define GPHA_FGPFCCR_CM_1 ((uint32_t)0x00000002)
#define GPHA_FGPFCCR_CM_2 ((uint32_t)0x00000004)
#define GPHA_FGPFCCR_CM_3 ((uint32_t)0x00000008)
#define GPHA_FGPFCCR_CM_ARGB8888 ((uint32_t)0x00000000)
#define GPHA_FGPFCCR_CM_RGB888 ((uint32_t)0x00000001)
#define GPHA_FGPFCCR_CM_RGB565 ((uint32_t)0x00000002)
#define GPHA_FGPFCCR_CM_ARGB1555 ((uint32_t)0x00000003)
#define GPHA_FGPFCCR_CM_ARGB4444 ((uint32_t)0x00000004)
#define GPHA_FGPFCCR_CM_L8 ((uint32_t)0x00000005)
#define GPHA_FGPFCCR_CM_AL44 ((uint32_t)0x00000006)
#define GPHA_FGPFCCR_CM_AL88 ((uint32_t)0x00000007)
#define GPHA_FGPFCCR_CM_L4 ((uint32_t)0x00000008)
#define GPHA_FGPFCCR_CM_A8 ((uint32_t)0x00000009)
#define GPHA_FGPFCCR_CM_A4 ((uint32_t)0x0000000A)
#define GPHA_FGPFCCR_CM_YcbCr ((uint32_t)0x0000000B)
#define GPHA_FGPFCCR_CCM ((uint32_t)0x00000010)
#define GPHA_FGPFCCR_START ((uint32_t)0x00000020)
#define GPHA_FGPFCCR_CS ((uint32_t)0x0000FF00)
#define GPHA_FGPFCCR_AM ((uint32_t)0x00030000)
#define GPHA_FGPFCCR_AM_0 ((uint32_t)0x00010000)
#define GPHA_FGPFCCR_AM_1 ((uint32_t)0x00020000)
#define GPHA_FGPFCCR_CSS ((uint32_t)0x000C0000)
#define GPHA_FGPFCCR_CSS_0 ((uint32_t)0x00040000)
#define GPHA_FGPFCCR_CSS_1 ((uint32_t)0x00080000)
#define GPHA_FGPFCCR_AI ((uint32_t)0x00100000)
#define GPHA_FGPFCCR_RBS ((uint32_t)0x00200000)
#define GPHA_FGPFCCR_ALPHA ((uint32_t)0xFF000000)
/******************* Bit definition for GPHA_FGCOLR register *******************/
#define GPHA_FGCOLR_BLUE ((uint32_t)0x000000FF)
#define GPHA_FGCOLR_GREEN ((uint32_t)0x0000FF00)
#define GPHA_FGCOLR_RED ((uint32_t)0x00FF0000)
/******************* Bit definition for GPHA_BGPFCCR register *******************/
#define GPHA_BGPFCCR_CM ((uint32_t)0x0000000F)
#define GPHA_BGPFCCR_CM_0 ((uint32_t)0x00000001)
#define GPHA_BGPFCCR_CM_1 ((uint32_t)0x00000002)
#define GPHA_BGPFCCR_CM_2 ((uint32_t)0x00000004)
#define GPHA_BGPFCCR_CM_3 ((uint32_t)0x00000008)
#define GPHA_BGPFCCR_CM_ARGB8888 ((uint32_t)0x00000000)
#define GPHA_BGPFCCR_CM_RGB888 ((uint32_t)0x00000001)
#define GPHA_BGPFCCR_CM_RGB565 ((uint32_t)0x00000002)
#define GPHA_BGPFCCR_CM_ARGB1555 ((uint32_t)0x00000003)
#define GPHA_BGPFCCR_CM_ARGB4444 ((uint32_t)0x00000004)
#define GPHA_BGPFCCR_CM_L8 ((uint32_t)0x00000005)
#define GPHA_BGPFCCR_CM_AL44 ((uint32_t)0x00000006)
#define GPHA_BGPFCCR_CM_AL88 ((uint32_t)0x00000007)
#define GPHA_BGPFCCR_CM_L4 ((uint32_t)0x00000008)
#define GPHA_BGPFCCR_CM_A8 ((uint32_t)0x00000009)
#define GPHA_BGPFCCR_CM_A4 ((uint32_t)0x0000000A)
#define GPHA_BGPFCCR_CCM ((uint32_t)0x00000010)
#define GPHA_BGPFCCR_START ((uint32_t)0x00000020)
#define GPHA_BGPFCCR_CS ((uint32_t)0x0000FF00)
#define GPHA_BGPFCCR_AM ((uint32_t)0x00030000)
#define GPHA_BGPFCCR_AM_0 ((uint32_t)0x00010000)
#define GPHA_BGPFCCR_AM_1 ((uint32_t)0x00020000)
#define GPHA_BGPFCCR_AI ((uint32_t)0x00100000)
#define GPHA_BGPFCCR_RBS ((uint32_t)0x00200000)
#define GPHA_BGPFCCR_ALPHA ((uint32_t)0xFF000000)
/******************* Bit definition for GPHA_BGCOLR register *******************/
#define GPHA_BGCOLR_BLUE ((uint32_t)0x000000FF)
#define GPHA_BGCOLR_GREEN ((uint32_t)0x0000FF00)
#define GPHA_BGCOLR_RED ((uint32_t)0x00FF0000)
/******************* Bit definition for GPHA_FGCMAR register *******************/
#define GPHA_FGCMAR_MA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_BGCMAR register *******************/
#define GPHA_BGCMAR_MA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_OPFCCR register *******************/
#define GPHA_OPFCCR_CM ((uint32_t)0x00000007)
#define GPHA_OPFCCR_CM_0 ((uint32_t)0x00000001)
#define GPHA_OPFCCR_CM_1 ((uint32_t)0x00000002)
#define GPHA_OPFCCR_CM_2 ((uint32_t)0x00000004)
#define GPHA_OPFCCR_CM_ARGB8888 ((uint32_t)0x00000000)
#define GPHA_OPFCCR_CM_RGB888 ((uint32_t)0x00000001)
#define GPHA_OPFCCR_CM_RGB565 ((uint32_t)0x00000002)
#define GPHA_OPFCCR_CM_ARGB1555 ((uint32_t)0x00000003)
#define GPHA_OPFCCR_CM_ARGB4444 ((uint32_t)0x00000004)
#define GPHA_OPFCCR_AI ((uint32_t)0x00100000)
#define GPHA_OPFCCR_RBS ((uint32_t)0x00200000)
/******************* Bit definition for GPHA_OCOLR register *******************/
#define GPHA_OCOLR_BLUE ((uint32_t)0x000000FF)
#define GPHA_OCOLR_GREEN ((uint32_t)0x0000FF00)
#define GPHA_OCOLR_RED ((uint32_t)0x00FF0000)
#define GPHA_OCOLR_ALPHA ((uint32_t)0xFF000000)
/******************* Bit definition for GPHA_OMAR register *******************/
#define GPHA_OMAR_MA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_OOR register *******************/
#define GPHA_OOR_LO ((uint32_t)0x00003FFF)
/******************* Bit definition for GPHA_NLR register *******************/
#define GPHA_NLR_NL ((uint32_t)0x0000FFFF)
#define GPHA_NLR_PL ((uint32_t)0x3FFF0000)
/******************* Bit definition for GPHA_LWR register *******************/
#define GPHA_LWR_LW ((uint32_t)0x0000FFFF)
/******************* Bit definition for GPHA_AMTCR register *******************/
#define GPHA_AMTCR_EN ((uint32_t)0x00000001)
#define GPHA_AMTCR_DT ((uint32_t)0x0000FF00)
/******************* Bit definition for GPHA_FGCWRS register *******************/
#define GPHA_FGCWRS_FG_CLUT_INDEX ((uint32_t)0x000000FF)
#define GPHA_FGCWRS_FG_CLUT_EN ((uint32_t)0x00000100)
/******************* Bit definition for GPHA_FGCDAT register *******************/
#define GPHA_FGCDAT_FG_CLUT_DATA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for GPHA_BGCWRS register *******************/
#define GPHA_BGCWRS_BG_CLUT_INDEX ((uint32_t)0x000000FF)
#define GPHA_BGCWRS_BG_CLUT_EN ((uint32_t)0x00000100)
/******************* Bit definition for GPHA_BGCDAT register *******************/
#define GPHA_BGCDAT_BG_CLUT_DATA ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* QSPI */
/******************************************************************************/
/******************* Bit definition for QSPI_CR register *******************/
#define QSPI_CR_EN ((uint32_t)0x00000001)
#define QSPI_CR_ABORT ((uint32_t)0x00000002)
#define QSPI_CR_DMAEN ((uint32_t)0x00000004)
#define QSPI_CR_TCEN ((uint32_t)0x00000008)
#define QSPI_CR_START ((uint32_t)0x00000020)
#define QSPI_CR_DFM ((uint32_t)0x00000040)
#define QSPI_CR_FSEL ((uint32_t)0x00000080)
#define QSPI_CR_FTHRES ((uint32_t)0x00001F00)
#define QSPI_CR_FTHRES_0 ((uint32_t)0x00000100)
#define QSPI_CR_FTHRES_1 ((uint32_t)0x00000200)
#define QSPI_CR_FTHRES_2 ((uint32_t)0x00000400)
#define QSPI_CR_FTHRES_3 ((uint32_t)0x00000800)
#define QSPI_CR_FTHRES_4 ((uint32_t)0x00001000)
#define QSPI_CR_TEIE ((uint32_t)0x00010000)
#define QSPI_CR_TCIE ((uint32_t)0x00020000)
#define QSPI_CR_FTIE ((uint32_t)0x00040000)
#define QSPI_CR_SMIE ((uint32_t)0x00080000)
#define QSPI_CR_TOIE ((uint32_t)0x00100000)
#define QSPI_CR_APMS ((uint32_t)0x00400000)
#define QSPI_CR_PMM ((uint32_t)0x00800000)
#define QSPI_CR_PRESCALER ((uint32_t)0xFF000000)
#define QSPI_CR_PRESCALER_0 ((uint32_t)0x01000000)
#define QSPI_CR_PRESCALER_1 ((uint32_t)0x02000000)
#define QSPI_CR_PRESCALER_2 ((uint32_t)0x04000000)
#define QSPI_CR_PRESCALER_3 ((uint32_t)0x08000000)
#define QSPI_CR_PRESCALER_4 ((uint32_t)0x10000000)
#define QSPI_CR_PRESCALER_5 ((uint32_t)0x20000000)
#define QSPI_CR_PRESCALER_6 ((uint32_t)0x40000000)
#define QSPI_CR_PRESCALER_7 ((uint32_t)0x80000000)
/******************* Bit definition for QSPI_DCR register *******************/
#define QSPI_DCR_CKMODE ((uint32_t)0x00000001)
#define QSPI_DCR_CSHT ((uint32_t)0x00000700)
#define QSPI_DCR_CSHT_0 ((uint32_t)0x00000100)
#define QSPI_DCR_CSHT_1 ((uint32_t)0x00000200)
#define QSPI_DCR_CSHT_2 ((uint32_t)0x00000400)
#define QSPI_DCR_FSIZE ((uint32_t)0x001F0000)
#define QSPI_DCR_FSIZE_0 ((uint32_t)0x00010000)
#define QSPI_DCR_FSIZE_1 ((uint32_t)0x00020000)
#define QSPI_DCR_FSIZE_2 ((uint32_t)0x00040000)
#define QSPI_DCR_FSIZE_3 ((uint32_t)0x00080000)
#define QSPI_DCR_FSIZE_4 ((uint32_t)0x00100000)
/******************* Bit definition for QSPI_SR register *******************/
#define QSPI_SR_TEF ((uint32_t)0x00000001)
#define QSPI_SR_TCF ((uint32_t)0x00000002)
#define QSPI_SR_FTF ((uint32_t)0x00000004)
#define QSPI_SR_SMF ((uint32_t)0x00000008)
#define QSPI_SR_TOF ((uint32_t)0x00000010)
#define QSPI_SR_BUSY ((uint32_t)0x00000020)
#define QSPI_SR_FLEVEL ((uint32_t)0x00003F00)
#define QSPI_SR_FLEVEL_0 ((uint32_t)0x00000100)
#define QSPI_SR_FLEVEL_1 ((uint32_t)0x00000200)
#define QSPI_SR_FLEVEL_2 ((uint32_t)0x00000400)
#define QSPI_SR_FLEVEL_3 ((uint32_t)0x00000800)
#define QSPI_SR_FLEVEL_4 ((uint32_t)0x00001000)
#define QSPI_SR_FLEVEL_5 ((uint32_t)0x00002000)
#define QSPI_SR_IDLEF ((uint32_t)0x00010000)
/******************* Bit definition for QSPI_FCR register *******************/
#define QSPI_FCR_CTEF ((uint32_t)0x00000001)
#define QSPI_FCR_CTCF ((uint32_t)0x00000002)
#define QSPI_FCR_CSMF ((uint32_t)0x00000008)
#define QSPI_FCR_CTOF ((uint32_t)0x00000010)
/******************* Bit definition for QSPI_DLR register *******************/
#define QSPI_DLR_DL ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_CCR register *******************/
#define QSPI_CCR_INSTRUCTION ((uint32_t)0x000000FF)
#define QSPI_CCR_INSTRUCTION_0 ((uint32_t)0x00000001)
#define QSPI_CCR_INSTRUCTION_1 ((uint32_t)0x00000002)
#define QSPI_CCR_INSTRUCTION_2 ((uint32_t)0x00000004)
#define QSPI_CCR_INSTRUCTION_3 ((uint32_t)0x00000008)
#define QSPI_CCR_INSTRUCTION_4 ((uint32_t)0x00000010)
#define QSPI_CCR_INSTRUCTION_5 ((uint32_t)0x00000020)
#define QSPI_CCR_INSTRUCTION_6 ((uint32_t)0x00000040)
#define QSPI_CCR_INSTRUCTION_7 ((uint32_t)0x00000080)
#define QSPI_CCR_IMODE ((uint32_t)0x00000300)
#define QSPI_CCR_IMODE_0 ((uint32_t)0x00000100)
#define QSPI_CCR_IMODE_1 ((uint32_t)0x00000200)
#define QSPI_CCR_ADMODE ((uint32_t)0x00000C00)
#define QSPI_CCR_ADMODE_0 ((uint32_t)0x00000400)
#define QSPI_CCR_ADMODE_1 ((uint32_t)0x00000800)
#define QSPI_CCR_ADSIZE ((uint32_t)0x00003000)
#define QSPI_CCR_ADSIZE_0 ((uint32_t)0x00001000)
#define QSPI_CCR_ADSIZE_1 ((uint32_t)0x00002000)
#define QSPI_CCR_ABMODE ((uint32_t)0x0000C000)
#define QSPI_CCR_ABMODE_0 ((uint32_t)0x00004000)
#define QSPI_CCR_ABMODE_1 ((uint32_t)0x00008000)
#define QSPI_CCR_ABSIZE ((uint32_t)0x00030000)
#define QSPI_CCR_ABSIZE_0 ((uint32_t)0x00010000)
#define QSPI_CCR_ABSIZE_1 ((uint32_t)0x00020000)
#define QSPI_CCR_DCYC ((uint32_t)0x007C0000)
#define QSPI_CCR_DCYC_0 ((uint32_t)0x00040000)
#define QSPI_CCR_DCYC_1 ((uint32_t)0x00080000)
#define QSPI_CCR_DCYC_2 ((uint32_t)0x00100000)
#define QSPI_CCR_DCYC_3 ((uint32_t)0x00200000)
#define QSPI_CCR_DCYC_4 ((uint32_t)0x00400000)
#define QSPI_CCR_DMODE ((uint32_t)0x03000000)
#define QSPI_CCR_DMODE_0 ((uint32_t)0x01000000)
#define QSPI_CCR_DMODE_1 ((uint32_t)0x02000000)
#define QSPI_CCR_FMODE ((uint32_t)0x0C000000)
#define QSPI_CCR_FMODE_0 ((uint32_t)0x04000000)
#define QSPI_CCR_FMODE_1 ((uint32_t)0x08000000)
#define QSPI_CCR_SIOO ((uint32_t)0x10000000)
/******************* Bit definition for QSPI_AR register *******************/
#define QSPI_AR_ADDR ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_ABR register *******************/
#define QSPI_ABR_ALTERNATE ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_DR register *******************/
#define QSPI_DR_DATA ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_PSMKR register *******************/
#define QSPI_PSMKR_MASK ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_PSMAR register *******************/
#define QSPI_PSMAR_MATCH ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for QSPI_PIR register *******************/
#define QSPI_PIR_INTERVAL ((uint16_t)0xFFFF)
/******************* Bit definition for QSPI_LPIR register *******************/
#define QSPI_LPIR_TIMEOUT ((uint16_t)0xFFFF)
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* ch32h417_gpio.c -----------------------------------------------------------*/
/* MASK */
#define ECR_PORTPINCONFIG_MASK ((uint16_t)0xFF80)
#define LSB_MASK ((uint16_t)0xFFFF)
#define DBGAFR_POSITION_MASK ((uint32_t)0x000F0000)
#define DBGAFR_SWJCFG_MASK ((uint32_t)0xF0FFFFFF)
#define DBGAFR_LOCATION_MASK ((uint32_t)0x00200000)
#define DBGAFR_NUMBITS_MASK ((uint32_t)0x00100000)
/* ch32h417_adc.c ------------------------------------------------------------*/
/* ADC DISCNUM mask */
#define CTLR1_DISCNUM_Reset ((uint32_t)0xFFFF1FFF)
/* ADC DISCEN mask */
#define CTLR1_DISCEN_Set ((uint32_t)0x00000800)
#define CTLR1_DISCEN_Reset ((uint32_t)0xFFFFF7FF)
/* ADC JAUTO mask */
#define CTLR1_JAUTO_Set ((uint32_t)0x00000400)
#define CTLR1_JAUTO_Reset ((uint32_t)0xFFFFFBFF)
/* ADC JDISCEN mask */
#define CTLR1_JDISCEN_Set ((uint32_t)0x00001000)
#define CTLR1_JDISCEN_Reset ((uint32_t)0xFFFFEFFF)
/* ADC AWDCH mask */
#define CTLR1_AWDCH_Reset ((uint32_t)0xFFFFFFE0)
/* ADC Analog watchdog enable mode mask */
#define CTLR1_AWDMode_Reset ((uint32_t)0xFF3FFDFF)
/* CTLR1 register Mask */
/* CTLR1_CLEAR_Mask -> ADC_CTLR1_CLEAR_Mask */
#define ADC_CTLR1_CLEAR_Mask ((uint32_t)0xE0F0FEFF)
/* ADC ADON mask */
#define CTLR2_ADON_Set ((uint32_t)0x00000001)
#define CTLR2_ADON_Reset ((uint32_t)0xFFFFFFFE)
/* ADC DMA mask */
#define CTLR2_DMA_Set ((uint32_t)0x00000100)
#define CTLR2_DMA_Reset ((uint32_t)0xFFFFFEFF)
/* ADC RSTCAL mask */
#define CTLR2_RSTCAL_Set ((uint32_t)0x00000008)
/* ADC CAL mask */
#define CTLR2_CAL_Set ((uint32_t)0x00000004)
/* ADC SWSTART mask */
#define CTLR2_SWSTART_Set ((uint32_t)0x00400000)
/* ADC EXTTRIG mask */
#define CTLR2_EXTTRIG_Set ((uint32_t)0x00100000)
#define CTLR2_EXTTRIG_Reset ((uint32_t)0xFFEFFFFF)
/* ADC Software start mask */
#define CTLR2_EXTTRIG_SWSTART_Set ((uint32_t)0x00500000)
#define CTLR2_EXTTRIG_SWSTART_Reset ((uint32_t)0xFFAFFFFF)
/* ADC JEXTSEL mask */
#define CTLR2_JEXTSEL_Reset ((uint32_t)0xFFFF8FFF)
/* ADC JEXTTRIG mask */
#define CTLR2_JEXTTRIG_Set ((uint32_t)0x00008000)
#define CTLR2_JEXTTRIG_Reset ((uint32_t)0xFFFF7FFF)
/* ADC JSWSTART mask */
#define CTLR2_JSWSTART_Set ((uint32_t)0x00200000)
/* ADC injected software start mask */
#define CTLR2_JEXTTRIG_JSWSTART_Set ((uint32_t)0x00208000)
#define CTLR2_JEXTTRIG_JSWSTART_Reset ((uint32_t)0xFFDF7FFF)
/* ADC TSPD mask */
#define CTLR2_TSVREFE_Set ((uint32_t)0x00800000)
#define CTLR2_TSVREFE_Reset ((uint32_t)0xFF7FFFFF)
/* CTLR2 register Mask */
#define CTLR2_CLEAR_Mask ((uint32_t)0xFFF1F7FD)
/* ADC SQx mask */
#define RSQR3_SQ_Set ((uint32_t)0x0000001F)
#define RSQR2_SQ_Set ((uint32_t)0x0000001F)
#define RSQR1_SQ_Set ((uint32_t)0x0000001F)
/* RSQR1 register Mask */
#define RSQR1_CLEAR_Mask ((uint32_t)0xFF0FFFFF)
/* ADC JSQx mask */
#define ISQR_JSQ_Set ((uint32_t)0x0000001F)
/* ADC JL mask */
#define ISQR_JL_Set ((uint32_t)0x00300000)
#define ISQR_JL_Reset ((uint32_t)0xFFCFFFFF)
/* ADC SMPx mask */
#define SAMPTR1_SMP_Set ((uint32_t)0x00000007)
#define SAMPTR2_SMP_Set ((uint32_t)0x00000007)
/* ADC IDATARx registers offset */
#define IDATAR_Offset ((uint8_t)0x28)
/* ADC1 RDATAR register base address */
#define RDATAR_ADDRESS ((uint32_t)0x4001244C)
/* ch32h417_can.c ------------------------------------------------------------*/
/* CAN CTLR Register bits */
#define CTLR_DBF ((uint32_t)0x00010000)
/* CAN Mailbox Transmit Request */
#define TMIDxR_TXRQ ((uint32_t)0x00000001)
/* CAN FCTLR Register bits */
#define FCTLR_FINIT ((uint32_t)0x00000001)
/* Time out for INAK bit */
#define INAK_TIMEOUT ((uint32_t)0x0000FFFF)
/* Time out for SLAK bit */
#define SLAK_TIMEOUT ((uint32_t)0x0000FFFF)
/* Flags in TSTATR register */
#define CAN_FLAGS_TSTATR ((uint32_t)0x08000000)
/* Flags in RFIFO1 register */
#define CAN_FLAGS_RFIFO1 ((uint32_t)0x04000000)
/* Flags in RFIFO0 register */
#define CAN_FLAGS_RFIFO0 ((uint32_t)0x02000000)
/* Flags in STATR register */
#define CAN_FLAGS_STATR ((uint32_t)0x01000000)
/* Flags in ERRSR register */
#define CAN_FLAGS_ERRSR ((uint32_t)0x00F00000)
/* Mailboxes definition */
#define CAN_TXMAILBOX_0 ((uint8_t)0x00)
#define CAN_TXMAILBOX_1 ((uint8_t)0x01)
#define CAN_TXMAILBOX_2 ((uint8_t)0x02)
#define CAN_MODE_MASK ((uint32_t) 0x00000003)
/* ch32v417_dac.c ------------------------------------------------------------*/
/* CTLR register Mask */
#define CTLR_CLEAR_MASK ((uint32_t)0x00000FFE)
/* DAC Dual Channels SWTR masks */
#define DUAL_SWTR_SET ((uint32_t)0x00000003)
#define DUAL_SWTR_RESET ((uint32_t)0xFFFFFFFC)
/* DHR registers offsets */
#define DHR12R1_OFFSET ((uint32_t)0x00000008)
#define DHR12R2_OFFSET ((uint32_t)0x00000014)
#define DHR12RD_OFFSET ((uint32_t)0x00000020)
/* DOR register offset */
#define DOR_OFFSET ((uint32_t)0x0000002C)
/* ch32v00x_dbgmcu.c ---------------------------------------------------------*/
#define IDCODE_DEVID_MASK ((uint32_t)0x0000FFFF)
/* ch32h417_dma.c ------------------------------------------------------------*/
/* DMA1 Channelx interrupt pending bit masks */
#define DMA1_Channel1_IT_Mask ((uint32_t)(DMA_GIF1 | DMA_TCIF1 | DMA_HTIF1 | DMA_TEIF1))
#define DMA1_Channel2_IT_Mask ((uint32_t)(DMA_GIF2 | DMA_TCIF2 | DMA_HTIF2 | DMA_TEIF2))
#define DMA1_Channel3_IT_Mask ((uint32_t)(DMA_GIF3 | DMA_TCIF3 | DMA_HTIF3 | DMA_TEIF3))
#define DMA1_Channel4_IT_Mask ((uint32_t)(DMA_GIF4 | DMA_TCIF4 | DMA_HTIF4 | DMA_TEIF4))
#define DMA1_Channel5_IT_Mask ((uint32_t)(DMA_GIF5 | DMA_TCIF5 | DMA_HTIF5 | DMA_TEIF5))
#define DMA1_Channel6_IT_Mask ((uint32_t)(DMA_GIF6 | DMA_TCIF6 | DMA_HTIF6 | DMA_TEIF6))
#define DMA1_Channel7_IT_Mask ((uint32_t)(DMA_GIF7 | DMA_TCIF7 | DMA_HTIF7 | DMA_TEIF7))
#define DMA1_Channel8_IT_Mask ((uint32_t)(DMA_GIF8 | DMA_TCIF8 | DMA_HTIF8 | DMA_TEIF8))
/* DMA2 Channelx interrupt pending bit masks */
#define DMA2_Channel1_IT_Mask ((uint32_t)(DMA_GIF1 | DMA_TCIF1 | DMA_HTIF1 | DMA_TEIF1))
#define DMA2_Channel2_IT_Mask ((uint32_t)(DMA_GIF2 | DMA_TCIF2 | DMA_HTIF2 | DMA_TEIF2))
#define DMA2_Channel3_IT_Mask ((uint32_t)(DMA_GIF3 | DMA_TCIF3 | DMA_HTIF3 | DMA_TEIF3))
#define DMA2_Channel4_IT_Mask ((uint32_t)(DMA_GIF4 | DMA_TCIF4 | DMA_HTIF4 | DMA_TEIF4))
#define DMA2_Channel5_IT_Mask ((uint32_t)(DMA_GIF5 | DMA_TCIF5 | DMA_HTIF5 | DMA_TEIF5))
#define DMA2_Channel6_IT_Mask ((uint32_t)(DMA_GIF6 | DMA_TCIF6 | DMA_HTIF6 | DMA_TEIF6))
#define DMA2_Channel7_IT_Mask ((uint32_t)(DMA_GIF7 | DMA_TCIF7 | DMA_HTIF7 | DMA_TEIF7))
#define DMA2_Channel8_IT_Mask ((uint32_t)(DMA_GIF8 | DMA_TCIF8 | DMA_HTIF8 | DMA_TEIF8))
/* DMA registers Masks */
#define CFGR_CLEAR_Mask ((uint32_t)0xFFFE000F)
/* ch32v00x_exti.c -----------------------------------------------------------*/
/* No interrupt selected */
#define EXTI_LINENONE ((uint32_t)0x00000)
/* ch32h417_flash.c ----------------------------------------------------------*/
/* Flash Control Register bits */
#define CR_PG_Set ((uint32_t)0x00000001)
#define CR_PG_Reset ((uint32_t)0xFFFFFFFE)
#define CR_PER_Set ((uint32_t)0x00000002)
#define CR_PER_Reset ((uint32_t)0xFFFFFFFD)
#define CR_OPTPG_Set ((uint32_t)0x00000010)
#define CR_OPTPG_Reset ((uint32_t)0xFFFFFFEF)
#define CR_OPTER_Set ((uint32_t)0x00000020)
#define CR_OPTER_Reset ((uint32_t)0xFFFFFFDF)
#define CR_STRT_Set ((uint32_t)0x00000040)
#define CR_LOCK_Set ((uint32_t)0x00000080)
#define CR_FLOCK_Set ((uint32_t)0x00008000)
#define CR_PAGE_PG ((uint32_t)0x00010000)
#define CR_BER ((uint32_t)0x00040000)
#define CR_PG_STRT ((uint32_t)0x00200000)
/* FLASH Status Register bits */
#define SR_BSY ((uint32_t)0x00000001)
#define SR_WR_BSY ((uint32_t)0x00000002)
#define SR_WRPRTERR ((uint32_t)0x00000010)
#define SR_EOP ((uint32_t)0x00000020)
/* FLASH Mask */
#define RDPRT_Mask ((uint32_t)0x00000002)
#define WRP0_Mask ((uint32_t)0x000000FF)
#define WRP1_Mask ((uint32_t)0x0000FF00)
#define WRP2_Mask ((uint32_t)0x00FF0000)
#define WRP3_Mask ((uint32_t)0xFF000000)
#define OB_USER_BFB2 ((uint16_t)0x0008)
/* FLASH Keys */
#define RDP_Key ((uint16_t)0x00A5)
#define FLASH_KEY1 ((uint32_t)0x45670123)
#define FLASH_KEY2 ((uint32_t)0xCDEF89AB)
/* FLASH BANK address */
#define FLASH_BANK1_END_ADDRESS ((uint32_t)0x807FFFF)
/* Delay definition */
#define EraseTimeout ((uint32_t)0x0A000000)
#define ProgramTimeout ((uint32_t)0x0A000000)
/* Flash Program Valid Address */
#define ValidAddrStart (FLASH_BASE)
#define ValidAddrEnd_Dual (FLASH_BASE + 0xF0000)
#define ValidAddrEnd_Signal (FLASH_BASE + 0x78000)
/* FLASH Size */
#define Size_256B 0x100
#define Size_4KB 0x1000
#define Size_8KB 0x2000
#define Size_32KB 0x8000
#define Size_64KB 0x10000
/* ch32h417_fmc.c -----------------------------------------------------------*/
/* FMC BCRx Mask */
#define BCR_MBKEN_Set ((uint32_t)0x00000001)
#define BCR_MBKEN_Reset ((uint32_t)0x000FFFFE)
#define BCR_FACCEN_Set ((uint32_t)0x00000040)
/* FMC PCRx Mask */
#define PCR_PBKEN_Set ((uint32_t)0x00000004)
#define PCR_PBKEN_Reset ((uint32_t)0x000FFFFB)
#define PCR_ECCEN_Set ((uint32_t)0x00000040)
#define PCR_ECCEN_Reset ((uint32_t)0x000FFFBF)
#define PCR_MemoryType_NAND ((uint32_t)0x00000008)
/* ch32h417_i2c.c ------------------------------------------------------------*/
/* I2C SPE mask */
#define CTLR1_PE_Set ((uint16_t)0x0001)
#define CTLR1_PE_Reset ((uint16_t)0xFFFE)
/* I2C START mask */
#define CTLR1_START_Set ((uint16_t)0x0100)
#define CTLR1_START_Reset ((uint16_t)0xFEFF)
/* I2C STOP mask */
#define CTLR1_STOP_Set ((uint16_t)0x0200)
#define CTLR1_STOP_Reset ((uint16_t)0xFDFF)
/* I2C ACK mask */
#define CTLR1_ACK_Set ((uint16_t)0x0400)
#define CTLR1_ACK_Reset ((uint16_t)0xFBFF)
/* I2C ENGC mask */
#define CTLR1_ENGC_Set ((uint16_t)0x0040)
#define CTLR1_ENGC_Reset ((uint16_t)0xFFBF)
/* I2C SWRST mask */
#define CTLR1_SWRST_Set ((uint16_t)0x8000)
#define CTLR1_SWRST_Reset ((uint16_t)0x7FFF)
/* I2C PEC mask */
#define CTLR1_PEC_Set ((uint16_t)0x1000)
#define CTLR1_PEC_Reset ((uint16_t)0xEFFF)
/* I2C ENPEC mask */
#define CTLR1_ENPEC_Set ((uint16_t)0x0020)
#define CTLR1_ENPEC_Reset ((uint16_t)0xFFDF)
/* I2C ENARP mask */
#define CTLR1_ENARP_Set ((uint16_t)0x0010)
#define CTLR1_ENARP_Reset ((uint16_t)0xFFEF)
/* I2C NOSTRETCH mask */
#define CTLR1_NOSTRETCH_Set ((uint16_t)0x0080)
#define CTLR1_NOSTRETCH_Reset ((uint16_t)0xFF7F)
/* I2C registers Masks */
/* CTLR1_CLEAR_Mask -> I2C_CTLR1_CLEAR_Mask */
#define I2C_CTLR1_CLEAR_Mask ((uint16_t)0xFBF5)
/* I2C DMAEN mask */
#define CTLR2_DMAEN_Set ((uint16_t)0x0800)
#define CTLR2_DMAEN_Reset ((uint16_t)0xF7FF)
/* I2C LAST mask */
#define CTLR2_LAST_Set ((uint16_t)0x1000)
#define CTLR2_LAST_Reset ((uint16_t)0xEFFF)
/* I2C FREQ mask */
#define CTLR2_FREQ_Reset ((uint16_t)0xFFC0)
/* I2C ADD0 mask */
#define OADDR1_ADD0_Set ((uint16_t)0x0001)
#define OADDR1_ADD0_Reset ((uint16_t)0xFFFE)
/* I2C ENDUAL mask */
#define OADDR2_ENDUAL_Set ((uint16_t)0x0001)
#define OADDR2_ENDUAL_Reset ((uint16_t)0xFFFE)
/* I2C ADD2 mask */
#define OADDR2_ADD2_Reset ((uint16_t)0xFF01)
/* I2C F/S mask */
#define CKCFGR_FS_Set ((uint16_t)0x8000)
/* I2C CCR mask */
#define CKCFGR_CCR_Set ((uint16_t)0x0FFF)
/* I2C FLAG mask */
/* FLAG_Mask -> I2C_FLAG_Mask*/
#define I2C_FLAG_Mask ((uint32_t)0x00FFFFFF)
/* I2C Interrupt Enable mask */
#define ITEN_Mask ((uint32_t)0x07000000)
/* ch32v00x_iwdg.c -----------------------------------------------------------*/
/* CTLR register bit mask */
#define CTLR_KEY_Reload ((uint16_t)0xAAAA)
#define CTLR_KEY_Enable ((uint16_t)0xCCCC)
/* ch32h417_pwr.c ------------------------------------------------------------*/
/* PWR registers bit mask */
/* CTLR register bit mask */
#define CTLR_DS_MASK ((uint32_t)0xFFFFFFFE)
#define CTLR_PLS_MASK ((uint32_t)0xFFFFFF1F)
/* ch32h417_rcc.c ------------------------------------------------------------*/
/* CTLR register bit mask */
#define CTLR_HSEBYP_Reset ((uint32_t)0xFFFBFFFF)
#define CTLR_HSEBYP_Set ((uint32_t)0x00040000)
#define CTLR_HSEON_Reset ((uint32_t)0xFFFEFFFF)
#define CTLR_HSEON_Set ((uint32_t)0x00010000)
#define CTLR_HSITRIM_Mask ((uint32_t)0xFFFFFF07)
/* CFGR0 register bit mask */
#define CFGR0_SWS_Mask ((uint32_t)0x0000000C)
#define CFGR0_SW_Mask ((uint32_t)0xFFFFFFFC)
#define CFGR0_HPRE_Set_Mask ((uint32_t)0x000000F0)
/* RSTSCKR register bit mask */
#define RSTSCKR_RMVF_Set ((uint32_t)0x01000000)
/* RCC Flag Mask */
/* FLAG_Mask -> RCC_FLAG_Mask */
#define RCC_FLAG_Mask ((uint8_t)0x1F)
#ifndef __ASSEMBLER__
static __I uint8_t PLLMULTable[32] = {4,6,7,8,17,9,19,10,21,11,23,12,25,13,14,15,16,17,18,19,20,22,24,26,28,30,32,34,36,38,40,59};
static __I uint8_t HBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
static __I uint8_t SERDESPLLMULTable[16] = {25, 28, 30, 32, 35, 38, 40, 45, 50, 56, 60, 64, 70, 76, 80, 90};
static __I uint8_t FPRETable[4] = {0, 1, 2, 2};
static __I uint8_t PPRE2Table[8] = {0, 0, 0, 0, 1, 2, 3, 4};
static __I uint8_t ADCPRETable[4] = {2, 4, 6, 8};
#endif
/* ch32v20x_rtc.c ------------------------------------------------------------*/
/* RTC_Private_Defines */
#define RTC_LSB_MASK ((uint32_t)0x0000FFFF) /* RTC LSB Mask */
#define PRLH_MSB_MASK ((uint32_t)0x000F0000) /* RTC Prescaler MSB Mask */
/* ch32v00x_sdio.c -----------------------------------------------------------*/
#define SDIO_OFFSET (SDIO_BASE - PERIPH_BASE)
/* CLKCR register clear mask */
#define CLKCR_CLEAR_MASK ((uint32_t)0xFFFF8100)
/* SDIO PWRCTRL Mask */
#define PWR_PWRCTRL_MASK ((uint32_t)0xFFFFFFFC)
/* SDIO DCTRL Clear Mask */
#define DCTRL_CLEAR_MASK ((uint32_t)0xFFFFFF08)
/* CMD Register clear mask */
#define CMD_CLEAR_MASK ((uint32_t)0xFFFFF800)
/* SDIO RESP Registers Address */
#define SDIO_RESP_ADDR ((uint32_t)(SDIO_BASE + 0x14))
/* ch32v00x_spi.c ------------------------------------------------------------*/
/* SPI SPE mask */
#define CTLR1_SPE_Set ((uint16_t)0x0040)
#define CTLR1_SPE_Reset ((uint16_t)0xFFBF)
/* I2S I2SE mask */
#define I2SCFGR_I2SE_Set ((uint16_t)0x0400)
#define I2SCFGR_I2SE_Reset ((uint16_t)0xFBFF)
/* SPI CRCNext mask */
#define CTLR1_CRCNext_Set ((uint16_t)0x1000)
/* SPI CRCEN mask */
#define CTLR1_CRCEN_Set ((uint16_t)0x2000)
#define CTLR1_CRCEN_Reset ((uint16_t)0xDFFF)
/* SPI SSOE mask */
#define CTLR2_SSOE_Set ((uint16_t)0x0004)
#define CTLR2_SSOE_Reset ((uint16_t)0xFFFB)
/* SPI registers Masks */
//Editor's Note: Overloaded Definition
#define SPI_CTLR1_CLEAR_Mask ((uint16_t)0x3040)
#define I2SCFGR_CLEAR_Mask ((uint16_t)0xF040)
/* SPI or I2S mode selection masks */
#define SPI_Mode_Select ((uint16_t)0xF7FF)
#define I2S_Mode_Select ((uint16_t)0x0800)
/* I2S clock source selection masks */
#define I2S2_CLOCK_SRC ((uint32_t)(0x00020000))
#define I2S3_CLOCK_SRC ((uint32_t)(0x00040000))
#define I2S_MUL_MASK ((uint32_t)(0x0000F000))
#define I2S_DIV_MASK ((uint32_t)(0x000000F0))
/* ch32v00x_tim.c ------------------------------------------------------------*/
/* TIM registers bit mask */
#define SMCFGR_ETR_Mask ((uint16_t)0x00FF)
#define CHCTLR_Offset ((uint16_t)0x0018)
#define CCER_CCE_Set ((uint16_t)0x0001)
#define CCER_CCNE_Set ((uint16_t)0x0004)
/* ch32h417_usart.c ----------------------------------------------------------*/
/* USART_Private_Defines */
#define CTLR1_UE_Set ((uint16_t)0x2000) /* USART Enable Mask */
#define CTLR1_UE_Reset ((uint16_t)0xDFFF) /* USART Disable Mask */
#define CTLR1_WAKE_Mask ((uint16_t)0xF7FF) /* USART WakeUp Method Mask */
#define CTLR1_RWU_Set ((uint16_t)0x0002) /* USART mute mode Enable Mask */
#define CTLR1_RWU_Reset ((uint16_t)0xFFFD) /* USART mute mode Enable Mask */
#define CTLR1_SBK_Set ((uint16_t)0x0001) /* USART Break Character send Mask */
/* CTLR1_CLEAR_Mask -> USART_CTLR1_CLEAR_Mask */
#define USART_CTLR1_CLEAR_Mask ((uint16_t)0x29F3) /* USART CTLR1 Mask */
#define CTLR2_Address_Mask ((uint16_t)0xFFF0) /* USART address Mask */
#define CTLR2_LINEN_Set ((uint16_t)0x4000) /* USART LIN Enable Mask */
#define CTLR2_LINEN_Reset ((uint16_t)0xBFFF) /* USART LIN Disable Mask */
#define CTLR2_LBDL_Mask ((uint16_t)0xFFDF) /* USART LIN Break detection Mask */
#define CTLR2_STOP_CLEAR_Mask ((uint16_t)0xCFFF) /* USART CTLR2 STOP Bits Mask */
#define CTLR2_CLOCK_CLEAR_Mask ((uint16_t)0xF0FF) /* USART CTLR2 Clock Mask */
#define CTLR3_SCEN_Set ((uint16_t)0x0020) /* USART SC Enable Mask */
#define CTLR3_SCEN_Reset ((uint16_t)0xFFDF) /* USART SC Disable Mask */
#define CTLR3_NACK_Set ((uint16_t)0x0010) /* USART SC NACK Enable Mask */
#define CTLR3_NACK_Reset ((uint16_t)0xFFEF) /* USART SC NACK Disable Mask */
#define CTLR3_HDSEL_Set ((uint16_t)0x0008) /* USART Half-Duplex Enable Mask */
#define CTLR3_HDSEL_Reset ((uint16_t)0xFFF7) /* USART Half-Duplex Disable Mask */
#define CTLR3_IRLP_Mask ((uint16_t)0xFFFB) /* USART IrDA LowPower mode Mask */
#define CTLR3_CLEAR_Mask ((uint16_t)0xFCFF) /* USART CTLR3 Mask */
#define CTLR3_IREN_Set ((uint16_t)0x0002) /* USART IrDA Enable Mask */
#define CTLR3_IREN_Reset ((uint16_t)0xFFFD) /* USART IrDA Disable Mask */
#define GPR_LSB_Mask ((uint16_t)0x00FF) /* Guard Time Register LSB Mask */
#define GPR_MSB_Mask ((uint16_t)0xFF00) /* Guard Time Register MSB Mask */
#define IT_Mask ((uint16_t)0x001F) /* USART Interrupt Mask */
/* ch32v00x_wwdg.c ------------------------------------------------------------*/
/* CTLR register bit mask */
#define CTLR_WDGA_Set ((uint32_t)0x00000080)
/* CFGR register bit mask */
#define CFGR_WDGTB_Mask ((uint32_t)0xFFFFFE7F)
#define CFGR_W_Mask ((uint32_t)0xFFFFFF80)
#define BIT_Mask ((uint8_t)0x7F)
/* ch32h417_adc.h ------------------------------------------------------------*/
/* ADC_mode */
#define ADC_Mode_Independent ((uint32_t)0x00000000)
#define ADC_Mode_RegInjecSimult ((uint32_t)0x00010000)
#define ADC_Mode_RegSimult_AlterTrig ((uint32_t)0x00020000)
#define ADC_Mode_InjecSimult_FastInterl ((uint32_t)0x00030000)
#define ADC_Mode_InjecSimult_SlowInterl ((uint32_t)0x00040000)
#define ADC_Mode_InjecSimult ((uint32_t)0x00050000)
#define ADC_Mode_RegSimult ((uint32_t)0x00060000)
#define ADC_Mode_FastInterl ((uint32_t)0x00070000)
#define ADC_Mode_SlowInterl ((uint32_t)0x00080000)
#define ADC_Mode_AlterTrig ((uint32_t)0x00090000)
/* ADC_external_trigger_sources_for_regular_channels_conversion */
#define ADC_ExternalTrigConv_T1_CC1 ((uint32_t)0x00000000)
#define ADC_ExternalTrigConv_T1_CC2 ((uint32_t)0x00020000)
#define ADC_ExternalTrigConv_T1_CC3 ((uint32_t)0x00040000)
#define ADC_ExternalTrigConv_T2_CC2 ((uint32_t)0x00060000)
#define ADC_ExternalTrigConv_T3_TRGO ((uint32_t)0x00080000)
#define ADC_ExternalTrigConv_T4_CC4 ((uint32_t)0x000A0000)
#define ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO ((uint32_t)0x000C0000)
#define ADC_ExternalTrigConv_None ((uint32_t)0x000E0000)
/* ADC_data_align */
#define ADC_DataAlign_Right ((uint32_t)0x00000000)
#define ADC_DataAlign_Left ((uint32_t)0x00000800)
/* ADC_channels */
#define ADC_Channel_0 ((uint8_t)0x00)
#define ADC_Channel_1 ((uint8_t)0x01)
#define ADC_Channel_2 ((uint8_t)0x02)
#define ADC_Channel_3 ((uint8_t)0x03)
#define ADC_Channel_4 ((uint8_t)0x04)
#define ADC_Channel_5 ((uint8_t)0x05)
#define ADC_Channel_6 ((uint8_t)0x06)
#define ADC_Channel_7 ((uint8_t)0x07)
#define ADC_Channel_8 ((uint8_t)0x08)
#define ADC_Channel_9 ((uint8_t)0x09)
#define ADC_Channel_10 ((uint8_t)0x0A)
#define ADC_Channel_11 ((uint8_t)0x0B)
#define ADC_Channel_12 ((uint8_t)0x0C)
#define ADC_Channel_13 ((uint8_t)0x0D)
#define ADC_Channel_14 ((uint8_t)0x0E)
#define ADC_Channel_15 ((uint8_t)0x0F)
#define ADC_Channel_16 ((uint8_t)0x10)
#define ADC_Channel_17 ((uint8_t)0x11)
#define ADC_Channel_TempSensor ((uint8_t)ADC_Channel_16)
#define ADC_Channel_Vrefint ((uint8_t)ADC_Channel_17)
/*ADC_output_buffer*/
#define ADC_OutputBuffer_Enable ((uint32_t)0x04000000)
#define ADC_OutputBuffer_Disable ((uint32_t)0x00000000)
/*ADC_pga*/
#define ADC_Pga_1 ((uint32_t)0x00000000)
#define ADC_Pga_4 ((uint32_t)0x08000000)
#define ADC_Pga_16 ((uint32_t)0x10000000)
#define ADC_Pga_64 ((uint32_t)0x18000000)
/* ADC_sampling_time */
#define ADC_SampleTime_CyclesMode0 ((uint8_t)0x00)
#define ADC_SampleTime_CyclesMode1 ((uint8_t)0x01)
#define ADC_SampleTime_CyclesMode2 ((uint8_t)0x02)
#define ADC_SampleTime_CyclesMode3 ((uint8_t)0x03)
#define ADC_SampleTime_CyclesMode4 ((uint8_t)0x04)
#define ADC_SampleTime_CyclesMode5 ((uint8_t)0x05)
#define ADC_SampleTime_CyclesMode6 ((uint8_t)0x06)
#define ADC_SampleTime_CyclesMode7 ((uint8_t)0x07)
/* ADC_external_trigger_sources_for_injected_channels_conversion */
#define ADC_ExternalTrigInjecConv_T1_TRGO ((uint32_t)0x00000000)
#define ADC_ExternalTrigInjecConv_T1_CC4 ((uint32_t)0x00001000)
#define ADC_ExternalTrigInjecConv_T2_TRGO ((uint32_t)0x00002000)
#define ADC_ExternalTrigInjecConv_T2_CC1 ((uint32_t)0x00003000)
#define ADC_ExternalTrigInjecConv_T3_CC4 ((uint32_t)0x00004000)
#define ADC_ExternalTrigInjecConv_T4_TRGO ((uint32_t)0x00005000)
#define ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4 ((uint32_t)0x00006000)
#define ADC_ExternalTrigInjecConv_None ((uint32_t)0x00007000)
/* ADC_injected_channel_selection */
#define ADC_InjectedChannel_1 ((uint8_t)0x14)
#define ADC_InjectedChannel_2 ((uint8_t)0x18)
#define ADC_InjectedChannel_3 ((uint8_t)0x1C)
#define ADC_InjectedChannel_4 ((uint8_t)0x20)
/* ADC_analog_watchdog_selection */
#define ADC_AnalogWatchdog_SingleRegEnable ((uint32_t)0x00800200)
#define ADC_AnalogWatchdog_SingleInjecEnable ((uint32_t)0x00400200)
#define ADC_AnalogWatchdog_SingleRegOrInjecEnable ((uint32_t)0x00C00200)
#define ADC_AnalogWatchdog_AllRegEnable ((uint32_t)0x00800000)
#define ADC_AnalogWatchdog_AllInjecEnable ((uint32_t)0x00400000)
#define ADC_AnalogWatchdog_AllRegAllInjecEnable ((uint32_t)0x00C00000)
#define ADC_AnalogWatchdog_None ((uint32_t)0x00000000)
/* ADC_interrupts_definition */
#define ADC_IT_EOC ((uint16_t)0x0220)
#define ADC_IT_AWD ((uint16_t)0x0140)
#define ADC_IT_JEOC ((uint16_t)0x0480)
/* ADC_flags_definition */
#define ADC_FLAG_AWD ((uint16_t)0x0001)
#define ADC_FLAG_EOC ((uint16_t)0x0002)
#define ADC_FLAG_JEOC ((uint16_t)0x0004)
#define ADC_FLAG_JSTRT ((uint16_t)0x0008)
#define ADC_FLAG_STRT ((uint16_t)0x0010)
#define ADC_FLAG_RST ((uint16_t)0x8000)
/* ADC_SMP_CFG_MODE_definition */
#define ADC_SMP_CFG_MODE0 ((uint8_t)0x00)
#define ADC_SMP_CFG_MODE1 ((uint8_t)0x01)
/* ADC_CalibrationVoltage_Mode_definition */
#define ADC_CalibrationVoltage_Mode0 ((uint32_t)0x00000000)
#define ADC_CalibrationVoltage_Mode1 ((uint32_t)0x00000010)
#define ADC_CalibrationVoltage_Mode2 ((uint32_t)0x00000020)
#define ADC_CalibrationVoltage_Mode3 ((uint32_t)0x00000030)
/* ch32h417_dbgmcu.h ---------------------------------------------------------*/
#define DBGMCU_IWDG_STOP ((uint32_t)0x00000100)
#define DBGMCU_WWDG_STOP ((uint32_t)0x00000200)
#define DBGMCU_I2C1_SMBUS_TIMEOUT ((uint32_t)0x00000400)
#define DBGMCU_I2C2_SMBUS_TIMEOUT ((uint32_t)0x00000800)
#define DBGMCU_TIM1_STOP ((uint32_t)0x00001000)
#define DBGMCU_TIM2_STOP ((uint32_t)0x00002000)
#define DBGMCU_TIM3_STOP ((uint32_t)0x00004000)
#define DBGMCU_TIM4_STOP ((uint32_t)0x00008000)
#define DBGMCU_TIM5_STOP ((uint32_t)0x00010000)
#define DBGMCU_TIM6_STOP ((uint32_t)0x00020000)
#define DBGMCU_TIM7_STOP ((uint32_t)0x00040000)
#define DBGMCU_TIM8_STOP ((uint32_t)0x00080000)
#define DBGMCU_TIM9_STOP ((uint32_t)0x00100000)
#define DBGMCU_TIM10_STOP ((uint32_t)0x00200000)
#define DBGMCU_TIM11_STOP ((uint32_t)0x00400000)
#define DBGMCU_TIM12_STOP ((uint32_t)0x00800000)
#define DBGMCU_LPTIM1_STOP ((uint32_t)0x01000000)
#define DBGMCU_LPTIM2_STOP ((uint32_t)0x02000000)
#define DBGMCU_I2C3_SMBUS_TIMEOUT ((uint32_t)0x04000000)
#define DBGMCU_I2C4_SMBUS_TIMEOUT ((uint32_t)0x08000000)
#define DBGMCU_CAN1_STOP ((uint32_t)0x10000000)
#define DBGMCU_CAN2_STOP ((uint32_t)0x20000000)
#define DBGMCU_CAN3_STOP ((uint32_t)0x40000000)
/* ch32h417_dma.h ------------------------------------------------------------*/
/* DMA_data_transfer_direction */
#define DMA_DIR_PeripheralDST ((uint32_t)0x00000010)
#define DMA_DIR_PeripheralSRC ((uint32_t)0x00000000)
/* DMA_peripheral_incremented_mode */
#define DMA_PeripheralInc_Enable ((uint32_t)0x00000040)
#define DMA_PeripheralInc_Disable ((uint32_t)0x00000000)
/* DMA_memory_incremented_mode */
#define DMA_MemoryInc_Enable ((uint32_t)0x00000080)
#define DMA_MemoryInc_Disable ((uint32_t)0x00000000)
/* DMA_peripheral_data_size */
#define DMA_PeripheralDataSize_Byte ((uint32_t)0x00000000)
#define DMA_PeripheralDataSize_HalfWord ((uint32_t)0x00000100)
#define DMA_PeripheralDataSize_Word ((uint32_t)0x00000200)
#define DMA_PeripheralDataSize_256 ((uint32_t)0x00000300)
/* DMA_memory_data_size */
#define DMA_MemoryDataSize_Byte ((uint32_t)0x00000000)
#define DMA_MemoryDataSize_HalfWord ((uint32_t)0x00000400)
#define DMA_MemoryDataSize_Word ((uint32_t)0x00000800)
#define DMA_MemoryDataSize_256 ((uint32_t)0x00000C00)
/* DMA_circular_normal_mode */
#define DMA_Mode_Circular ((uint32_t)0x00000020)
#define DMA_Mode_Normal ((uint32_t)0x00000000)
/* DMA_priority_level */
#define DMA_Priority_VeryHigh ((uint32_t)0x00003000)
#define DMA_Priority_High ((uint32_t)0x00002000)
#define DMA_Priority_Medium ((uint32_t)0x00001000)
#define DMA_Priority_Low ((uint32_t)0x00000000)
/* DMA_memory_to_memory */
#define DMA_M2M_Enable ((uint32_t)0x00004000)
#define DMA_M2M_Disable ((uint32_t)0x00000000)
/* DMA_interrupts_definition */
#define DMA_IT_TC ((uint32_t)0x00000002)
#define DMA_IT_HT ((uint32_t)0x00000004)
#define DMA_IT_TE ((uint32_t)0x00000008)
#define DMA1_IT_GL1 ((uint32_t)0x00000001)
#define DMA1_IT_TC1 ((uint32_t)0x00000002)
#define DMA1_IT_HT1 ((uint32_t)0x00000004)
#define DMA1_IT_TE1 ((uint32_t)0x00000008)
#define DMA1_IT_GL2 ((uint32_t)0x00000010)
#define DMA1_IT_TC2 ((uint32_t)0x00000020)
#define DMA1_IT_HT2 ((uint32_t)0x00000040)
#define DMA1_IT_TE2 ((uint32_t)0x00000080)
#define DMA1_IT_GL3 ((uint32_t)0x00000100)
#define DMA1_IT_TC3 ((uint32_t)0x00000200)
#define DMA1_IT_HT3 ((uint32_t)0x00000400)
#define DMA1_IT_TE3 ((uint32_t)0x00000800)
#define DMA1_IT_GL4 ((uint32_t)0x00001000)
#define DMA1_IT_TC4 ((uint32_t)0x00002000)
#define DMA1_IT_HT4 ((uint32_t)0x00004000)
#define DMA1_IT_TE4 ((uint32_t)0x00008000)
#define DMA1_IT_GL5 ((uint32_t)0x00010000)
#define DMA1_IT_TC5 ((uint32_t)0x00020000)
#define DMA1_IT_HT5 ((uint32_t)0x00040000)
#define DMA1_IT_TE5 ((uint32_t)0x00080000)
#define DMA1_IT_GL6 ((uint32_t)0x00100000)
#define DMA1_IT_TC6 ((uint32_t)0x00200000)
#define DMA1_IT_HT6 ((uint32_t)0x00400000)
#define DMA1_IT_TE6 ((uint32_t)0x00800000)
#define DMA1_IT_GL7 ((uint32_t)0x01000000)
#define DMA1_IT_TC7 ((uint32_t)0x02000000)
#define DMA1_IT_HT7 ((uint32_t)0x04000000)
#define DMA1_IT_TE7 ((uint32_t)0x08000000)
#define DMA1_IT_GL8 ((uint32_t)0x10000000)
#define DMA1_IT_TC8 ((uint32_t)0x20000000)
#define DMA1_IT_HT8 ((uint32_t)0x40000000)
#define DMA1_IT_TE8 ((uint32_t)0x80000000)
#define DMA2_IT_GL1 ((uint32_t)0x00000001)
#define DMA2_IT_TC1 ((uint32_t)0x00000002)
#define DMA2_IT_HT1 ((uint32_t)0x00000004)
#define DMA2_IT_TE1 ((uint32_t)0x00000008)
#define DMA2_IT_GL2 ((uint32_t)0x00000010)
#define DMA2_IT_TC2 ((uint32_t)0x00000020)
#define DMA2_IT_HT2 ((uint32_t)0x00000040)
#define DMA2_IT_TE2 ((uint32_t)0x00000080)
#define DMA2_IT_GL3 ((uint32_t)0x00000100)
#define DMA2_IT_TC3 ((uint32_t)0x00000200)
#define DMA2_IT_HT3 ((uint32_t)0x00000400)
#define DMA2_IT_TE3 ((uint32_t)0x00000800)
#define DMA2_IT_GL4 ((uint32_t)0x00001000)
#define DMA2_IT_TC4 ((uint32_t)0x00002000)
#define DMA2_IT_HT4 ((uint32_t)0x00004000)
#define DMA2_IT_TE4 ((uint32_t)0x00008000)
#define DMA2_IT_GL5 ((uint32_t)0x00010000)
#define DMA2_IT_TC5 ((uint32_t)0x00020000)
#define DMA2_IT_HT5 ((uint32_t)0x00040000)
#define DMA2_IT_TE5 ((uint32_t)0x00080000)
#define DMA2_IT_GL6 ((uint32_t)0x00100000)
#define DMA2_IT_TC6 ((uint32_t)0x00200000)
#define DMA2_IT_HT6 ((uint32_t)0x00400000)
#define DMA2_IT_TE6 ((uint32_t)0x00800000)
#define DMA2_IT_GL7 ((uint32_t)0x01000000)
#define DMA2_IT_TC7 ((uint32_t)0x02000000)
#define DMA2_IT_HT7 ((uint32_t)0x04000000)
#define DMA2_IT_TE7 ((uint32_t)0x08000000)
#define DMA2_IT_GL8 ((uint32_t)0x10000000)
#define DMA2_IT_TC8 ((uint32_t)0x20000000)
#define DMA2_IT_HT8 ((uint32_t)0x40000000)
#define DMA2_IT_TE8 ((uint32_t)0x80000000)
/* DMA_flags_definition */
#define DMA1_FLAG_GL1 ((uint32_t)0x00000001)
#define DMA1_FLAG_TC1 ((uint32_t)0x00000002)
#define DMA1_FLAG_HT1 ((uint32_t)0x00000004)
#define DMA1_FLAG_TE1 ((uint32_t)0x00000008)
#define DMA1_FLAG_GL2 ((uint32_t)0x00000010)
#define DMA1_FLAG_TC2 ((uint32_t)0x00000020)
#define DMA1_FLAG_HT2 ((uint32_t)0x00000040)
#define DMA1_FLAG_TE2 ((uint32_t)0x00000080)
#define DMA1_FLAG_GL3 ((uint32_t)0x00000100)
#define DMA1_FLAG_TC3 ((uint32_t)0x00000200)
#define DMA1_FLAG_HT3 ((uint32_t)0x00000400)
#define DMA1_FLAG_TE3 ((uint32_t)0x00000800)
#define DMA1_FLAG_GL4 ((uint32_t)0x00001000)
#define DMA1_FLAG_TC4 ((uint32_t)0x00002000)
#define DMA1_FLAG_HT4 ((uint32_t)0x00004000)
#define DMA1_FLAG_TE4 ((uint32_t)0x00008000)
#define DMA1_FLAG_GL5 ((uint32_t)0x00010000)
#define DMA1_FLAG_TC5 ((uint32_t)0x00020000)
#define DMA1_FLAG_HT5 ((uint32_t)0x00040000)
#define DMA1_FLAG_TE5 ((uint32_t)0x00080000)
#define DMA1_FLAG_GL6 ((uint32_t)0x00100000)
#define DMA1_FLAG_TC6 ((uint32_t)0x00200000)
#define DMA1_FLAG_HT6 ((uint32_t)0x00400000)
#define DMA1_FLAG_TE6 ((uint32_t)0x00800000)
#define DMA1_FLAG_GL7 ((uint32_t)0x01000000)
#define DMA1_FLAG_TC7 ((uint32_t)0x02000000)
#define DMA1_FLAG_HT7 ((uint32_t)0x04000000)
#define DMA1_FLAG_TE7 ((uint32_t)0x08000000)
#define DMA1_FLAG_GL8 ((uint32_t)0x10000000)
#define DMA1_FLAG_TC8 ((uint32_t)0x20000000)
#define DMA1_FLAG_HT8 ((uint32_t)0x40000000)
#define DMA1_FLAG_TE8 ((uint32_t)0x80000000)
#define DMA2_FLAG_GL1 ((uint32_t)0x00000001)
#define DMA2_FLAG_TC1 ((uint32_t)0x00000002)
#define DMA2_FLAG_HT1 ((uint32_t)0x00000004)
#define DMA2_FLAG_TE1 ((uint32_t)0x00000008)
#define DMA2_FLAG_GL2 ((uint32_t)0x00000010)
#define DMA2_FLAG_TC2 ((uint32_t)0x00000020)
#define DMA2_FLAG_HT2 ((uint32_t)0x00000040)
#define DMA2_FLAG_TE2 ((uint32_t)0x00000080)
#define DMA2_FLAG_GL3 ((uint32_t)0x00000100)
#define DMA2_FLAG_TC3 ((uint32_t)0x00000200)
#define DMA2_FLAG_HT3 ((uint32_t)0x00000400)
#define DMA2_FLAG_TE3 ((uint32_t)0x00000800)
#define DMA2_FLAG_GL4 ((uint32_t)0x00001000)
#define DMA2_FLAG_TC4 ((uint32_t)0x00002000)
#define DMA2_FLAG_HT4 ((uint32_t)0x00004000)
#define DMA2_FLAG_TE4 ((uint32_t)0x00008000)
#define DMA2_FLAG_GL5 ((uint32_t)0x00010000)
#define DMA2_FLAG_TC5 ((uint32_t)0x00020000)
#define DMA2_FLAG_HT5 ((uint32_t)0x00040000)
#define DMA2_FLAG_TE5 ((uint32_t)0x00080000)
#define DMA2_FLAG_GL6 ((uint32_t)0x00100000)
#define DMA2_FLAG_TC6 ((uint32_t)0x00200000)
#define DMA2_FLAG_HT6 ((uint32_t)0x00400000)
#define DMA2_FLAG_TE6 ((uint32_t)0x00800000)
#define DMA2_FLAG_GL7 ((uint32_t)0x01000000)
#define DMA2_FLAG_TC7 ((uint32_t)0x02000000)
#define DMA2_FLAG_HT7 ((uint32_t)0x04000000)
#define DMA2_FLAG_TE7 ((uint32_t)0x08000000)
#define DMA2_FLAG_GL8 ((uint32_t)0x10000000)
#define DMA2_FLAG_TC8 ((uint32_t)0x20000000)
#define DMA2_FLAG_HT8 ((uint32_t)0x40000000)
#define DMA2_FLAG_TE8 ((uint32_t)0x80000000)
/* DMA_MuxChannel_definition */
#define DMA_MuxChannel1 ((uint8_t)0x00)
#define DMA_MuxChannel2 ((uint8_t)0x01)
#define DMA_MuxChannel3 ((uint8_t)0x02)
#define DMA_MuxChannel4 ((uint8_t)0x03)
#define DMA_MuxChannel5 ((uint8_t)0x04)
#define DMA_MuxChannel6 ((uint8_t)0x05)
#define DMA_MuxChannel7 ((uint8_t)0x06)
#define DMA_MuxChannel8 ((uint8_t)0x07)
#define DMA_MuxChannel9 ((uint8_t)0x08)
#define DMA_MuxChannel10 ((uint8_t)0x09)
#define DMA_MuxChannel11 ((uint8_t)0x0A)
#define DMA_MuxChannel12 ((uint8_t)0x0B)
#define DMA_MuxChannel13 ((uint8_t)0x0C)
#define DMA_MuxChannel14 ((uint8_t)0x0D)
#define DMA_MuxChannel15 ((uint8_t)0x0E)
#define DMA_MuxChannel16 ((uint8_t)0x0F)
/* DMA_BufferMode_Memory */
#define DMA_SingleBufferMode ((uint32_t)0x00000000)
#define DMA_DoubleBufferMode ((uint32_t)0x00008000)
/* DMA_DoubleBufferMode_Memory */
#define DMA_DoubleBufferMode_Memory_0 ((uint32_t)0x00000000)
#define DMA_DoubleBufferMode_Memory_1 ((uint32_t)0x00010000)
/* ch32h417_eth.h ------------------------------------------------------------*/
#define PHY_10BASE_T_LINKED 1
#define PHY_10BASE_T_NOT_LINKED 0
#define DMA_TPS_Mask ((uint32_t)0x00700000)
#define DMA_RPS_Mask ((uint32_t)0x000E0000)
/* ETH delay.Just for Ethernet */
#define _eth_delay_ ETH_Delay /* Default _eth_delay_ function with less precise timing */
/* definition for Ethernet frame */
#define ETH_MAX_PACKET_SIZE 1536 /* ETH_HEADER + ETH_EXTRA + MAX_ETH_PAYLOAD + ETH_CRC */
#define ETH_HEADER 14 /* 6 byte Dest addr, 6 byte Src addr, 2 byte length/type */
#define ETH_CRC 4 /* Ethernet CRC */
#define ETH_EXTRA 2 /* Extra bytes in some cases */
#define VLAN_TAG 4 /* optional 802.1q VLAN Tag */
#define MIN_ETH_PAYLOAD 46 /* Minimum Ethernet payload size */
#define MAX_ETH_PAYLOAD 1500 /* Maximum Ethernet payload size */
#define JUMBO_FRAME_PAYLOAD 9000 /* Jumbo frame payload size */
/**
DMA Tx Desciptor
-----------------------------------------------------------------------------------------------
TDES0 | OWN(31) | CTRL[30:26] | Reserved[25:24] | CTRL[23:20] | Reserved[19:17] | Status[16:0] |
-----------------------------------------------------------------------------------------------
TDES1 | Reserved[31:29] | Buffer2 ByteCount[28:16] | Reserved[15:13] | Buffer1 ByteCount[12:0] |
-----------------------------------------------------------------------------------------------
TDES2 | Buffer1 Address [31:0] |
-----------------------------------------------------------------------------------------------
TDES3 | Buffer2 Address [31:0] / Next Desciptor Address [31:0] |
------------------------------------------------------------------------------------------------
*/
/* Bit or field definition of TDES0 register (DMA Tx descriptor status register)*/
#define ETH_DMATxDesc_OWN ((uint32_t)0x80000000) /* OWN bit: descriptor is owned by DMA engine */
#define ETH_DMATxDesc_IC ((uint32_t)0x40000000) /* Interrupt on Completion */
#define ETH_DMATxDesc_LS ((uint32_t)0x20000000) /* Last Segment */
#define ETH_DMATxDesc_FS ((uint32_t)0x10000000) /* First Segment */
#define ETH_DMATxDesc_DC ((uint32_t)0x08000000) /* Disable CRC */
#define ETH_DMATxDesc_DP ((uint32_t)0x04000000) /* Disable Padding */
#define ETH_DMATxDesc_TTSE ((uint32_t)0x02000000) /* Transmit Time Stamp Enable */
#define ETH_DMATxDesc_CIC ((uint32_t)0x00C00000) /* Checksum Insertion Control: 4 cases */
#define ETH_DMATxDesc_CIC_ByPass ((uint32_t)0x00000000) /* Do Nothing: Checksum Engine is bypassed */
#define ETH_DMATxDesc_CIC_IPV4Header ((uint32_t)0x00400000) /* IPV4 header Checksum Insertion */
#define ETH_DMATxDesc_CIC_TCPUDPICMP_Segment ((uint32_t)0x00800000) /* TCP/UDP/ICMP Checksum Insertion calculated over segment only */
#define ETH_DMATxDesc_CIC_TCPUDPICMP_Full ((uint32_t)0x00C00000) /* TCP/UDP/ICMP Checksum Insertion fully calculated */
#define ETH_DMATxDesc_TER ((uint32_t)0x00200000) /* Transmit End of Ring */
#define ETH_DMATxDesc_TCH ((uint32_t)0x00100000) /* Second Address Chained */
#define ETH_DMATxDesc_TTSS ((uint32_t)0x00020000) /* Tx Time Stamp Status */
#define ETH_DMATxDesc_IHE ((uint32_t)0x00010000) /* IP Header Error */
#define ETH_DMATxDesc_ES ((uint32_t)0x00008000) /* Error summary: OR of the following bits: UE || ED || EC || LCO || NC || LCA || FF || JT */
#define ETH_DMATxDesc_JT ((uint32_t)0x00004000) /* Jabber Timeout */
#define ETH_DMATxDesc_FF ((uint32_t)0x00002000) /* Frame Flushed: DMA/MTL flushed the frame due to SW flush */
#define ETH_DMATxDesc_PCE ((uint32_t)0x00001000) /* Payload Checksum Error */
#define ETH_DMATxDesc_LCA ((uint32_t)0x00000800) /* Loss of Carrier: carrier lost during tramsmission */
#define ETH_DMATxDesc_NC ((uint32_t)0x00000400) /* No Carrier: no carrier signal from the tranceiver */
#define ETH_DMATxDesc_LCO ((uint32_t)0x00000200) /* Late Collision: transmission aborted due to collision */
#define ETH_DMATxDesc_EC ((uint32_t)0x00000100) /* Excessive Collision: transmission aborted after 16 collisions */
#define ETH_DMATxDesc_VF ((uint32_t)0x00000080) /* VLAN Frame */
#define ETH_DMATxDesc_CC ((uint32_t)0x00000078) /* Collision Count */
#define ETH_DMATxDesc_ED ((uint32_t)0x00000004) /* Excessive Deferral */
#define ETH_DMATxDesc_UF ((uint32_t)0x00000002) /* Underflow Error: late data arrival from the memory */
#define ETH_DMATxDesc_DB ((uint32_t)0x00000001) /* Deferred Bit */
/* Field definition of TDES1 register */
#define ETH_DMATxDesc_TBS2 ((uint32_t)0x1FFF0000) /* Transmit Buffer2 Size */
#define ETH_DMATxDesc_TBS1 ((uint32_t)0x00001FFF) /* Transmit Buffer1 Size */
/* Field definition of TDES2 register */
#define ETH_DMATxDesc_B1AP ((uint32_t)0xFFFFFFFF) /* Buffer1 Address Pointer */
/* Field definition of TDES3 register */
#define ETH_DMATxDesc_B2AP ((uint32_t)0xFFFFFFFF) /* Buffer2 Address Pointer */
/**
DMA Rx Desciptor
---------------------------------------------------------------------------------------------------------------------
RDES0 | OWN(31) | Status [30:0] |
---------------------------------------------------------------------------------------------------------------------
RDES1 | CTRL(31) | Reserved[30:29] | Buffer2 ByteCount[28:16] | CTRL[15:14] | Reserved(13) | Buffer1 ByteCount[12:0] |
---------------------------------------------------------------------------------------------------------------------
RDES2 | Buffer1 Address [31:0] |
---------------------------------------------------------------------------------------------------------------------
RDES3 | Buffer2 Address [31:0] / Next Desciptor Address [31:0] |
----------------------------------------------------------------------------------------------------------------------
*/
/* Bit or field definition of RDES0 register (DMA Rx descriptor status register) */
#define ETH_DMARxDesc_OWN ((uint32_t)0x80000000) /* OWN bit: descriptor is owned by DMA engine */
#define ETH_DMARxDesc_AFM ((uint32_t)0x40000000) /* DA Filter Fail for the rx frame */
#define ETH_DMARxDesc_FL ((uint32_t)0x3FFF0000) /* Receive descriptor frame length */
#define ETH_DMARxDesc_ES ((uint32_t)0x00008000) /* Error summary: OR of the following bits: DE || OE || IPC || LC || RWT || RE || CE */
#define ETH_DMARxDesc_DE ((uint32_t)0x00004000) /* Desciptor error: no more descriptors for receive frame */
#define ETH_DMARxDesc_SAF ((uint32_t)0x00002000) /* SA Filter Fail for the received frame */
#define ETH_DMARxDesc_LE ((uint32_t)0x00001000) /* Frame size not matching with length field */
#define ETH_DMARxDesc_OE ((uint32_t)0x00000800) /* Overflow Error: Frame was damaged due to buffer overflow */
#define ETH_DMARxDesc_VLAN ((uint32_t)0x00000400) /* VLAN Tag: received frame is a VLAN frame */
#define ETH_DMARxDesc_FS ((uint32_t)0x00000200) /* First descriptor of the frame */
#define ETH_DMARxDesc_LS ((uint32_t)0x00000100) /* Last descriptor of the frame */
#define ETH_DMARxDesc_IPV4HCE ((uint32_t)0x00000080) /* IPC Checksum Error: Rx Ipv4 header checksum error */
#define ETH_DMARxDesc_LC ((uint32_t)0x00000040) /* Late collision occurred during reception */
#define ETH_DMARxDesc_FT ((uint32_t)0x00000020) /* Frame type - Ethernet, otherwise 802.3 */
#define ETH_DMARxDesc_RWT ((uint32_t)0x00000010) /* Receive Watchdog Timeout: watchdog timer expired during reception */
#define ETH_DMARxDesc_RE ((uint32_t)0x00000008) /* Receive error: error reported by MII interface */
#define ETH_DMARxDesc_DBE ((uint32_t)0x00000004) /* Dribble bit error: frame contains non int multiple of 8 bits */
#define ETH_DMARxDesc_CE ((uint32_t)0x00000002) /* CRC error */
#define ETH_DMARxDesc_MAMPCE ((uint32_t)0x00000001) /* Rx MAC Address/Payload Checksum Error: Rx MAC address matched/ Rx Payload Checksum Error */
/* Bit or field definition of RDES1 register */
#define ETH_DMARxDesc_DIC ((uint32_t)0x80000000) /* Disable Interrupt on Completion */
#define ETH_DMARxDesc_RBS2 ((uint32_t)0x1FFF0000) /* Receive Buffer2 Size */
#define ETH_DMARxDesc_RER ((uint32_t)0x00008000) /* Receive End of Ring */
#define ETH_DMARxDesc_RCH ((uint32_t)0x00004000) /* Second Address Chained */
#define ETH_DMARxDesc_RBS1 ((uint32_t)0x00001FFF) /* Receive Buffer1 Size */
/* Field definition of RDES2 register */
#define ETH_DMARxDesc_B1AP ((uint32_t)0xFFFFFFFF) /* Buffer1 Address Pointer */
/* Field definition of RDES3 register */
#define ETH_DMARxDesc_B2AP ((uint32_t)0xFFFFFFFF) /* Buffer2 Address Pointer */
/* Timeout threshold of Reading or writing PHY registers */
#define PHY_READ_TO ((uint32_t)0x004FFFFF)
#define PHY_WRITE_TO ((uint32_t)0x0004FFFF)
/* Delay time after reset PHY */
#define PHY_ResetDelay ((uint32_t)0x000FFFFF)
/* Delay time after configure PHY */
#define PHY_ConfigDelay ((uint32_t)0x00FFFFFF)
/* PHY basic register */
#define PHY_BCR 0x0 /*PHY transceiver Basic Control Register */
#define PHY_BSR 0x01 /*PHY transceiver Basic Status Register*/
#define PHY_ANAR 0x04 /* Auto-Negotiation Advertisement Register */
#define PHY_ANLPAR 0x05 /* Auto-Negotiation Link Partner Base Page Ability Register*/
#define PHY_ANER 0x06 /* Auto-Negotiation Expansion Register */
#define PHY_BMCR PHY_BCR
#define PHY_BMSR PHY_BSR
/* Bit or field definition for PHY basic control register */
#define PHY_Reset ((uint16_t)0x8000) /* PHY Reset */
#define PHY_Loopback ((uint16_t)0x4000) /* Select loop-back mode */
#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /* Set the full-duplex mode at 100 Mb/s */
#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /* Set the half-duplex mode at 100 Mb/s */
#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /* Set the full-duplex mode at 10 Mb/s */
#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /* Set the half-duplex mode at 10 Mb/s */
#define PHY_AutoNegotiation ((uint16_t)0x1000) /* Enable auto-negotiation function */
#define PHY_Restart_AutoNegotiation ((uint16_t)0x0200) /* Restart auto-negotiation function */
#define PHY_Powerdown ((uint16_t)0x0800) /* Select the power down mode */
#define PHY_Isolate ((uint16_t)0x0400) /* Isolate PHY from MII */
/* Bit or field definition for PHY basic status register */
#define PHY_AutoNego_Complete ((uint16_t)0x0020) /* Auto-Negotioation process completed */
#define PHY_Linked_Status ((uint16_t)0x0004) /* Valid link established */
#define PHY_Jabber_detection ((uint16_t)0x0002) /* Jabber condition detected */
#define PHY_RMII_Mode ((uint16_t)0x0020) /* RMII */
/* Internal 10BASE-T PHY 50R*4 pull-up resistance enable or disable */
#define ETH_Internal_Pull_Up_Res_Enable ((uint32_t)0x00100000)
#define ETH_Internal_Pull_Up_Res_Disable ((uint32_t)0x00000000)
/* MAC autoNegotiation enable or disable */
#define ETH_AutoNegotiation_Enable ((uint32_t)0x00000001)
#define ETH_AutoNegotiation_Disable ((uint32_t)0x00000000)
/* MAC watchdog enable or disable */
#define ETH_Watchdog_Enable ((uint32_t)0x00000000)
#define ETH_Watchdog_Disable ((uint32_t)0x00800000)
/* Bit description - MAC jabber enable or disable */
#define ETH_Jabber_Enable ((uint32_t)0x00000000)
#define ETH_Jabber_Disable ((uint32_t)0x00400000)
/* Value of minimum IFG between frames during transmission */
#define ETH_InterFrameGap_96Bit ((uint32_t)0x00000000) /* minimum IFG between frames during transmission is 96Bit */
#define ETH_InterFrameGap_88Bit ((uint32_t)0x00020000) /* minimum IFG between frames during transmission is 88Bit */
#define ETH_InterFrameGap_80Bit ((uint32_t)0x00040000) /* minimum IFG between frames during transmission is 80Bit */
#define ETH_InterFrameGap_72Bit ((uint32_t)0x00060000) /* minimum IFG between frames during transmission is 72Bit */
#define ETH_InterFrameGap_64Bit ((uint32_t)0x00080000) /* minimum IFG between frames during transmission is 64Bit */
#define ETH_InterFrameGap_56Bit ((uint32_t)0x000A0000) /* minimum IFG between frames during transmission is 56Bit */
#define ETH_InterFrameGap_48Bit ((uint32_t)0x000C0000) /* minimum IFG between frames during transmission is 48Bit */
#define ETH_InterFrameGap_40Bit ((uint32_t)0x000E0000) /* minimum IFG between frames during transmission is 40Bit */
/* MAC carrier sense enable or disable */
#define ETH_CarrierSense_Enable ((uint32_t)0x00000000)
#define ETH_CarrierSense_Disable ((uint32_t)0x00010000)
/* MAC speed */
#define ETH_Speed_10M ((uint32_t)0x00000000)
#define ETH_Speed_100M ((uint32_t)0x00004000)
#define ETH_Speed_1000M ((uint32_t)0x00008000)
/* MAC receive own enable or disable */
#define ETH_ReceiveOwn_Enable ((uint32_t)0x00000000)
#define ETH_ReceiveOwn_Disable ((uint32_t)0x00002000)
/* MAC Loopback mode enable or disable */
#define ETH_LoopbackMode_Enable ((uint32_t)0x00001000)
#define ETH_LoopbackMode_Disable ((uint32_t)0x00000000)
/* MAC fullDuplex or halfDuplex */
#define ETH_Mode_FullDuplex ((uint32_t)0x00000800)
#define ETH_Mode_HalfDuplex ((uint32_t)0x00000000)
/* MAC offload checksum enable or disable */
#define ETH_ChecksumOffload_Enable ((uint32_t)0x00000400)
#define ETH_ChecksumOffload_Disable ((uint32_t)0x00000000)
/* MAC transmission retry enable or disable */
#define ETH_RetryTransmission_Enable ((uint32_t)0x00000000)
#define ETH_RetryTransmission_Disable ((uint32_t)0x00000200)
/* MAC automatic pad CRC strip enable or disable */
#define ETH_AutomaticPadCRCStrip_Enable ((uint32_t)0x00000080)
#define ETH_AutomaticPadCRCStrip_Disable ((uint32_t)0x00000000)
/* MAC backoff limitation */
#define ETH_BackOffLimit_10 ((uint32_t)0x00000000)
#define ETH_BackOffLimit_8 ((uint32_t)0x00000020)
#define ETH_BackOffLimit_4 ((uint32_t)0x00000040)
#define ETH_BackOffLimit_1 ((uint32_t)0x00000060)
/* MAC deferral check enable or disable */
#define ETH_DeferralCheck_Enable ((uint32_t)0x00000010)
#define ETH_DeferralCheck_Disable ((uint32_t)0x00000000)
/* Bit description : MAC receive all frame enable or disable */
#define ETH_ReceiveAll_Enable ((uint32_t)0x80000000)
#define ETH_ReceiveAll_Disable ((uint32_t)0x00000000)
/* MAC backoff limitation */
#define ETH_SourceAddrFilter_Normal_Enable ((uint32_t)0x00000200)
#define ETH_SourceAddrFilter_Inverse_Enable ((uint32_t)0x00000300)
#define ETH_SourceAddrFilter_Disable ((uint32_t)0x00000000)
/* MAC Pass control frames */
#define ETH_PassControlFrames_BlockAll ((uint32_t)0x00000040) /* MAC filters all control frames from reaching the application */
#define ETH_PassControlFrames_ForwardAll ((uint32_t)0x00000080) /* MAC forwards all control frames to application even if they fail the Address Filter */
#define ETH_PassControlFrames_ForwardPassedAddrFilter ((uint32_t)0x000000C0) /* MAC forwards control frames that pass the Address Filter. */
/* MAC broadcast frames reception */
#define ETH_BroadcastFramesReception_Enable ((uint32_t)0x00000000)
#define ETH_BroadcastFramesReception_Disable ((uint32_t)0x00000020)
/* MAC destination address filter */
#define ETH_DestinationAddrFilter_Normal ((uint32_t)0x00000000)
#define ETH_DestinationAddrFilter_Inverse ((uint32_t)0x00000008)
/* MAC Promiscuous mode enable or disable */
#define ETH_PromiscuousMode_Enable ((uint32_t)0x00000001)
#define ETH_PromiscuousMode_Disable ((uint32_t)0x00000000)
/* MAC multicast frames filter */
#define ETH_MulticastFramesFilter_PerfectHashTable ((uint32_t)0x00000404)
#define ETH_MulticastFramesFilter_HashTable ((uint32_t)0x00000004)
#define ETH_MulticastFramesFilter_Perfect ((uint32_t)0x00000000)
#define ETH_MulticastFramesFilter_None ((uint32_t)0x00000010)
/* MAC unicast frames filter */
#define ETH_UnicastFramesFilter_PerfectHashTable ((uint32_t)0x00000402)
#define ETH_UnicastFramesFilter_HashTable ((uint32_t)0x00000002)
#define ETH_UnicastFramesFilter_Perfect ((uint32_t)0x00000000)
/* Bit description : MAC zero quanta pause */
#define ETH_ZeroQuantaPause_Enable ((uint32_t)0x00000000)
#define ETH_ZeroQuantaPause_Disable ((uint32_t)0x00000080)
/* Field description : MAC pause low threshold */
#define ETH_PauseLowThreshold_Minus4 ((uint32_t)0x00000000) /* Pause time minus 4 slot times */
#define ETH_PauseLowThreshold_Minus28 ((uint32_t)0x00000010) /* Pause time minus 28 slot times */
#define ETH_PauseLowThreshold_Minus144 ((uint32_t)0x00000020) /* Pause time minus 144 slot times */
#define ETH_PauseLowThreshold_Minus256 ((uint32_t)0x00000030) /* Pause time minus 256 slot times */
/* MAC unicast pause frame detect enable or disable*/
#define ETH_UnicastPauseFrameDetect_Enable ((uint32_t)0x00000008)
#define ETH_UnicastPauseFrameDetect_Disable ((uint32_t)0x00000000)
/* MAC receive flow control frame enable or disable */
#define ETH_ReceiveFlowControl_Enable ((uint32_t)0x00000004)
#define ETH_ReceiveFlowControl_Disable ((uint32_t)0x00000000)
/* MAC transmit flow control enable or disable */
#define ETH_TransmitFlowControl_Enable ((uint32_t)0x00000002)
#define ETH_TransmitFlowControl_Disable ((uint32_t)0x00000000)
/* MAC VLAN tag comparison */
#define ETH_VLANTagComparison_12Bit ((uint32_t)0x00010000)
#define ETH_VLANTagComparison_16Bit ((uint32_t)0x00000000)
/* MAC flag */
#define ETH_MAC_FLAG_TST ((uint32_t)0x00000200) /* Time stamp trigger flag (on MAC) */
#define ETH_MAC_FLAG_MMCT ((uint32_t)0x00000040) /* MMC transmit flag */
#define ETH_MAC_FLAG_MMCR ((uint32_t)0x00000020) /* MMC receive flag */
#define ETH_MAC_FLAG_MMC ((uint32_t)0x00000010) /* MMC flag (on MAC) */
#define ETH_MAC_FLAG_PMT ((uint32_t)0x00000008) /* PMT flag (on MAC) */
/* MAC interrupt */
#define ETH_MAC_IT_TST ((uint32_t)0x00000200) /* Time stamp trigger interrupt (on MAC) */
#define ETH_MAC_IT_MMCT ((uint32_t)0x00000040) /* MMC transmit interrupt */
#define ETH_MAC_IT_MMCR ((uint32_t)0x00000020) /* MMC receive interrupt */
#define ETH_MAC_IT_MMC ((uint32_t)0x00000010) /* MMC interrupt (on MAC) */
#define ETH_MAC_IT_PMT ((uint32_t)0x00000008) /* PMT interrupt (on MAC) */
/* MAC address */
#define ETH_MAC_Address0 ((uint32_t)0x00000000)
#define ETH_MAC_Address1 ((uint32_t)0x00000008)
#define ETH_MAC_Address2 ((uint32_t)0x00000010)
#define ETH_MAC_Address3 ((uint32_t)0x00000018)
/* MAC address filter select */
#define ETH_MAC_AddressFilter_SA ((uint32_t)0x00000000)
#define ETH_MAC_AddressFilter_DA ((uint32_t)0x00000008)
/* MAC address mask */
#define ETH_MAC_AddressMask_Byte6 ((uint32_t)0x20000000) /* Mask MAC Address high reg bits [15:8] */
#define ETH_MAC_AddressMask_Byte5 ((uint32_t)0x10000000) /* Mask MAC Address high reg bits [7:0] */
#define ETH_MAC_AddressMask_Byte4 ((uint32_t)0x08000000) /* Mask MAC Address low reg bits [31:24] */
#define ETH_MAC_AddressMask_Byte3 ((uint32_t)0x04000000) /* Mask MAC Address low reg bits [23:16] */
#define ETH_MAC_AddressMask_Byte2 ((uint32_t)0x02000000) /* Mask MAC Address low reg bits [15:8] */
#define ETH_MAC_AddressMask_Byte1 ((uint32_t)0x01000000) /* Mask MAC Address low reg bits [70] */
/******************************************************************************/
/* */
/* MAC Descriptor Register */
/* */
/******************************************************************************/
/* DMA descriptor segment */
#define ETH_DMATxDesc_LastSegment ((uint32_t)0x40000000) /* Last Segment */
#define ETH_DMATxDesc_FirstSegment ((uint32_t)0x20000000) /* First Segment */
/* DMA descriptor checksum setting */
#define ETH_DMATxDesc_ChecksumByPass ((uint32_t)0x00000000) /* Checksum engine bypass */
#define ETH_DMATxDesc_ChecksumIPV4Header ((uint32_t)0x00400000) /* IPv4 header checksum insertion */
#define ETH_DMATxDesc_ChecksumTCPUDPICMPSegment ((uint32_t)0x00800000) /* TCP/UDP/ICMP checksum insertion. Pseudo header checksum is assumed to be present */
#define ETH_DMATxDesc_ChecksumTCPUDPICMPFull ((uint32_t)0x00C00000) /* TCP/UDP/ICMP checksum fully in hardware including pseudo header */
/* DMA RX & TX buffer */
#define ETH_DMARxDesc_Buffer1 ((uint32_t)0x00000000) /* DMA Rx Desc Buffer1 */
#define ETH_DMARxDesc_Buffer2 ((uint32_t)0x00000001) /* DMA Rx Desc Buffer2 */
/******************************************************************************/
/* */
/* ETH DMA Register */
/* */
/******************************************************************************/
/* DMA drop TCPIP checksum error frame enable or disable */
#define ETH_DropTCPIPChecksumErrorFrame_Enable ((uint32_t)0x00000000)
#define ETH_DropTCPIPChecksumErrorFrame_Disable ((uint32_t)0x04000000)
/* DMA receive store forward enable or disable */
#define ETH_ReceiveStoreForward_Enable ((uint32_t)0x02000000)
#define ETH_ReceiveStoreForward_Disable ((uint32_t)0x00000000)
/* DMA flush received frame enable or disable */
#define ETH_FlushReceivedFrame_Enable ((uint32_t)0x00000000)
#define ETH_FlushReceivedFrame_Disable ((uint32_t)0x01000000)
/* DMA transmit store forward enable or disable */
#define ETH_TransmitStoreForward_Enable ((uint32_t)0x00200000)
#define ETH_TransmitStoreForward_Disable ((uint32_t)0x00000000)
/* DMA transmit threshold control */
#define ETH_TransmitThresholdControl_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Transmit FIFO is 64 Bytes */
#define ETH_TransmitThresholdControl_128Bytes ((uint32_t)0x00004000) /* threshold level of the MTL Transmit FIFO is 128 Bytes */
#define ETH_TransmitThresholdControl_192Bytes ((uint32_t)0x00008000) /* threshold level of the MTL Transmit FIFO is 192 Bytes */
#define ETH_TransmitThresholdControl_256Bytes ((uint32_t)0x0000C000) /* threshold level of the MTL Transmit FIFO is 256 Bytes */
#define ETH_TransmitThresholdControl_40Bytes ((uint32_t)0x00010000) /* threshold level of the MTL Transmit FIFO is 40 Bytes */
#define ETH_TransmitThresholdControl_32Bytes ((uint32_t)0x00014000) /* threshold level of the MTL Transmit FIFO is 32 Bytes */
#define ETH_TransmitThresholdControl_24Bytes ((uint32_t)0x00018000) /* threshold level of the MTL Transmit FIFO is 24 Bytes */
#define ETH_TransmitThresholdControl_16Bytes ((uint32_t)0x0001C000) /* threshold level of the MTL Transmit FIFO is 16 Bytes */
/* DMA forward error frames */
#define ETH_ForwardErrorFrames_Enable ((uint32_t)0x00000080)
#define ETH_ForwardErrorFrames_Disable ((uint32_t)0x00000000)
/* DMA forward undersized good frames enable or disable */
#define ETH_ForwardUndersizedGoodFrames_Enable ((uint32_t)0x00000040)
#define ETH_ForwardUndersizedGoodFrames_Disable ((uint32_t)0x00000000)
/* DMA receive threshold control */
#define ETH_ReceiveThresholdControl_64Bytes ((uint32_t)0x00000000) /* threshold level of the MTL Receive FIFO is 64 Bytes */
#define ETH_ReceiveThresholdControl_32Bytes ((uint32_t)0x00000008) /* threshold level of the MTL Receive FIFO is 32 Bytes */
#define ETH_ReceiveThresholdControl_96Bytes ((uint32_t)0x00000010) /* threshold level of the MTL Receive FIFO is 96 Bytes */
#define ETH_ReceiveThresholdControl_128Bytes ((uint32_t)0x00000018) /* threshold level of the MTL Receive FIFO is 128 Bytes */
/* DMA second frame operate enable or disable */
#define ETH_SecondFrameOperate_Enable ((uint32_t)0x00000004)
#define ETH_SecondFrameOperate_Disable ((uint32_t)0x00000000)
/* Address aligned beats enable or disable */
#define ETH_AddressAlignedBeats_Enable ((uint32_t)0x02000000)
#define ETH_AddressAlignedBeats_Disable ((uint32_t)0x00000000)
/* DMA Fixed burst enable or disable */
#define ETH_FixedBurst_Enable ((uint32_t)0x00010000)
#define ETH_FixedBurst_Disable ((uint32_t)0x00000000)
/* RX DMA burst length */
#define ETH_RxDMABurstLength_1Beat ((uint32_t)0x00020000) /* maximum number of beats to be transferred in one RxDMA transaction is 1 */
#define ETH_RxDMABurstLength_2Beat ((uint32_t)0x00040000) /* maximum number of beats to be transferred in one RxDMA transaction is 2 */
#define ETH_RxDMABurstLength_4Beat ((uint32_t)0x00080000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */
#define ETH_RxDMABurstLength_8Beat ((uint32_t)0x00100000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */
#define ETH_RxDMABurstLength_16Beat ((uint32_t)0x00200000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */
#define ETH_RxDMABurstLength_32Beat ((uint32_t)0x00400000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */
#define ETH_RxDMABurstLength_4xPBL_4Beat ((uint32_t)0x01020000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */
#define ETH_RxDMABurstLength_4xPBL_8Beat ((uint32_t)0x01040000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */
#define ETH_RxDMABurstLength_4xPBL_16Beat ((uint32_t)0x01080000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */
#define ETH_RxDMABurstLength_4xPBL_32Beat ((uint32_t)0x01100000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */
#define ETH_RxDMABurstLength_4xPBL_64Beat ((uint32_t)0x01200000) /* maximum number of beats to be transferred in one RxDMA transaction is 64 */
#define ETH_RxDMABurstLength_4xPBL_128Beat ((uint32_t)0x01400000) /* maximum number of beats to be transferred in one RxDMA transaction is 128 */
/* TX DMA burst length */
#define ETH_TxDMABurstLength_1Beat ((uint32_t)0x00000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */
#define ETH_TxDMABurstLength_2Beat ((uint32_t)0x00000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */
#define ETH_TxDMABurstLength_4Beat ((uint32_t)0x00000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
#define ETH_TxDMABurstLength_8Beat ((uint32_t)0x00000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
#define ETH_TxDMABurstLength_16Beat ((uint32_t)0x00001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
#define ETH_TxDMABurstLength_32Beat ((uint32_t)0x00002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
#define ETH_TxDMABurstLength_4xPBL_4Beat ((uint32_t)0x01000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
#define ETH_TxDMABurstLength_4xPBL_8Beat ((uint32_t)0x01000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
#define ETH_TxDMABurstLength_4xPBL_16Beat ((uint32_t)0x01000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
#define ETH_TxDMABurstLength_4xPBL_32Beat ((uint32_t)0x01000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
#define ETH_TxDMABurstLength_4xPBL_64Beat ((uint32_t)0x01001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */
#define ETH_TxDMABurstLength_4xPBL_128Beat ((uint32_t)0x01002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */
/* DMA arbitration_round robin */
#define ETH_DMAArbitration_RoundRobin_RxTx_1_1 ((uint32_t)0x00000000)
#define ETH_DMAArbitration_RoundRobin_RxTx_2_1 ((uint32_t)0x00004000)
#define ETH_DMAArbitration_RoundRobin_RxTx_3_1 ((uint32_t)0x00008000)
#define ETH_DMAArbitration_RoundRobin_RxTx_4_1 ((uint32_t)0x0000C000)
#define ETH_DMAArbitration_RxPriorTx ((uint32_t)0x00000002)
/* DMA interrupt FALG */
#define ETH_DMA_FLAG_TST ((uint32_t)0x20000000) /* Time-stamp trigger interrupt (on DMA) */
#define ETH_DMA_FLAG_PMT ((uint32_t)0x10000000) /* PMT interrupt (on DMA) */
#define ETH_DMA_FLAG_MMC ((uint32_t)0x08000000) /* MMC interrupt (on DMA) */
#define ETH_DMA_FLAG_DataTransferError ((uint32_t)0x00800000) /* Error bits 0-Rx DMA, 1-Tx DMA */
#define ETH_DMA_FLAG_ReadWriteError ((uint32_t)0x01000000) /* Error bits 0-write trnsf, 1-read transfr */
#define ETH_DMA_FLAG_AccessError ((uint32_t)0x02000000) /* Error bits 0-data buffer, 1-desc. access */
#define ETH_DMA_FLAG_NIS ((uint32_t)0x00010000) /* Normal interrupt summary flag */
#define ETH_DMA_FLAG_AIS ((uint32_t)0x00008000) /* Abnormal interrupt summary flag */
#define ETH_DMA_FLAG_ER ((uint32_t)0x00004000) /* Early receive flag */
#define ETH_DMA_FLAG_FBE ((uint32_t)0x00002000) /* Fatal bus error flag */
#define ETH_DMA_FLAG_PHYSR ((uint32_t)0x00000800) /* PHY interrupt */
#define ETH_DMA_FLAG_ET ((uint32_t)0x00000400) /* Early transmit flag */
#define ETH_DMA_FLAG_RWT ((uint32_t)0x00000200) /* Receive watchdog timeout flag */
#define ETH_DMA_FLAG_RPS ((uint32_t)0x00000100) /* Receive process stopped flag */
#define ETH_DMA_FLAG_RBU ((uint32_t)0x00000080) /* Receive buffer unavailable flag */
#define ETH_DMA_FLAG_R ((uint32_t)0x00000040) /* Receive flag */
#define ETH_DMA_FLAG_TU ((uint32_t)0x00000020) /* Underflow flag */
#define ETH_DMA_FLAG_RO ((uint32_t)0x00000010) /* Overflow flag */
#define ETH_DMA_FLAG_TJT ((uint32_t)0x00000008) /* Transmit jabber timeout flag */
#define ETH_DMA_FLAG_TBU ((uint32_t)0x00000004) /* Transmit buffer unavailable flag */
#define ETH_DMA_FLAG_TPS ((uint32_t)0x00000002) /* Transmit process stopped flag */
#define ETH_DMA_FLAG_T ((uint32_t)0x00000001) /* Transmit flag */
/* DMA interrupt */
#define ETH_DMA_IT_TST ((uint32_t)0x20000000) /* Time-stamp trigger interrupt (on DMA) */
#define ETH_DMA_IT_PMT ((uint32_t)0x10000000) /* PMT interrupt (on DMA) */
#define ETH_DMA_IT_MMC ((uint32_t)0x08000000) /* MMC interrupt (on DMA) */
#define ETH_DMA_IT_NIS ((uint32_t)0x00010000) /* Normal interrupt summary */
#define ETH_DMA_IT_AIS ((uint32_t)0x00008000) /* Abnormal interrupt summary */
#define ETH_DMA_IT_ER ((uint32_t)0x00004000) /* Early receive interrupt */
#define ETH_DMA_IT_FBE ((uint32_t)0x00002000) /* Fatal bus error interrupt */
#define ETH_DMA_IT_PHYSR ((uint32_t)0x00000800) /* Internal PHY link status change interrupt */
#define ETH_DMA_IT_ET ((uint32_t)0x00000400) /* Early transmit interrupt */
#define ETH_DMA_IT_RWT ((uint32_t)0x00000200) /* Receive watchdog timeout interrupt */
#define ETH_DMA_IT_RPS ((uint32_t)0x00000100) /* Receive process stopped interrupt */
#define ETH_DMA_IT_RBU ((uint32_t)0x00000080) /* Receive buffer unavailable interrupt */
#define ETH_DMA_IT_R ((uint32_t)0x00000040) /* Receive interrupt */
#define ETH_DMA_IT_TU ((uint32_t)0x00000020) /* Underflow interrupt */
#define ETH_DMA_IT_RO ((uint32_t)0x00000010) /* Overflow interrupt */
#define ETH_DMA_IT_TJT ((uint32_t)0x00000008) /* Transmit jabber timeout interrupt */
#define ETH_DMA_IT_TBU ((uint32_t)0x00000004) /* Transmit buffer unavailable interrupt */
#define ETH_DMA_IT_TPS ((uint32_t)0x00000002) /* Transmit process stopped interrupt */
#define ETH_DMA_IT_T ((uint32_t)0x00000001) /* Transmit interrupt */
/* DMA transmit process */
#define ETH_DMA_TransmitProcess_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Tx Command issued */
#define ETH_DMA_TransmitProcess_Fetching ((uint32_t)0x00100000) /* Running - fetching the Tx descriptor */
#define ETH_DMA_TransmitProcess_Waiting ((uint32_t)0x00200000) /* Running - waiting for status */
#define ETH_DMA_TransmitProcess_Reading ((uint32_t)0x00300000) /* Running - reading the data from host memory */
#define ETH_DMA_TransmitProcess_Suspended ((uint32_t)0x00600000) /* Suspended - Tx Desciptor unavailabe */
#define ETH_DMA_TransmitProcess_Closing ((uint32_t)0x00700000) /* Running - closing Rx descriptor */
/* DMA receive Process */
#define ETH_DMA_ReceiveProcess_Stopped ((uint32_t)0x00000000) /* Stopped - Reset or Stop Rx Command issued */
#define ETH_DMA_ReceiveProcess_Fetching ((uint32_t)0x00020000) /* Running - fetching the Rx descriptor */
#define ETH_DMA_ReceiveProcess_Waiting ((uint32_t)0x00060000) /* Running - waiting for packet */
#define ETH_DMA_ReceiveProcess_Suspended ((uint32_t)0x00080000) /* Suspended - Rx Desciptor unavailable */
#define ETH_DMA_ReceiveProcess_Closing ((uint32_t)0x000A0000) /* Running - closing descriptor */
#define ETH_DMA_ReceiveProcess_Queuing ((uint32_t)0x000E0000) /* Running - queuing the recieve frame into host memory */
/* DMA overflow */
#define ETH_DMA_Overflow_RxFIFOCounter ((uint32_t)0x10000000) /* Overflow bit for FIFO overflow counter */
#define ETH_DMA_Overflow_MissedFrameCounter ((uint32_t)0x00010000) /* Overflow bit for missed frame counter */
/*********************************************************************************
* Ethernet PMT defines
**********************************************************************************/
/* PMT flag */
#define ETH_PMT_FLAG_WUFFRPR ((uint32_t)0x80000000) /* Wake-Up Frame Filter Register Poniter Reset */
#define ETH_PMT_FLAG_WUFR ((uint32_t)0x00000040) /* Wake-Up Frame Received */
#define ETH_PMT_FLAG_MPR ((uint32_t)0x00000020) /* Magic Packet Received */
/*********************************************************************************
* Ethernet MMC defines
**********************************************************************************/
/* MMC TX interrupt flag */
#define ETH_MMC_IT_TGF ((uint32_t)0x00200000) /* When Tx good frame counter reaches half the maximum value */
#define ETH_MMC_IT_TGFMSC ((uint32_t)0x00008000) /* When Tx good multi col counter reaches half the maximum value */
#define ETH_MMC_IT_TGFSC ((uint32_t)0x00004000) /* When Tx good single col counter reaches half the maximum value */
/* MMC RX interrupt flag */
#define ETH_MMC_IT_RGUF ((uint32_t)0x10020000) /* When Rx good unicast frames counter reaches half the maximum value */
#define ETH_MMC_IT_RFAE ((uint32_t)0x10000040) /* When Rx alignment error counter reaches half the maximum value */
#define ETH_MMC_IT_RFCE ((uint32_t)0x10000020) /* When Rx crc error counter reaches half the maximum value */
/* MMC description */
#define ETH_MMCCR ((uint32_t)0x00000100) /* MMC CR register */
#define ETH_MMCRIR ((uint32_t)0x00000104) /* MMC RIR register */
#define ETH_MMCTIR ((uint32_t)0x00000108) /* MMC TIR register */
#define ETH_MMCRIMR ((uint32_t)0x0000010C) /* MMC RIMR register */
#define ETH_MMCTIMR ((uint32_t)0x00000110) /* MMC TIMR register */
#define ETH_MMCTGFSCCR ((uint32_t)0x0000014C) /* MMC TGFSCCR register */
#define ETH_MMCTGFMSCCR ((uint32_t)0x00000150) /* MMC TGFMSCCR register */
#define ETH_MMCTGFCR ((uint32_t)0x00000168) /* MMC TGFCR register */
#define ETH_MMCRFCECR ((uint32_t)0x00000194) /* MMC RFCECR register */
#define ETH_MMCRFAECR ((uint32_t)0x00000198) /* MMC RFAECR register */
#define ETH_MMCRGUFCR ((uint32_t)0x000001C4) /* MMC RGUFCR register */
/*********************************************************************************
* Ethernet PTP defines
**********************************************************************************/
/* PTP fine update method or coarse Update method */
#define ETH_PTP_FineUpdate ((uint32_t)0x00000001) /* Fine Update method */
#define ETH_PTP_CoarseUpdate ((uint32_t)0x00000000) /* Coarse Update method */
/* PTP time stamp control */
#define ETH_PTP_FLAG_TSARU ((uint32_t)0x00000020) /* Addend Register Update */
#define ETH_PTP_FLAG_TSITE ((uint32_t)0x00000010) /* Time Stamp Interrupt Trigger */
#define ETH_PTP_FLAG_TSSTU ((uint32_t)0x00000008) /* Time Stamp Update */
#define ETH_PTP_FLAG_TSSTI ((uint32_t)0x00000004) /* Time Stamp Initialize */
/* PTP positive/negative time value */
#define ETH_PTP_PositiveTime ((uint32_t)0x00000000) /* Positive time value */
#define ETH_PTP_NegativeTime ((uint32_t)0x80000000) /* Negative time value */
/******************************************************************************/
/* */
/* PTP Register */
/* */
/******************************************************************************/
#define ETH_PTPTSCR ((uint32_t)0x00000700) /* PTP TSCR register */
#define ETH_PTPSSIR ((uint32_t)0x00000704) /* PTP SSIR register */
#define ETH_PTPTSHR ((uint32_t)0x00000708) /* PTP TSHR register */
#define ETH_PTPTSLR ((uint32_t)0x0000070C) /* PTP TSLR register */
#define ETH_PTPTSHUR ((uint32_t)0x00000710) /* PTP TSHUR register */
#define ETH_PTPTSLUR ((uint32_t)0x00000714) /* PTP TSLUR register */
#define ETH_PTPTSAR ((uint32_t)0x00000718) /* PTP TSAR register */
#define ETH_PTPTTHR ((uint32_t)0x0000071C) /* PTP TTHR register */
#define ETH_PTPTTLR ((uint32_t)0x00000720) /* PTP TTLR register */
#define ETH_DMASR_TSTS ((unsigned int)0x20000000) /* Time-stamp trigger status */
#define ETH_DMASR_PMTS ((unsigned int)0x10000000) /* PMT status */
#define ETH_DMASR_MMCS ((unsigned int)0x08000000) /* MMC status */
#define ETH_DMASR_EBS ((unsigned int)0x03800000) /* Error bits status */
#define ETH_DMASR_EBS_DescAccess ((unsigned int)0x02000000) /* Error bits 0-data buffer, 1-desc. access */
#define ETH_DMASR_EBS_ReadTransf ((unsigned int)0x01000000) /* Error bits 0-write trnsf, 1-read transfr */
#define ETH_DMASR_EBS_DataTransfTx ((unsigned int)0x00800000) /* Error bits 0-Rx DMA, 1-Tx DMA */
#define ETH_DMASR_TPS ((unsigned int)0x00700000) /* Transmit process state */
#define ETH_DMASR_TPS_Stopped ((unsigned int)0x00000000) /* Stopped - Reset or Stop Tx Command issued */
#define ETH_DMASR_TPS_Fetching ((unsigned int)0x00100000) /* Running - fetching the Tx descriptor */
#define ETH_DMASR_TPS_Waiting ((unsigned int)0x00200000) /* Running - waiting for status */
#define ETH_DMASR_TPS_Reading ((unsigned int)0x00300000) /* Running - reading the data from host memory */
#define ETH_DMASR_TPS_Suspended ((unsigned int)0x00600000) /* Suspended - Tx Descriptor unavailabe */
#define ETH_DMASR_TPS_Closing ((unsigned int)0x00700000) /* Running - closing Rx descriptor */
#define ETH_DMASR_RPS ((unsigned int)0x000E0000) /* Receive process state */
#define ETH_DMASR_RPS_Stopped ((unsigned int)0x00000000) /* Stopped - Reset or Stop Rx Command issued */
#define ETH_DMASR_RPS_Fetching ((unsigned int)0x00020000) /* Running - fetching the Rx descriptor */
#define ETH_DMASR_RPS_Waiting ((unsigned int)0x00060000) /* Running - waiting for packet */
#define ETH_DMASR_RPS_Suspended ((unsigned int)0x00080000) /* Suspended - Rx Descriptor unavailable */
#define ETH_DMASR_RPS_Closing ((unsigned int)0x000A0000) /* Running - closing descriptor */
#define ETH_DMASR_RPS_Queuing ((unsigned int)0x000E0000) /* Running - queuing the recieve frame into host memory */
#define ETH_DMASR_NIS ((unsigned int)0x00010000) /* Normal interrupt summary */
#define ETH_DMASR_AIS ((unsigned int)0x00008000) /* Abnormal interrupt summary */
#define ETH_DMASR_ERS ((unsigned int)0x00004000) /* Early receive status */
#define ETH_DMASR_FBES ((unsigned int)0x00002000) /* Fatal bus error status */
#define ETH_DMASR_ETS ((unsigned int)0x00000400) /* Early transmit status */
#define ETH_DMASR_RWTS ((unsigned int)0x00000200) /* Receive watchdog timeout status */
#define ETH_DMASR_RPSS ((unsigned int)0x00000100) /* Receive process stopped status */
#define ETH_DMASR_RBUS ((unsigned int)0x00000080) /* Receive buffer unavailable status */
#define ETH_DMASR_RS ((unsigned int)0x00000040) /* Receive status */
#define ETH_DMASR_TUS ((unsigned int)0x00000020) /* Transmit underflow status */
#define ETH_DMASR_ROS ((unsigned int)0x00000010) /* Receive overflow status */
#define ETH_DMASR_TJTS ((unsigned int)0x00000008) /* Transmit jabber timeout status */
#define ETH_DMASR_TBUS ((unsigned int)0x00000004) /* Transmit buffer unavailable status */
#define ETH_DMASR_TPSS ((unsigned int)0x00000002) /* Transmit process stopped status */
#define ETH_DMASR_TS ((unsigned int)0x00000001) /* Transmit status */
/******************************************************************************/
/* */
/* ETH MAC Register */
/* */
/******************************************************************************/
#define ETH_MACCR_WD ((unsigned int)0x00800000) /* Watchdog disable */
#define ETH_MACCR_JD ((unsigned int)0x00400000) /* Jabber disable */
#define ETH_MACCR_IFG ((unsigned int)0x000E0000) /* Inter-frame gap */
#define ETH_MACCR_IFG_96Bit ((unsigned int)0x00000000) /* Minimum IFG between frames during transmission is 96Bit */
#define ETH_MACCR_IFG_88Bit ((unsigned int)0x00020000) /* Minimum IFG between frames during transmission is 88Bit */
#define ETH_MACCR_IFG_80Bit ((unsigned int)0x00040000) /* Minimum IFG between frames during transmission is 80Bit */
#define ETH_MACCR_IFG_72Bit ((unsigned int)0x00060000) /* Minimum IFG between frames during transmission is 72Bit */
#define ETH_MACCR_IFG_64Bit ((unsigned int)0x00080000) /* Minimum IFG between frames during transmission is 64Bit */
#define ETH_MACCR_IFG_56Bit ((unsigned int)0x000A0000) /* Minimum IFG between frames during transmission is 56Bit */
#define ETH_MACCR_IFG_48Bit ((unsigned int)0x000C0000) /* Minimum IFG between frames during transmission is 48Bit */
#define ETH_MACCR_IFG_40Bit ((unsigned int)0x000E0000) /* Minimum IFG between frames during transmission is 40Bit */
#define ETH_MACCR_CSD ((unsigned int)0x00010000) /* Carrier sense disable (during transmission) */
#define ETH_MACCR_FES ((unsigned int)0x00004000) /* Fast ethernet speed */
#define ETH_MACCR_ROD ((unsigned int)0x00002000) /* Receive own disable */
#define ETH_MACCR_LM ((unsigned int)0x00001000) /* loopback mode */
#define ETH_MACCR_DM ((unsigned int)0x00000800) /* Duplex mode */
#define ETH_MACCR_IPCO ((unsigned int)0x00000400) /* IP Checksum offload */
#define ETH_MACCR_RD ((unsigned int)0x00000200) /* Retry disable */
#define ETH_MACCR_APCS ((unsigned int)0x00000080) /* Automatic Pad/CRC stripping */
#define ETH_MACCR_BL ((unsigned int)0x00000060) /* Back-off limit: random integer number (r) of slot time delays before reschedulinga transmission attempt during retries after a collision: 0 =< r <2^k */
#define ETH_MACCR_BL_10 ((unsigned int)0x00000000) /* k = min (n, 10) */
#define ETH_MACCR_BL_8 ((unsigned int)0x00000020) /* k = min (n, 8) */
#define ETH_MACCR_BL_4 ((unsigned int)0x00000040) /* k = min (n, 4) */
#define ETH_MACCR_BL_1 ((unsigned int)0x00000060) /* k = min (n, 1) */
#define ETH_MACCR_DC ((unsigned int)0x00000010) /* Defferal check */
#define ETH_MACCR_TE ((unsigned int)0x00000008) /* Transmitter enable */
#define ETH_MACCR_RE ((unsigned int)0x00000004) /* Receiver enable */
#define ETH_MACFFR_RA ((unsigned int)0x80000000) /* Receive all */
#define ETH_MACFFR_HPF ((unsigned int)0x00000400) /* Hash or perfect filter */
#define ETH_MACFFR_SAF ((unsigned int)0x00000200) /* Source address filter enable */
#define ETH_MACFFR_SAIF ((unsigned int)0x00000100) /* SA inverse filtering */
#define ETH_MACFFR_PCF ((unsigned int)0x000000C0) /* Pass control frames: 3 cases */
#define ETH_MACFFR_PCF_BlockAll ((unsigned int)0x00000040) /* MAC filters all control frames from reaching the application */
#define ETH_MACFFR_PCF_ForwardAll ((unsigned int)0x00000080) /* MAC forwards all control frames to application even if they fail the Address Filter */
#define ETH_MACFFR_PCF_ForwardPassedAddrFilter ((unsigned int)0x000000C0) /* MAC forwards control frames that pass the Address Filter. */
#define ETH_MACFFR_BFD ((unsigned int)0x00000020) /* Broadcast frame disable */
#define ETH_MACFFR_PAM ((unsigned int)0x00000010) /* Pass all mutlicast */
#define ETH_MACFFR_DAIF ((unsigned int)0x00000008) /* DA Inverse filtering */
#define ETH_MACFFR_HM ((unsigned int)0x00000004) /* Hash multicast */
#define ETH_MACFFR_HU ((unsigned int)0x00000002) /* Hash unicast */
#define ETH_MACFFR_PM ((unsigned int)0x00000001) /* Promiscuous mode */
#define ETH_MACHTHR_HTH ((unsigned int)0xFFFFFFFF) /* Hash table high */
#define ETH_MACHTLR_HTL ((unsigned int)0xFFFFFFFF) /* Hash table low */
#define ETH_MACMIIAR_PA ((unsigned int)0x0000F800) /* Physical layer address */
#define ETH_MACMIIAR_MR ((unsigned int)0x000007C0) /* MII register in the selected PHY */
#define ETH_MACMIIAR_CR ((unsigned int)0x0000001C) /* CR clock range: 6 cases */
#define ETH_MACMIIAR_CR_Div42 ((unsigned int)0x00000000) /* HCLK:60-100 MHz; MDC clock= HCLK/42 */
#define ETH_MACMIIAR_CR_Div16 ((unsigned int)0x00000008) /* HCLK:20-35 MHz; MDC clock= HCLK/16 */
#define ETH_MACMIIAR_CR_Div26 ((unsigned int)0x0000000C) /* HCLK:35-60 MHz; MDC clock= HCLK/26 */
#define ETH_MACMIIAR_MW ((unsigned int)0x00000002) /* MII write */
#define ETH_MACMIIAR_MB ((unsigned int)0x00000001) /* MII busy */
#define ETH_MACMIIDR_MD ((unsigned int)0x0000FFFF) /* MII data: read/write data from/to PHY */
#define ETH_MACFCR_PT ((unsigned int)0xFFFF0000) /* Pause time */
#define ETH_MACFCR_ZQPD ((unsigned int)0x00000080) /* Zero-quanta pause disable */
#define ETH_MACFCR_PLT ((unsigned int)0x00000030) /* Pause low threshold: 4 cases */
#define ETH_MACFCR_PLT_Minus4 ((unsigned int)0x00000000) /* Pause time minus 4 slot times */
#define ETH_MACFCR_PLT_Minus28 ((unsigned int)0x00000010) /* Pause time minus 28 slot times */
#define ETH_MACFCR_PLT_Minus144 ((unsigned int)0x00000020) /* Pause time minus 144 slot times */
#define ETH_MACFCR_PLT_Minus256 ((unsigned int)0x00000030) /* Pause time minus 256 slot times */
#define ETH_MACFCR_UPFD ((unsigned int)0x00000008) /* Unicast pause frame detect */
#define ETH_MACFCR_RFCE ((unsigned int)0x00000004) /* Receive flow control enable */
#define ETH_MACFCR_TFCE ((unsigned int)0x00000002) /* Transmit flow control enable */
#define ETH_MACFCR_FCBBPA ((unsigned int)0x00000001) /* Flow control busy/backpressure activate */
#define ETH_MACVLANTR_VLANTC ((unsigned int)0x00010000) /* 12-bit VLAN tag comparison */
#define ETH_MACVLANTR_VLANTI ((unsigned int)0x0000FFFF) /* VLAN tag identifier (for receive frames) */
#define ETH_MACRWUFFR_D ((unsigned int)0xFFFFFFFF) /* Wake-up frame filter register data */
/* Eight sequential Writes to this address (offset 0x28) will write all Wake-UpFrame Filter Registers.
Eight sequential Reads from this address (offset 0x28) will read all Wake-UpFrame Filter Registers. */
/*
Wake-UpFrame Filter Reg0 : Filter 0 Byte Mask
Wake-UpFrame Filter Reg1 : Filter 1 Byte Mask
Wake-UpFrame Filter Reg2 : Filter 2 Byte Mask
Wake-UpFrame Filter Reg3 : Filter 3 Byte Mask
Wake-UpFrame Filter Reg4 : RSVD - Filter3 Command - RSVD - Filter2 Command -
RSVD - Filter1 Command - RSVD - Filter0 Command
Wake-UpFrame Filter Re5 : Filter3 Offset - Filter2 Offset - Filter1 Offset - Filter0 Offset
Wake-UpFrame Filter Re6 : Filter1 CRC16 - Filter0 CRC16
Wake-UpFrame Filter Re7 : Filter3 CRC16 - Filter2 CRC16 */
#define ETH_MACPMTCSR_WFFRPR ((unsigned int)0x80000000) /* Wake-Up Frame Filter Register Pointer Reset */
#define ETH_MACPMTCSR_GU ((unsigned int)0x00000200) /* Global Unicast */
#define ETH_MACPMTCSR_WFR ((unsigned int)0x00000040) /* Wake-Up Frame Received */
#define ETH_MACPMTCSR_MPR ((unsigned int)0x00000020) /* Magic Packet Received */
#define ETH_MACPMTCSR_WFE ((unsigned int)0x00000004) /* Wake-Up Frame Enable */
#define ETH_MACPMTCSR_MPE ((unsigned int)0x00000002) /* Magic Packet Enable */
#define ETH_MACPMTCSR_PD ((unsigned int)0x00000001) /* Power Down */
#define ETH_MACSR_TSTS ((unsigned int)0x00000200) /* Time stamp trigger status */
#define ETH_MACSR_MMCTS ((unsigned int)0x00000040) /* MMC transmit status */
#define ETH_MACSR_MMMCRS ((unsigned int)0x00000020) /* MMC receive status */
#define ETH_MACSR_MMCS ((unsigned int)0x00000010) /* MMC status */
#define ETH_MACSR_PMTS ((unsigned int)0x00000008) /* PMT status */
#define ETH_MACIMR_TSTIM ((unsigned int)0x00000200) /* Time stamp trigger interrupt mask */
#define ETH_MACIMR_PMTIM ((unsigned int)0x00000008) /* PMT interrupt mask */
#define ETH_MACA0HR_MACA0H ((unsigned int)0x0000FFFF) /* MAC address0 high */
#define ETH_MACA0LR_MACA0L ((unsigned int)0xFFFFFFFF) /* MAC address0 low */
#define ETH_MACA1HR_AE ((unsigned int)0x80000000) /* Address enable */
#define ETH_MACA1HR_SA ((unsigned int)0x40000000) /* Source address */
#define ETH_MACA1HR_MBC ((unsigned int)0x3F000000) /* Mask byte control: bits to mask for comparison of the MAC Address bytes */
#define ETH_MACA1HR_MBC_HBits15_8 ((unsigned int)0x20000000) /* Mask MAC Address high reg bits [15:8] */
#define ETH_MACA1HR_MBC_HBits7_0 ((unsigned int)0x10000000) /* Mask MAC Address high reg bits [7:0] */
#define ETH_MACA1HR_MBC_LBits31_24 ((unsigned int)0x08000000) /* Mask MAC Address low reg bits [31:24] */
#define ETH_MACA1HR_MBC_LBits23_16 ((unsigned int)0x04000000) /* Mask MAC Address low reg bits [23:16] */
#define ETH_MACA1HR_MBC_LBits15_8 ((unsigned int)0x02000000) /* Mask MAC Address low reg bits [15:8] */
#define ETH_MACA1HR_MBC_LBits7_0 ((unsigned int)0x01000000) /* Mask MAC Address low reg bits [7:0] */
#define ETH_MACA1HR_MACA1H ((unsigned int)0x0000FFFF) /* MAC address1 high */
#define ETH_MACA1LR_MACA1L ((unsigned int)0xFFFFFFFF) /* MAC address1 low */
#define ETH_MACA2HR_AE ((unsigned int)0x80000000) /* Address enable */
#define ETH_MACA2HR_SA ((unsigned int)0x40000000) /* Source address */
#define ETH_MACA2HR_MBC ((unsigned int)0x3F000000) /* Mask byte control */
#define ETH_MACA2HR_MBC_HBits15_8 ((unsigned int)0x20000000) /* Mask MAC Address high reg bits [15:8] */
#define ETH_MACA2HR_MBC_HBits7_0 ((unsigned int)0x10000000) /* Mask MAC Address high reg bits [7:0] */
#define ETH_MACA2HR_MBC_LBits31_24 ((unsigned int)0x08000000) /* Mask MAC Address low reg bits [31:24] */
#define ETH_MACA2HR_MBC_LBits23_16 ((unsigned int)0x04000000) /* Mask MAC Address low reg bits [23:16] */
#define ETH_MACA2HR_MBC_LBits15_8 ((unsigned int)0x02000000) /* Mask MAC Address low reg bits [15:8] */
#define ETH_MACA2HR_MBC_LBits7_0 ((unsigned int)0x01000000) /* Mask MAC Address low reg bits [70] */
#define ETH_MACA2HR_MACA2H ((unsigned int)0x0000FFFF) /* MAC address1 high */
#define ETH_MACA2LR_MACA2L ((unsigned int)0xFFFFFFFF) /* MAC address2 low */
#define ETH_MACA3HR_AE ((unsigned int)0x80000000) /* Address enable */
#define ETH_MACA3HR_SA ((unsigned int)0x40000000) /* Source address */
#define ETH_MACA3HR_MBC ((unsigned int)0x3F000000) /* Mask byte control */
#define ETH_MACA3HR_MBC_HBits15_8 ((unsigned int)0x20000000) /* Mask MAC Address high reg bits [15:8] */
#define ETH_MACA3HR_MBC_HBits7_0 ((unsigned int)0x10000000) /* Mask MAC Address high reg bits [7:0] */
#define ETH_MACA3HR_MBC_LBits31_24 ((unsigned int)0x08000000) /* Mask MAC Address low reg bits [31:24] */
#define ETH_MACA3HR_MBC_LBits23_16 ((unsigned int)0x04000000) /* Mask MAC Address low reg bits [23:16] */
#define ETH_MACA3HR_MBC_LBits15_8 ((unsigned int)0x02000000) /* Mask MAC Address low reg bits [15:8] */
#define ETH_MACA3HR_MBC_LBits7_0 ((unsigned int)0x01000000) /* Mask MAC Address low reg bits [70] */
#define ETH_MACA3HR_MACA3H ((unsigned int)0x0000FFFF) /* MAC address3 high */
#define ETH_MACA3LR_MACA3L ((unsigned int)0xFFFFFFFF) /* MAC address3 low */
/******************************************************************************
*
* ETH MMC Register
*
******************************************************************************/
#define ETH_MMCCR_MCFHP ((unsigned int)0x00000020) /* MMC counter Full-Half preset */
#define ETH_MMCCR_MCP ((unsigned int)0x00000010) /* MMC counter preset */
#define ETH_MMCCR_MCF ((unsigned int)0x00000008) /* MMC Counter Freeze */
#define ETH_MMCCR_ROR ((unsigned int)0x00000004) /* Reset on Read */
#define ETH_MMCCR_CSR ((unsigned int)0x00000002) /* Counter Stop Rollover */
#define ETH_MMCCR_CR ((unsigned int)0x00000001) /* Counters Reset */
#define ETH_MMCRIR_RGUFS ((unsigned int)0x00020000) /* Set when Rx good unicast frames counter reaches half the maximum value */
#define ETH_MMCRIR_RFAES ((unsigned int)0x00000040) /* Set when Rx alignment error counter reaches half the maximum value */
#define ETH_MMCRIR_RFCES ((unsigned int)0x00000020) /* Set when Rx crc error counter reaches half the maximum value */
#define ETH_MMCTIR_TGFS ((unsigned int)0x00200000) /* Set when Tx good frame count counter reaches half the maximum value */
#define ETH_MMCTIR_TGFMSCS ((unsigned int)0x00008000) /* Set when Tx good multi col counter reaches half the maximum value */
#define ETH_MMCTIR_TGFSCS ((unsigned int)0x00004000) /* Set when Tx good single col counter reaches half the maximum value */
#define ETH_MMCRIMR_RGUFM ((unsigned int)0x00020000) /* Mask the interrupt when Rx good unicast frames counter reaches half the maximum value */
#define ETH_MMCRIMR_RFAEM ((unsigned int)0x00000040) /* Mask the interrupt when when Rx alignment error counter reaches half the maximum value */
#define ETH_MMCRIMR_RFCEM ((unsigned int)0x00000020) /* Mask the interrupt when Rx crc error counter reaches half the maximum value */
#define ETH_MMCTIMR_TGFM ((unsigned int)0x00200000) /* Mask the interrupt when Tx good frame count counter reaches half the maximum value */
#define ETH_MMCTIMR_TGFMSCM ((unsigned int)0x00008000) /* Mask the interrupt when Tx good multi col counter reaches half the maximum value */
#define ETH_MMCTIMR_TGFSCM ((unsigned int)0x00004000) /* Mask the interrupt when Tx good single col counter reaches half the maximum value */
#define ETH_MMCTGFSCCR_TGFSCC ((unsigned int)0xFFFFFFFF) /* Number of successfully transmitted frames after a single collision in Half-duplex mode. */
#define ETH_MMCTGFMSCCR_TGFMSCC ((unsigned int)0xFFFFFFFF) /* Number of successfully transmitted frames after more than a single collision in Half-duplex mode. */
#define ETH_MMCTGFCR_TGFC ((unsigned int)0xFFFFFFFF) /* Number of good frames transmitted. */
#define ETH_MMCRFCECR_RFCEC ((unsigned int)0xFFFFFFFF) /* Number of frames received with CRC error. */
#define ETH_MMCRFAECR_RFAEC ((unsigned int)0xFFFFFFFF) /* Number of frames received with alignment (dribble) error */
#define ETH_MMCRGUFCR_RGUFC ((unsigned int)0xFFFFFFFF) /* Number of good unicast frames received. */
/******************************************************************************
*
* ETH Precise Clock Protocol Register
*
******************************************************************************/
#define ETH_PTPTSCR_TSCNT ((unsigned int)0x00030000) /* Time stamp clock node type */
#define ETH_PTPTSSR_TSSMRME ((unsigned int)0x00008000) /* Time stamp snapshot for message relevant to master enable */
#define ETH_PTPTSSR_TSSEME ((unsigned int)0x00004000) /* Time stamp snapshot for event message enable */
#define ETH_PTPTSSR_TSSIPV4FE ((unsigned int)0x00002000) /* Time stamp snapshot for IPv4 frames enable */
#define ETH_PTPTSSR_TSSIPV6FE ((unsigned int)0x00001000) /* Time stamp snapshot for IPv6 frames enable */
#define ETH_PTPTSSR_TSSPTPOEFE ((unsigned int)0x00000800) /* Time stamp snapshot for PTP over ethernet frames enable */
#define ETH_PTPTSSR_TSPTPPSV2E ((unsigned int)0x00000400) /* Time stamp PTP packet snooping for version2 format enable */
#define ETH_PTPTSSR_TSSSR ((unsigned int)0x00000200) /* Time stamp Sub-seconds rollover */
#define ETH_PTPTSSR_TSSARFE ((unsigned int)0x00000100) /* Time stamp snapshot for all received frames enable */
#define ETH_PTPTSCR_TSARU ((unsigned int)0x00000020) /* Addend register update */
#define ETH_PTPTSCR_TSITE ((unsigned int)0x00000010) /* Time stamp interrupt trigger enable */
#define ETH_PTPTSCR_TSSTU ((unsigned int)0x00000008) /* Time stamp update */
#define ETH_PTPTSCR_TSSTI ((unsigned int)0x00000004) /* Time stamp initialize */
#define ETH_PTPTSCR_TSFCU ((unsigned int)0x00000002) /* Time stamp fine or coarse update */
#define ETH_PTPTSCR_TSE ((unsigned int)0x00000001) /* Time stamp enable */
#define ETH_PTPSSIR_STSSI ((unsigned int)0x000000FF) /* System time Sub-second increment value */
#define ETH_PTPTSHR_STS ((unsigned int)0xFFFFFFFF) /* System Time second */
#define ETH_PTPTSLR_STPNS ((unsigned int)0x80000000) /* System Time Positive or negative time */
#define ETH_PTPTSLR_STSS ((unsigned int)0x7FFFFFFF) /* System Time sub-seconds */
#define ETH_PTPTSHUR_TSUS ((unsigned int)0xFFFFFFFF) /* Time stamp update seconds */
#define ETH_PTPTSLUR_TSUPNS ((unsigned int)0x80000000) /* Time stamp update Positive or negative time */
#define ETH_PTPTSLUR_TSUSS ((unsigned int)0x7FFFFFFF) /* Time stamp update sub-seconds */
#define ETH_PTPTSAR_TSA ((unsigned int)0xFFFFFFFF) /* Time stamp addend */
#define ETH_PTPTTHR_TTSH ((unsigned int)0xFFFFFFFF) /* Target time stamp high */
#define ETH_PTPTTLR_TTSL ((unsigned int)0xFFFFFFFF) /* Target time stamp low */
#define ETH_PTPTSSR_TSTTR ((unsigned int)0x00000020) /* Time stamp target time reached */
#define ETH_PTPTSSR_TSSO ((unsigned int)0x00000010) /* Time stamp seconds overflow */
/******************************************************************************
*
* ETH DMA Register
*
******************************************************************************/
#define ETH_DMABMR_AAB ((unsigned int)0x02000000) /* Address-Aligned beats */
#define ETH_DMABMR_FPM ((unsigned int)0x01000000) /* 4xPBL mode */
#define ETH_DMABMR_USP ((unsigned int)0x00800000) /* Use separate PBL */
#define ETH_DMABMR_RDP ((unsigned int)0x007E0000) /* RxDMA PBL */
#define ETH_DMABMR_RDP_1Beat ((unsigned int)0x00020000) /* maximum number of beats to be transferred in one RxDMA transaction is 1 */
#define ETH_DMABMR_RDP_2Beat ((unsigned int)0x00040000) /* maximum number of beats to be transferred in one RxDMA transaction is 2 */
#define ETH_DMABMR_RDP_4Beat ((unsigned int)0x00080000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */
#define ETH_DMABMR_RDP_8Beat ((unsigned int)0x00100000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */
#define ETH_DMABMR_RDP_16Beat ((unsigned int)0x00200000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */
#define ETH_DMABMR_RDP_32Beat ((unsigned int)0x00400000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */
#define ETH_DMABMR_RDP_4xPBL_4Beat ((unsigned int)0x01020000) /* maximum number of beats to be transferred in one RxDMA transaction is 4 */
#define ETH_DMABMR_RDP_4xPBL_8Beat ((unsigned int)0x01040000) /* maximum number of beats to be transferred in one RxDMA transaction is 8 */
#define ETH_DMABMR_RDP_4xPBL_16Beat ((unsigned int)0x01080000) /* maximum number of beats to be transferred in one RxDMA transaction is 16 */
#define ETH_DMABMR_RDP_4xPBL_32Beat ((unsigned int)0x01100000) /* maximum number of beats to be transferred in one RxDMA transaction is 32 */
#define ETH_DMABMR_RDP_4xPBL_64Beat ((unsigned int)0x01200000) /* maximum number of beats to be transferred in one RxDMA transaction is 64 */
#define ETH_DMABMR_RDP_4xPBL_128Beat ((unsigned int)0x01400000) /* maximum number of beats to be transferred in one RxDMA transaction is 128 */
#define ETH_DMABMR_FB ((unsigned int)0x00010000) /* Fixed Burst */
#define ETH_DMABMR_RTPR ((unsigned int)0x0000C000) /* Rx Tx priority ratio */
#define ETH_DMABMR_RTPR_1_1 ((unsigned int)0x00000000) /* Rx Tx priority ratio */
#define ETH_DMABMR_RTPR_2_1 ((unsigned int)0x00004000) /* Rx Tx priority ratio */
#define ETH_DMABMR_RTPR_3_1 ((unsigned int)0x00008000) /* Rx Tx priority ratio */
#define ETH_DMABMR_RTPR_4_1 ((unsigned int)0x0000C000) /* Rx Tx priority ratio */
#define ETH_DMABMR_PBL ((unsigned int)0x00003F00) /* Programmable burst length */
#define ETH_DMABMR_PBL_1Beat ((unsigned int)0x00000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */
#define ETH_DMABMR_PBL_2Beat ((unsigned int)0x00000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */
#define ETH_DMABMR_PBL_4Beat ((unsigned int)0x00000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
#define ETH_DMABMR_PBL_8Beat ((unsigned int)0x00000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
#define ETH_DMABMR_PBL_16Beat ((unsigned int)0x00001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
#define ETH_DMABMR_PBL_32Beat ((unsigned int)0x00002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
#define ETH_DMABMR_PBL_4xPBL_4Beat ((unsigned int)0x01000100) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */
#define ETH_DMABMR_PBL_4xPBL_8Beat ((unsigned int)0x01000200) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */
#define ETH_DMABMR_PBL_4xPBL_16Beat ((unsigned int)0x01000400) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */
#define ETH_DMABMR_PBL_4xPBL_32Beat ((unsigned int)0x01000800) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */
#define ETH_DMABMR_PBL_4xPBL_64Beat ((unsigned int)0x01001000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */
#define ETH_DMABMR_PBL_4xPBL_128Beat ((unsigned int)0x01002000) /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */
#define ETH_DMABMR_EDE ((unsigned int)0x00000080) /* Enhanced Descriptor Enable */
#define ETH_DMABMR_DSL ((unsigned int)0x0000007C) /* Descriptor Skip Length */
#define ETH_DMABMR_DA ((unsigned int)0x00000002) /* DMA arbitration scheme */
#define ETH_DMABMR_SR ((unsigned int)0x00000001) /* Software reset */
#define ETH_DMATPDR_TPD ((unsigned int)0xFFFFFFFF) /* Transmit poll demand */
#define ETH_DMARPDR_RPD ((unsigned int)0xFFFFFFFF) /* Receive poll demand */
#define ETH_DMARDLAR_SRL ((unsigned int)0xFFFFFFFF) /* Start of receive list */
#define ETH_DMATDLAR_STL ((unsigned int)0xFFFFFFFF) /* Start of transmit list */
#define ETH_DMASR_TSTS ((unsigned int)0x20000000) /* Time-stamp trigger status */
#define ETH_DMASR_PMTS ((unsigned int)0x10000000) /* PMT status */
#define ETH_DMASR_MMCS ((unsigned int)0x08000000) /* MMC status */
#define ETH_DMASR_EBS ((unsigned int)0x03800000) /* Error bits status */
#define ETH_DMASR_EBS_DescAccess ((unsigned int)0x02000000) /* Error bits 0-data buffer, 1-desc. access */
#define ETH_DMASR_EBS_ReadTransf ((unsigned int)0x01000000) /* Error bits 0-write trnsf, 1-read transfr */
#define ETH_DMASR_EBS_DataTransfTx ((unsigned int)0x00800000) /* Error bits 0-Rx DMA, 1-Tx DMA */
#define ETH_DMASR_TPS ((unsigned int)0x00700000) /* Transmit process state */
#define ETH_DMASR_TPS_Stopped ((unsigned int)0x00000000) /* Stopped - Reset or Stop Tx Command issued */
#define ETH_DMASR_TPS_Fetching ((unsigned int)0x00100000) /* Running - fetching the Tx descriptor */
#define ETH_DMASR_TPS_Waiting ((unsigned int)0x00200000) /* Running - waiting for status */
#define ETH_DMASR_TPS_Reading ((unsigned int)0x00300000) /* Running - reading the data from host memory */
#define ETH_DMASR_TPS_Suspended ((unsigned int)0x00600000) /* Suspended - Tx Descriptor unavailabe */
#define ETH_DMASR_TPS_Closing ((unsigned int)0x00700000) /* Running - closing Rx descriptor */
#define ETH_DMASR_RPS ((unsigned int)0x000E0000) /* Receive process state */
#define ETH_DMASR_RPS_Stopped ((unsigned int)0x00000000) /* Stopped - Reset or Stop Rx Command issued */
#define ETH_DMASR_RPS_Fetching ((unsigned int)0x00020000) /* Running - fetching the Rx descriptor */
#define ETH_DMASR_RPS_Waiting ((unsigned int)0x00060000) /* Running - waiting for packet */
#define ETH_DMASR_RPS_Suspended ((unsigned int)0x00080000) /* Suspended - Rx Descriptor unavailable */
#define ETH_DMASR_RPS_Closing ((unsigned int)0x000A0000) /* Running - closing descriptor */
#define ETH_DMASR_RPS_Queuing ((unsigned int)0x000E0000) /* Running - queuing the recieve frame into host memory */
#define ETH_DMASR_NIS ((unsigned int)0x00010000) /* Normal interrupt summary */
#define ETH_DMASR_AIS ((unsigned int)0x00008000) /* Abnormal interrupt summary */
#define ETH_DMASR_ERS ((unsigned int)0x00004000) /* Early receive status */
#define ETH_DMASR_FBES ((unsigned int)0x00002000) /* Fatal bus error status */
#define ETH_DMASR_PLS ((unsigned int)0x00000800) /* PHY interrupt status*/
#define ETH_DMASR_ETS ((unsigned int)0x00000400) /* Early transmit status */
#define ETH_DMASR_RWTS ((unsigned int)0x00000200) /* Receive watchdog timeout status */
#define ETH_DMASR_RPSS ((unsigned int)0x00000100) /* Receive process stopped status */
#define ETH_DMASR_RBUS ((unsigned int)0x00000080) /* Receive buffer unavailable status */
#define ETH_DMASR_RS ((unsigned int)0x00000040) /* Receive status */
#define ETH_DMASR_TUS ((unsigned int)0x00000020) /* Transmit underflow status */
#define ETH_DMASR_ROS ((unsigned int)0x00000010) /* Receive overflow status */
#define ETH_DMASR_TJTS ((unsigned int)0x00000008) /* Transmit jabber timeout status */
#define ETH_DMASR_TBUS ((unsigned int)0x00000004) /* Transmit buffer unavailable status */
#define ETH_DMASR_TPSS ((unsigned int)0x00000002) /* Transmit process stopped status */
#define ETH_DMASR_TS ((unsigned int)0x00000001) /* Transmit status */
#define ETH_DMAOMR_DTCEFD ((unsigned int)0x04000000) /* Disable Dropping of TCP/IP checksum error frames */
#define ETH_DMAOMR_RSF ((unsigned int)0x02000000) /* Receive store and forward */
#define ETH_DMAOMR_DFRF ((unsigned int)0x01000000) /* Disable flushing of received frames */
#define ETH_DMAOMR_TSF ((unsigned int)0x00200000) /* Transmit store and forward */
#define ETH_DMAOMR_FTF ((unsigned int)0x00100000) /* Flush transmit FIFO */
#define ETH_DMAOMR_TTC ((unsigned int)0x0001C000) /* Transmit threshold control */
#define ETH_DMAOMR_TTC_64Bytes ((unsigned int)0x00000000) /* threshold level of the MTL Transmit FIFO is 64 Bytes */
#define ETH_DMAOMR_TTC_128Bytes ((unsigned int)0x00004000) /* threshold level of the MTL Transmit FIFO is 128 Bytes */
#define ETH_DMAOMR_TTC_192Bytes ((unsigned int)0x00008000) /* threshold level of the MTL Transmit FIFO is 192 Bytes */
#define ETH_DMAOMR_TTC_256Bytes ((unsigned int)0x0000C000) /* threshold level of the MTL Transmit FIFO is 256 Bytes */
#define ETH_DMAOMR_TTC_40Bytes ((unsigned int)0x00010000) /* threshold level of the MTL Transmit FIFO is 40 Bytes */
#define ETH_DMAOMR_TTC_32Bytes ((unsigned int)0x00014000) /* threshold level of the MTL Transmit FIFO is 32 Bytes */
#define ETH_DMAOMR_TTC_24Bytes ((unsigned int)0x00018000) /* threshold level of the MTL Transmit FIFO is 24 Bytes */
#define ETH_DMAOMR_TTC_16Bytes ((unsigned int)0x0001C000) /* threshold level of the MTL Transmit FIFO is 16 Bytes */
#define ETH_DMAOMR_ST ((unsigned int)0x00002000) /* Start/stop transmission command */
#define ETH_DMAOMR_FEF ((unsigned int)0x00000080) /* Forward error frames */
#define ETH_DMAOMR_FUGF ((unsigned int)0x00000040) /* Forward undersized good frames */
#define ETH_DMAOMR_RTC ((unsigned int)0x00000018) /* receive threshold control */
#define ETH_DMAOMR_RTC_64Bytes ((unsigned int)0x00000000) /* threshold level of the MTL Receive FIFO is 64 Bytes */
#define ETH_DMAOMR_RTC_32Bytes ((unsigned int)0x00000008) /* threshold level of the MTL Receive FIFO is 32 Bytes */
#define ETH_DMAOMR_RTC_96Bytes ((unsigned int)0x00000010) /* threshold level of the MTL Receive FIFO is 96 Bytes */
#define ETH_DMAOMR_RTC_128Bytes ((unsigned int)0x00000018) /* threshold level of the MTL Receive FIFO is 128 Bytes */
#define ETH_DMAOMR_OSF ((unsigned int)0x00000004) /* operate on second frame */
#define ETH_DMAOMR_SR ((unsigned int)0x00000002) /* Start/stop receive */
#define ETH_DMAIER_NISE ((unsigned int)0x00010000) /* Normal interrupt summary enable */
#define ETH_DMAIER_AISE ((unsigned int)0x00008000) /* Abnormal interrupt summary enable */
#define ETH_DMAIER_ERIE ((unsigned int)0x00004000) /* Early receive interrupt enable */
#define ETH_DMAIER_FBEIE ((unsigned int)0x00002000) /* Fatal bus error interrupt enable */
#define ETH_DMAIER_PLE ((unsigned int)0x00000800) /* PHY interrupt enable*/
#define ETH_DMAIER_ETIE ((unsigned int)0x00000400) /* Early transmit interrupt enable */
#define ETH_DMAIER_RWTIE ((unsigned int)0x00000200) /* Receive watchdog timeout interrupt enable */
#define ETH_DMAIER_RPSIE ((unsigned int)0x00000100) /* Receive process stopped interrupt enable */
#define ETH_DMAIER_RBUIE ((unsigned int)0x00000080) /* Receive buffer unavailable interrupt enable */
#define ETH_DMAIER_RIE ((unsigned int)0x00000040) /* Receive interrupt enable */
#define ETH_DMAIER_TUIE ((unsigned int)0x00000020) /* Transmit Underflow interrupt enable */
#define ETH_DMAIER_ROIE ((unsigned int)0x00000010) /* Receive Overflow interrupt enable */
#define ETH_DMAIER_TJTIE ((unsigned int)0x00000008) /* Transmit jabber timeout interrupt enable */
#define ETH_DMAIER_TBUIE ((unsigned int)0x00000004) /* Transmit buffer unavailable interrupt enable */
#define ETH_DMAIER_TPSIE ((unsigned int)0x00000002) /* Transmit process stopped interrupt enable */
#define ETH_DMAIER_TIE ((unsigned int)0x00000001) /* Transmit interrupt enable */
#define ETH_DMAMFBOCR_OFOC ((unsigned int)0x10000000) /* Overflow bit for FIFO overflow counter */
#define ETH_DMAMFBOCR_MFA ((unsigned int)0x0FFE0000) /* Number of frames missed by the application */
#define ETH_DMAMFBOCR_OMFC ((unsigned int)0x00010000) /* Overflow bit for missed frame counter */
#define ETH_DMAMFBOCR_MFC ((unsigned int)0x0000FFFF) /* Number of frames missed by the controller */
#define ETH_DMACHTDR_HTDAP ((unsigned int)0xFFFFFFFF) /* Host transmit descriptor address pointer */
#define ETH_DMACHRDR_HRDAP ((unsigned int)0xFFFFFFFF) /* Host receive descriptor address pointer */
#define ETH_DMACHTBAR_HTBAP ((unsigned int)0xFFFFFFFF) /* Host transmit buffer address pointer */
#define ETH_DMACHRBAR_HRBAP ((unsigned int)0xFFFFFFFF) /* Host receive buffer address pointer */
#define ETH_MAC_ADDR_HBASE (ETH_MAC_BASE + 0x40) /* ETHERNET MAC address high offset */
#define ETH_MAC_ADDR_LBASE (ETH_MAC_BASE + 0x44) /* ETHERNET MAC address low offset */
/* ETHERNET MACMIIAR register Mask */
#define MACMIIAR_CR_MASK ((uint32_t)0xFFFFFFE3)
/* ETHERNET MACCR register Mask */
#define MACCR_CLEAR_MASK ((uint32_t)0xFF20810F)
/* ETHERNET MACFCR register Mask */
#define MACFCR_CLEAR_MASK ((uint32_t)0x0000FF41)
/* ETHERNET DMAOMR register Mask */
#define DMAOMR_CLEAR_MASK ((uint32_t)0xF8DE3F23)
/* ETHERNET Remote Wake-up frame register length */
#define ETH_WAKEUP_REGISTER_LENGTH 8
/* ETHERNET Missed frames counter Shift */
#define ETH_DMA_RX_OVERFLOW_MISSEDFRAMES_COUNTERSHIFT 17
/* ETHERNET DMA Tx descriptors Collision Count Shift */
#define ETH_DMATXDESC_COLLISION_COUNTSHIFT 3
/* ETHERNET DMA Tx descriptors Buffer2 Size Shift */
#define ETH_DMATXDESC_BUFFER2_SIZESHIFT 16
/* ETHERNET DMA Rx descriptors Frame Length Shift */
#define ETH_DMARXDESC_FRAME_LENGTHSHIFT 16
/* ETHERNET DMA Rx descriptors Buffer2 Size Shift */
#define ETH_DMARXDESC_BUFFER2_SIZESHIFT 16
/* ETHERNET errors */
#define ETH_ERROR ((uint32_t)0)
#define ETH_SUCCESS ((uint32_t)1)
#define PHY_REG_PAGE0 0x00
#define PHY_REG_PAGE4 0x04
#define PHY_REG_PAGE7 0x07
#define PHY_REG_PAGE17 0x11
#define PHY_REG_PAGE18 0x12
/* PHY basic register */
#define PHY_BCR 0x0 /*PHY transceiver Basic Control Register */
#define PHY_BSR 0x01 /*PHY transceiver Basic Status Register*/
#define PHY_BMCR PHY_BCR
#define PHY_BMSR PHY_BSR
#define PHY_PHYIDR1 0x02 /*PHY Identifier Register*/
#define PHY_PHYIDR2 0x03 /*PHY Identifier Register*/
#define PHY_ANAR 0x04 /* Auto-Negotiation Advertisement Register */
#define PHY_ANLPAR 0x05 /* Auto-Negotiation Link Partner Base Page Ability Register*/
#define PHY_PAG_SEL 0x1F
/****************Page 0********************/
#define PHY_CONTROL1 0x19
#define PHY_STATUS 0x1A
#define PHY_INTERRUPT_IND 0x1E
/****************Page 7********************/
#define PHY_INTERRUPT_MASK 0x13
#define PHY_SPEED_100M_MODE (1<<3)
#define PHY_SPEED_10M_MODE (1<<2)
#define PHY_FULL_DUPLEX_MODE (1<<1)
#define PHY_HALF_DUPLEX_MODE (1<<1)
/* ch32h417_exti.h -----------------------------------------------------------*/
#ifndef __ASSEMBLER__
/* EXTI mode enumeration */
typedef enum
{
EXTI_Mode_Interrupt = 0x00,
EXTI_Mode_Event = 0x04
}EXTIMode_TypeDef;
/* EXTI Trigger enumeration */
typedef enum
{
EXTI_Trigger_Rising = 0x08,
EXTI_Trigger_Falling = 0x0C,
EXTI_Trigger_Rising_Falling = 0x10
}EXTITrigger_TypeDef;
#endif
/* EXTI_Lines */
#define EXTI_Line0 ((uint32_t)0x00000001) /* External interrupt line 0 */
#define EXTI_Line1 ((uint32_t)0x00000002) /* External interrupt line 1 */
#define EXTI_Line2 ((uint32_t)0x00000004) /* External interrupt line 2 */
#define EXTI_Line3 ((uint32_t)0x00000008) /* External interrupt line 3 */
#define EXTI_Line4 ((uint32_t)0x00000010) /* External interrupt line 4 */
#define EXTI_Line5 ((uint32_t)0x00000020) /* External interrupt line 5 */
#define EXTI_Line6 ((uint32_t)0x00000040) /* External interrupt line 6 */
#define EXTI_Line7 ((uint32_t)0x00000080) /* External interrupt line 7 */
#define EXTI_Line8 ((uint32_t)0x00000100) /* External interrupt line 8 */
#define EXTI_Line9 ((uint32_t)0x00000200) /* External interrupt line 9 */
#define EXTI_Line10 ((uint32_t)0x00000400) /* External interrupt line 10 */
#define EXTI_Line11 ((uint32_t)0x00000800) /* External interrupt line 11 */
#define EXTI_Line12 ((uint32_t)0x00001000) /* External interrupt line 12 */
#define EXTI_Line13 ((uint32_t)0x00002000) /* External interrupt line 13 */
#define EXTI_Line14 ((uint32_t)0x00004000) /* External interrupt line 14 */
#define EXTI_Line15 ((uint32_t)0x00008000) /* External interrupt line 15 */
#define EXTI_Line16 ((uint32_t)0x00010000) /* External interrupt line 16 Connected to the USBHS wakeup event */
#define EXTI_Line17 ((uint32_t)0x00020000) /* External interrupt line 17 Connected to the RTC Alarm event */
#define EXTI_Line18 ((uint32_t)0x00040000) /* External interrupt line 18 Connected to the SWPMI wakeup event*/
#define EXTI_Line19 ((uint32_t)0x00080000) /* External interrupt line 19 Connected to the USBFSOTG Wakeup event */
#define EXTI_Line20 ((uint32_t)0x00100000) /* External interrupt line 20 Connected to the USBPD Wakeup event */
#define EXTI_Line21 ((uint32_t)0x00200000) /* External interrupt line 21 Connected to the ETH Wakeup event */
#define EXTI_Line22 ((uint32_t)0x00400000) /* External interrupt line 22 Connected to the USBSS Wakeup event */
#define EXTI_Line23 ((uint32_t)0x00800000) /* External interrupt line 23 Connected to the LPTIM1 Wakeup event */
#define EXTI_Line24 ((uint32_t)0x01000000) /* External interrupt line 24 Connected to the LPTIM2 Wakeup event */
#define EXTI_Line25 ((uint32_t)0x02000000) /* External interrupt line 25 Connected to the I3C Wakeup event */
/* ch32h417_flash.h ----------------------------------------------------------*/
#ifndef __ASSEMBLER__
/* FLASH Status */
typedef enum
{
FLASH_BUSY = 1,
FLASH_ERROR_PG,
FLASH_ERROR_WRP,
FLASH_COMPLETE,
FLASH_TIMEOUT,
FLASH_OP_RANGE_ERROR = 0xFD,
FLASH_ALIGN_ERROR = 0xFE,
FLASH_ADR_RANGE_ERROR = 0xFF,
}FLASH_Status;
#endif
/* Write Protect (dual flash mode - 8K bytes/sector) (single flash mode - 4K bytes/sector)*/
#define FLASH_WRProt_Sectors0 ((uint32_t)0x00000001) /* Write protection of setor 0 */
#define FLASH_WRProt_Sectors1 ((uint32_t)0x00000002) /* Write protection of setor 1 */
#define FLASH_WRProt_Sectors2 ((uint32_t)0x00000004) /* Write protection of setor 2 */
#define FLASH_WRProt_Sectors3 ((uint32_t)0x00000008) /* Write protection of setor 3 */
#define FLASH_WRProt_Sectors4 ((uint32_t)0x00000010) /* Write protection of setor 4 */
#define FLASH_WRProt_Sectors5 ((uint32_t)0x00000020) /* Write protection of setor 5 */
#define FLASH_WRProt_Sectors6 ((uint32_t)0x00000040) /* Write protection of setor 6 */
#define FLASH_WRProt_Sectors7 ((uint32_t)0x00000080) /* Write protection of setor 7 */
#define FLASH_WRProt_Sectors8 ((uint32_t)0x00000100) /* Write protection of setor 8 */
#define FLASH_WRProt_Sectors9 ((uint32_t)0x00000200) /* Write protection of setor 9 */
#define FLASH_WRProt_Sectors10 ((uint32_t)0x00000400) /* Write protection of setor 10 */
#define FLASH_WRProt_Sectors11 ((uint32_t)0x00000800) /* Write protection of setor 11 */
#define FLASH_WRProt_Sectors12 ((uint32_t)0x00001000) /* Write protection of setor 12 */
#define FLASH_WRProt_Sectors13 ((uint32_t)0x00002000) /* Write protection of setor 13 */
#define FLASH_WRProt_Sectors14 ((uint32_t)0x00004000) /* Write protection of setor 14 */
#define FLASH_WRProt_Sectors15 ((uint32_t)0x00008000) /* Write protection of setor 15 */
#define FLASH_WRProt_Sectors16 ((uint32_t)0x00010000) /* Write protection of setor 16 */
#define FLASH_WRProt_Sectors17 ((uint32_t)0x00020000) /* Write protection of setor 17 */
#define FLASH_WRProt_Sectors18 ((uint32_t)0x00040000) /* Write protection of setor 18 */
#define FLASH_WRProt_Sectors19 ((uint32_t)0x00080000) /* Write protection of setor 19 */
#define FLASH_WRProt_Sectors20 ((uint32_t)0x00100000) /* Write protection of setor 20 */
#define FLASH_WRProt_Sectors21 ((uint32_t)0x00200000) /* Write protection of setor 21 */
#define FLASH_WRProt_Sectors22 ((uint32_t)0x00400000) /* Write protection of setor 22 */
#define FLASH_WRProt_Sectors23 ((uint32_t)0x00800000) /* Write protection of setor 23 */
#define FLASH_WRProt_Sectors24 ((uint32_t)0x01000000) /* Write protection of setor 24 */
#define FLASH_WRProt_Sectors25 ((uint32_t)0x02000000) /* Write protection of setor 25 */
#define FLASH_WRProt_Sectors26 ((uint32_t)0x04000000) /* Write protection of setor 26 */
#define FLASH_WRProt_Sectors27 ((uint32_t)0x08000000) /* Write protection of setor 27 */
#define FLASH_WRProt_Sectors28 ((uint32_t)0x10000000) /* Write protection of setor 28 */
#define FLASH_WRProt_Sectors29 ((uint32_t)0x20000000) /* Write protection of setor 29 */
#define FLASH_WRProt_Sectors30 ((uint32_t)0x40000000) /* Write protection of setor 30 */
#define FLASH_WRProt_Sectors31to119 ((uint32_t)0x80000000) /* Write protection of setor 31 to 119*/
#define FLASH_WRProt_AllSectors ((uint32_t)0xFFFFFFFF) /* Write protection of all Sectors */
/* Option_Bytes_IWatchdog */
#define OB_IWDG_SW ((uint16_t)0x0001) /* Software IWDG selected */
#define OB_IWDG_HW ((uint16_t)0x0000) /* Hardware IWDG selected */
/* Option_Bytes_USBFSDLEN */
#define OB_USBFSDL_EN ((uint16_t)0x0040) /* Boot Enable USBFS Download */
#define OB_USBFSDL_NoEN ((uint16_t)0x0000) /* Boot Disable USBFS Download */
/* Option_Bytes_USARTDLEN */
#define OB_USARTDL_EN ((uint16_t)0x0080) /* Boot Enable USART Download*/
#define OB_USARTDL_NoEN ((uint16_t)0x0000) /* Boot Disable USART Download */
/* FLASH_Interrupts */
#define FLASH_IT_ERROR ((uint32_t)0x00000400)
#define FLASH_IT_EOP ((uint32_t)0x00001000)
/* FLASH_Flags */
#define FLASH_FLAG_BSY ((uint32_t)0x00000001)
#define FLASH_FLAG_EOP ((uint32_t)0x00000020)
#define FLASH_FLAG_WRPRTERR ((uint32_t)0x00000010)
#define FLASH_FLAG_OPTERR ((uint32_t)0x80000001)
#define FLASH_FLAG_ENHANCE ((uint32_t)0x00000040)
#define FLASH_FLAG_READY ((uint32_t)0x00004000)
#define FLASH_FLAG_LPMODE ((uint32_t)0x00008000)
/* FLASH_Access_CLK */
#define FLASH_CLK_HCLKDIV1 ((uint32_t)0x00000000)
#define FLASH_CLK_HCLKDIV2 ((uint32_t)0x00000001)
#define FLASH_CLK_HCLKDIV4 ((uint32_t)0x00000002)
#define FLASH_CLK_HCLKDIV8 ((uint32_t)0x00000003)
/* System_Reset_Start_Mode */
#define Start_Mode_USER ((uint32_t)0x00000000)
#define Start_Mode_BOOT ((uint32_t)0x00004000)
/* ch32h417_fmc.h ------------------------------------------------------------*/
#ifndef __ASSEMBLER__
/* FMC SDRAM BANK Status enumeration */
typedef enum
{
FMC_SDRAM_Normal = 0,
FMC_SDRAM_SelfRefresh,
FMC_SDRAM_PowerOff
}FMC_SDRAM_BANK_Sta_TypeDef;
#endif
/* FMC_NORSRAM_Bank */
#define FMC_Bank1_NORSRAM1 ((uint32_t)0x00000000)
#define FMC_Bank1_NORSRAM2 ((uint32_t)0x00000002)
#define FMC_Bank1_NORSRAM3 ((uint32_t)0x00000004)
#define FMC_Bank1_NORSRAM4 ((uint32_t)0x00000006)
/* FMC_NAND_Bank */
#define FMC_Bank3_NAND ((uint32_t)0x00000000)
/* FMC_SDRAM_Bank */
#define FMC_Bank5_SDRAM ((uint32_t)0x00000000)
#define FMC_Bank6_SDRAM ((uint32_t)0x00000002)
/* FMC_Data_Address_Bus_Multiplexing */
#define FMC_DataAddressMux_Disable ((uint32_t)0x00000000)
#define FMC_DataAddressMux_Enable ((uint32_t)0x00000002)
/* FMC_Memory_Type */
#define FMC_MemoryType_SRAM ((uint32_t)0x00000000)
#define FMC_MemoryType_PSRAM ((uint32_t)0x00000004)
#define FMC_MemoryType_NOR ((uint32_t)0x00000008)
/* FMC_Data_Width */
#define FMC_MemoryDataWidth_8b ((uint32_t)0x00000000)
#define FMC_MemoryDataWidth_16b ((uint32_t)0x00000010)
#define FMC_MemoryDataWidth_32b ((uint32_t)0x00000020)
/* FMC_NAND_Data_Width */
#define FMC_NAND_MemDataWidth_8b ((uint32_t)0x00000000)
#define FMC_NAND_MemDataWidth_16b ((uint32_t)0x00000010)
/* FMC_CPSIZE */
#define FMC_CPSIZE_None ((uint32_t)0x00000000)
#define FMC_CPSIZE_128Bytes ((uint32_t)0x00010000)
#define FMC_CPSIZE_256Bytes ((uint32_t)0x00020000)
#define FMC_CPSIZE_512Bytes ((uint32_t)0x00030000)
#define FMC_CPSIZE_1024Bytes ((uint32_t)0x00040000)
/* FMC_BMP */
#define FMC_BMP_Mode0 ((uint32_t)0x00000000)
#define FMC_BMP_Mode1 ((uint32_t)0x00010000)
/* FMC_Burst_Access_Mode */
#define FMC_BurstAccessMode_Disable ((uint32_t)0x00000000)
#define FMC_BurstAccessMode_Enable ((uint32_t)0x00000100)
/* FMC_AsynchronousWait */
#define FMC_AsynchronousWait_Disable ((uint32_t)0x00000000)
#define FMC_AsynchronousWait_Enable ((uint32_t)0x00008000)
/* FMC_Wait_Signal_Polarity */
#define FMC_WaitSignalPolarity_Low ((uint32_t)0x00000000)
#define FMC_WaitSignalPolarity_High ((uint32_t)0x00000200)
/* FMC_Wait_Timing */
#define FMC_WaitSignalActive_BeforeWaitState ((uint32_t)0x00000000)
#define FMC_WaitSignalActive_DuringWaitState ((uint32_t)0x00000800)
/* FMC_Write_Operation */
#define FMC_WriteOperation_Disable ((uint32_t)0x00000000)
#define FMC_WriteOperation_Enable ((uint32_t)0x00001000)
/* FMC_Wait_Signal */
#define FMC_WaitSignal_Disable ((uint32_t)0x00000000)
#define FMC_WaitSignal_Enable ((uint32_t)0x00002000)
/* FMC_Extended_Mode */
#define FMC_ExtendedMode_Disable ((uint32_t)0x00000000)
#define FMC_ExtendedMode_Enable ((uint32_t)0x00004000)
/* FMC_Write_Burst */
#define FMC_WriteBurst_Disable ((uint32_t)0x00000000)
#define FMC_WriteBurst_Enable ((uint32_t)0x00080000)
/* FMC_Access_Mode */
#define FMC_AccessMode_A ((uint32_t)0x00000000)
#define FMC_AccessMode_B ((uint32_t)0x10000000)
#define FMC_AccessMode_C ((uint32_t)0x20000000)
#define FMC_AccessMode_D ((uint32_t)0x30000000)
/* FMC_Wait_feature */
#define FMC_Waitfeature_Disable ((uint32_t)0x00000000)
#define FMC_Waitfeature_Enable ((uint32_t)0x00000002)
/* FMC_ECC */
#define FMC_ECC_Disable ((uint32_t)0x00000000)
#define FMC_ECC_Enable ((uint32_t)0x00000040)
/* FMC_ECC_Page_Size */
#define FMC_ECCPageSize_256Bytes ((uint32_t)0x00000000)
#define FMC_ECCPageSize_512Bytes ((uint32_t)0x00020000)
#define FMC_ECCPageSize_1024Bytes ((uint32_t)0x00040000)
#define FMC_ECCPageSize_2048Bytes ((uint32_t)0x00060000)
#define FMC_ECCPageSize_4096Bytes ((uint32_t)0x00080000)
#define FMC_ECCPageSize_8192Bytes ((uint32_t)0x000A0000)
/* FMC_ColumnBitsNumber */
#define FMC_ColumnBitsNumber_8 ((uint32_t)0x00000000)
#define FMC_ColumnBitsNumber_9 ((uint32_t)0x00000001)
#define FMC_ColumnBitsNumber_10 ((uint32_t)0x00000002)
#define FMC_ColumnBitsNumber_11 ((uint32_t)0x00000003)
/* FMC_RowBitsNumber */
#define FMC_ROWBitsNumber_11 ((uint32_t)0x00000000)
#define FMC_ROWBitsNumber_12 ((uint32_t)0x00000001)
#define FMC_ROWBitsNumber_13 ((uint32_t)0x00000002)
/* FMC_MemoryDataWidth */
#define FMC_MemoryDataWidth_8 ((uint32_t)0x00000000)
#define FMC_MemoryDataWidth_16 ((uint32_t)0x00000001)
#define FMC_MemoryDataWidth_32 ((uint32_t)0x00000002)
/* FMC_InternalBankNumber */
#define FMC_InternalBankNumber_2 ((uint32_t)0x00000000)
#define FMC_InternalBankNumber_4 ((uint32_t)0x00000001)
/* FMC_CASLatency */
#define FMC_CASLatency_1CLk ((uint32_t)0x00000001)
#define FMC_CASLatency_2CLk ((uint32_t)0x00000002)
#define FMC_CASLatency_3CLk ((uint32_t)0x00000003)
/* FMC_WriteProtection */
#define FMC_WriteProtection_Enable ((uint32_t)0x00000001)
#define FMC_WriteProtection_Disable ((uint32_t)0x00000000)
/* FMC_SDClockPeriod */
#define FMC_SDClockPeriod_Disable ((uint32_t)0x00000000)
#define FMC_SDClockPeriod_2HCLK ((uint32_t)0x00000002)
#define FMC_SDClockPeriod_3HCLK ((uint32_t)0x00000003)
/* FMC_ReadBurst */
#define FMC_ReadBurst_Disable ((uint32_t)0x00000000)
#define FMC_ReadBurst_Enable ((uint32_t)0x00000001)
/* FMC_ReadPipeDelay */
#define FMC_ReadPipeDelay_none ((uint32_t)0x00000000)
#define FMC_ReadPipeDelay_1HCLK ((uint32_t)0x00000001)
#define FMC_ReadPipeDelay_2HCLK ((uint32_t)0x00000002)
/* FMC_ENHANCE_READ_MODE */
#define FMC_ENHANCE_READ_MODE_Enable ((uint32_t)0x00000000)
#define FMC_ENHANCE_READ_MODE_Disable ((uint32_t)0x00008000)
/* FMC_SDRAM_SEL */
#define FMC_SDRAM_SEL_None ((uint32_t)0x00000000)
#define FMC_SDRAM_SEL_Bank5 ((uint32_t)0x00000010)
#define FMC_SDRAM_SEL_Bank6 ((uint32_t)0x00000008)
#define FMC_SDRAM_SEL_Bank5_6 ((uint32_t)0x00000018)
/* FMC_SDRAM_CMD_Mode */
#define FMC_SDRAM_CMD_Mode0 ((uint32_t)0x00000000)
#define FMC_SDRAM_CMD_Mode1 ((uint32_t)0x00000001)
#define FMC_SDRAM_CMD_Mode2 ((uint32_t)0x00000002)
#define FMC_SDRAM_CMD_Mode3 ((uint32_t)0x00000003)
#define FMC_SDRAM_CMD_Mode4 ((uint32_t)0x00000004)
#define FMC_SDRAM_CMD_Mode5 ((uint32_t)0x00000005)
#define FMC_SDRAM_CMD_Mode6 ((uint32_t)0x00000006)
/* FMC_interrupts_definition */
#define FMC_IT_RE ((uint32_t)0x00004000))
/* FMC_flags_definition */
#define FMC_FLAG_FEMPT ((uint32_t)0x00000040)
#define FMC_FLAG_BUSY ((uint32_t)0x10000020))
#define FMC_FLAG_RE ((uint32_t)0x10000001))
/* ch32h417_gpio.h ------------------------------------------------------------*/
#ifndef __ASSEMBLER__
/* Output Maximum frequency selection */
#warning "Speeds on H41x have their own register, dont concat in CFGLR"
typedef enum
{
GPIO_Speed_10MHz = 0,
GPIO_Speed_50MHz,
GPIO_Speed_100MHz,
GPIO_Speed_180MHz,
} GPIOSpeed_TypeDef;
#endif
#define GPIO_CNF_IN_ANALOG 0
#define GPIO_CNF_IN_FLOATING 4
#define GPIO_CNF_IN_PUPD 8
#define GPIO_CNF_OUT_PP 1
#define GPIO_CNF_OUT_OD 5
#define GPIO_CNF_OUT_PP_AF 9
#define GPIO_CNF_OUT_OD_AF 13
/* Configuration Mode enumeration */
/*
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
*/
#ifndef __ASSEMBLER__
/* Bit_SET and Bit_RESET enumeration */
typedef enum
{
Bit_RESET = 0,
Bit_SET
} BitAction;
#endif
/* GPIO_pins_define */
#define GPIO_Pin_0 ((uint16_t)0x0001) /* Pin 0 selected */
#define GPIO_Pin_1 ((uint16_t)0x0002) /* Pin 1 selected */
#define GPIO_Pin_2 ((uint16_t)0x0004) /* Pin 2 selected */
#define GPIO_Pin_3 ((uint16_t)0x0008) /* Pin 3 selected */
#define GPIO_Pin_4 ((uint16_t)0x0010) /* Pin 4 selected */
#define GPIO_Pin_5 ((uint16_t)0x0020) /* Pin 5 selected */
#define GPIO_Pin_6 ((uint16_t)0x0040) /* Pin 6 selected */
#define GPIO_Pin_7 ((uint16_t)0x0080) /* Pin 7 selected */
#define GPIO_Pin_8 ((uint16_t)0x0100) /* Pin 8 selected */
#define GPIO_Pin_9 ((uint16_t)0x0200) /* Pin 9 selected */
#define GPIO_Pin_10 ((uint16_t)0x0400) /* Pin 10 selected */
#define GPIO_Pin_11 ((uint16_t)0x0800) /* Pin 11 selected */
#define GPIO_Pin_12 ((uint16_t)0x1000) /* Pin 12 selected */
#define GPIO_Pin_13 ((uint16_t)0x2000) /* Pin 13 selected */
#define GPIO_Pin_14 ((uint16_t)0x4000) /* Pin 14 selected */
#define GPIO_Pin_15 ((uint16_t)0x8000) /* Pin 15 selected */
#define GPIO_Pin_All ((uint16_t)0xFFFF) /* All pins selected */
/* GPIO_Remap_define */
#define GPIO_Remap_PD0PD1 ((uint32_t)0x00000001) /* PD0 and PD1 Alternate Function mapping */
#define GPIO_Remap_ADC1_ETRGREG ((uint32_t)0x00000002) /* ADC1 external trigger regular conversion mapping */
#define GPIO_Remap_ADC1_ETRGINJ ((uint32_t)0x00000004) /* ADC1 external trigger injection conversion mapping */
#define GPIO_Remap_ADC2_ETRGREG ((uint32_t)0x00000008) /* ADC2 external trigger regular conversion mapping */
#define GPIO_Remap_ADC2_ETRGINJ ((uint32_t)0x00000010) /* ADC2 external trigger injection conversion mapping */
#define GPIO_PartialRemap_UHSIF_CLK ((uint32_t)0x00160040) /* UHSIF CLK Partial Alternate Function mapping */
#define GPIO_PartialRemap1_UHSIF_CLK ((uint32_t)0x00160080) /* UHSIF CLK Partial1 Alternate Function mapping */
#define GPIO_FullRemap_UHSIF_CLK ((uint32_t)0x001600C0) /* UHSIF CLK Full Alternate Function mapping */
#define GPIO_PartialRemap_UHSIF_PORT ((uint32_t)0x00180100) /* UHSIF Port Partial Alternate Function mapping */
#define GPIO_PartialFullRemap_UHSIF_PORT ((uint32_t)0x00180300) /* UHSIF Port Full Alternate Function mapping */
#define GPIO_PartialRemap_SDMMC ((uint32_t)0x001A0400) /* SDMMC Partial Alternate Function mapping */
#define GPIO_PartialFullRemap_SDMMC ((uint32_t)0x001A0C00) /* SDMMC Full Alternate Function mapping */
#define GPIO_Remap_TIM2ITR1 ((uint32_t)0x00001000) /* TIM2 TRIG Alternate Function mapping */
#define GPIO_Remap_VIO1V8_IO_HSLV ((uint32_t)0x00200002) /* VIO(1.8V) GPIO speed configration Alternate Function mapping */
#define GPIO_Remap_VIO3V3_IO_HSLV ((uint32_t)0x00200004) /* VIO(3.3V) GPIO speed configration Alternate Function mapping */
#define GPIO_Remap_VDD3V3_IO_HSLV ((uint32_t)0x00200008) /* VDD(3.3V) GPIO speed configration Alternate Function mapping */
#define GPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /* SWJ Disable Function mapping */
/* GPIO_Port_Sources */
#define GPIO_PortSourceGPIOA ((uint8_t)0x00)
#define GPIO_PortSourceGPIOB ((uint8_t)0x01)
#define GPIO_PortSourceGPIOC ((uint8_t)0x02)
#define GPIO_PortSourceGPIOD ((uint8_t)0x03)
#define GPIO_PortSourceGPIOE ((uint8_t)0x04)
#define GPIO_PortSourceGPIOF ((uint8_t)0x05)
#define GPIO_PortSourceCMP ((uint8_t)0x06)
/* GPIO_Pin_sources */
#define GPIO_PinSource0 ((uint8_t)0x00)
#define GPIO_PinSource1 ((uint8_t)0x01)
#define GPIO_PinSource2 ((uint8_t)0x02)
#define GPIO_PinSource3 ((uint8_t)0x03)
#define GPIO_PinSource4 ((uint8_t)0x04)
#define GPIO_PinSource5 ((uint8_t)0x05)
#define GPIO_PinSource6 ((uint8_t)0x06)
#define GPIO_PinSource7 ((uint8_t)0x07)
#define GPIO_PinSource8 ((uint8_t)0x08)
#define GPIO_PinSource9 ((uint8_t)0x09)
#define GPIO_PinSource10 ((uint8_t)0x0A)
#define GPIO_PinSource11 ((uint8_t)0x0B)
#define GPIO_PinSource12 ((uint8_t)0x0C)
#define GPIO_PinSource13 ((uint8_t)0x0D)
#define GPIO_PinSource14 ((uint8_t)0x0E)
#define GPIO_PinSource15 ((uint8_t)0x0F)
/* GPIO_AF_Define */
#define GPIO_AF0 ((uint8_t)0x00)
#define GPIO_AF1 ((uint8_t)0x01)
#define GPIO_AF2 ((uint8_t)0x02)
#define GPIO_AF3 ((uint8_t)0x03)
#define GPIO_AF4 ((uint8_t)0x04)
#define GPIO_AF5 ((uint8_t)0x05)
#define GPIO_AF6 ((uint8_t)0x06)
#define GPIO_AF7 ((uint8_t)0x07)
#define GPIO_AF8 ((uint8_t)0x08)
#define GPIO_AF9 ((uint8_t)0x09)
#define GPIO_AF10 ((uint8_t)0x0A)
#define GPIO_AF11 ((uint8_t)0x0B)
#define GPIO_AF12 ((uint8_t)0x0C)
#define GPIO_AF13 ((uint8_t)0x0D)
#define GPIO_AF14 ((uint8_t)0x0E)
#define GPIO_AF15 ((uint8_t)0x0F)
/* ch32h417_i2c.h ------------------------------------------------------------*/
/* I2C_mode */
#define I2C_Mode_I2C ((uint16_t)0x0000)
#define I2C_Mode_SMBusDevice ((uint16_t)0x0002)
#define I2C_Mode_SMBusHost ((uint16_t)0x000A)
/* I2C_duty_cycle_in_fast_mode */
#define I2C_DutyCycle_16_9 ((uint16_t)0x4000) /* I2C fast mode Tlow/Thigh = 16/9 */
#define I2C_DutyCycle_2 ((uint16_t)0xBFFF) /* I2C fast mode Tlow/Thigh = 2 */
/* I2C_acknowledgement */
#define I2C_Ack_Enable ((uint16_t)0x0400)
#define I2C_Ack_Disable ((uint16_t)0x0000)
/* I2C_transfer_direction */
#define I2C_Direction_Transmitter ((uint8_t)0x00)
#define I2C_Direction_Receiver ((uint8_t)0x01)
/* I2C_acknowledged_address */
#define I2C_AcknowledgedAddress_7bit ((uint16_t)0x4000)
#define I2C_AcknowledgedAddress_10bit ((uint16_t)0xC000)
/* I2C_registers */
#define I2C_Register_CTLR1 ((uint8_t)0x00)
#define I2C_Register_CTLR2 ((uint8_t)0x04)
#define I2C_Register_OADDR1 ((uint8_t)0x08)
#define I2C_Register_OADDR2 ((uint8_t)0x0C)
#define I2C_Register_DATAR ((uint8_t)0x10)
#define I2C_Register_STAR1 ((uint8_t)0x14)
#define I2C_Register_STAR2 ((uint8_t)0x18)
#define I2C_Register_CKCFGR ((uint8_t)0x1C)
#define I2C_Register_RTR ((uint8_t)0x20)
/* I2C_SMBus_alert_pin_level */
#define I2C_SMBusAlert_Low ((uint16_t)0x2000)
#define I2C_SMBusAlert_High ((uint16_t)0xDFFF)
/* I2C_PEC_position */
#define I2C_PECPosition_Next ((uint16_t)0x0800)
#define I2C_PECPosition_Current ((uint16_t)0xF7FF)
/* I2C_NACK_position */
#define I2C_NACKPosition_Next ((uint16_t)0x0800)
#define I2C_NACKPosition_Current ((uint16_t)0xF7FF)
/* I2C_interrupts_definition */
#define I2C_IT_BUF ((uint16_t)0x0400)
#define I2C_IT_EVT ((uint16_t)0x0200)
#define I2C_IT_ERR ((uint16_t)0x0100)
/* I2C_interrupts_definition */
#define I2C_IT_SMBALERT ((uint32_t)0x01008000)
#define I2C_IT_TIMEOUT ((uint32_t)0x01004000)
#define I2C_IT_PECERR ((uint32_t)0x01001000)
#define I2C_IT_OVR ((uint32_t)0x01000800)
#define I2C_IT_AF ((uint32_t)0x01000400)
#define I2C_IT_ARLO ((uint32_t)0x01000200)
#define I2C_IT_BERR ((uint32_t)0x01000100)
#define I2C_IT_TXE ((uint32_t)0x06000080)
#define I2C_IT_RXNE ((uint32_t)0x06000040)
#define I2C_IT_STOPF ((uint32_t)0x02000010)
#define I2C_IT_ADD10 ((uint32_t)0x02000008)
#define I2C_IT_BTF ((uint32_t)0x02000004)
#define I2C_IT_ADDR ((uint32_t)0x02000002)
#define I2C_IT_SB ((uint32_t)0x02000001)
/* SR2 register flags */
#define I2C_FLAG_DUALF ((uint32_t)0x00800000)
#define I2C_FLAG_SMBHOST ((uint32_t)0x00400000)
#define I2C_FLAG_SMBDEFAULT ((uint32_t)0x00200000)
#define I2C_FLAG_GENCALL ((uint32_t)0x00100000)
#define I2C_FLAG_TRA ((uint32_t)0x00040000)
#define I2C_FLAG_BUSY ((uint32_t)0x00020000)
#define I2C_FLAG_MSL ((uint32_t)0x00010000)
/* SR1 register flags */
#define I2C_FLAG_SMBALERT ((uint32_t)0x10008000)
#define I2C_FLAG_TIMEOUT ((uint32_t)0x10004000)
#define I2C_FLAG_PECERR ((uint32_t)0x10001000)
#define I2C_FLAG_OVR ((uint32_t)0x10000800)
#define I2C_FLAG_AF ((uint32_t)0x10000400)
#define I2C_FLAG_ARLO ((uint32_t)0x10000200)
#define I2C_FLAG_BERR ((uint32_t)0x10000100)
#define I2C_FLAG_TXE ((uint32_t)0x10000080)
#define I2C_FLAG_RXNE ((uint32_t)0x10000040)
#define I2C_FLAG_STOPF ((uint32_t)0x10000010)
#define I2C_FLAG_ADD10 ((uint32_t)0x10000008)
#define I2C_FLAG_BTF ((uint32_t)0x10000004)
#define I2C_FLAG_ADDR ((uint32_t)0x10000002)
#define I2C_FLAG_SB ((uint32_t)0x10000001)
/****************I2C Master Events (Events grouped in order of communication)********************/
/********************************************************************************************************************
* @brief Start communicate
*
* After master use I2C_GenerateSTART() function sending the START condition,the master
* has to wait for event 5(the Start condition has been correctly
* released on the I2C bus ).
*
*/
/* EVT5 */
#define I2C_EVENT_MASTER_MODE_SELECT ((uint32_t)0x00030001) /* BUSY, MSL and SB flag */
/********************************************************************************************************************
* @brief Address Acknowledge
*
* When start condition correctly released on the bus(check EVT5), the
* master use I2C_Send7bitAddress() function sends the address of the slave(s) with which it will communicate
* it also determines master as transmitter or Receiver. Then the master has to wait that a slave acknowledges
* his address. If an acknowledge is sent on the bus, one of the following events will be set:
*
*
*
* 1) In case of Master Receiver (7-bit addressing): the I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED
* event is set.
*
* 2) In case of Master Transmitter (7-bit addressing): the I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED
* is set
*
* 3) In case of 10-Bit addressing mode, the master (after generating the START
* and checking on EVT5) use I2C_SendData() function send the header of 10-bit addressing mode.
* Then master wait EVT9. EVT9 means that the 10-bit addressing header has been correctly sent
* on the bus. Then master should use the function I2C_Send7bitAddress() to send the second part
* of the 10-bit address (LSB) . Then master should wait for event 6.
*
*
*/
/* EVT6 */
#define I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ((uint32_t)0x00070082) /* BUSY, MSL, ADDR, TXE and TRA flags */
#define I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ((uint32_t)0x00030002) /* BUSY, MSL and ADDR flags */
/*EVT9 */
#define I2C_EVENT_MASTER_MODE_ADDRESS10 ((uint32_t)0x00030008) /* BUSY, MSL and ADD10 flags */
/********************************************************************************************************************
* @brief Communication events
*
* If START condition has generated and slave address
* been acknowledged. then the master has to check one of the following events for
* communication procedures:
*
* 1) Master Receiver mode: The master has to wait on the event EVT7 then use
* I2C_ReceiveData() function to read the data received from the slave .
*
* 2) Master Transmitter mode: The master use I2C_SendData() function to send data
* then to wait on event EVT8 or EVT8_2.
* These two events are similar:
* - EVT8 means that the data has been written in the data register and is
* being shifted out.
* - EVT8_2 means that the data has been physically shifted out and output
* on the bus.
* In most cases, using EVT8 is sufficient for the application.
* Using EVT8_2 will leads to a slower communication speed but will more reliable .
* EVT8_2 is also more suitable than EVT8 for testing on the last data transmission
*
*
* Note:
* In case the user software does not guarantee that this event EVT7 is managed before
* the current byte end of transfer, then user may check on I2C_EVENT_MASTER_BYTE_RECEIVED
* and I2C_FLAG_BTF flag at the same time .But in this case the communication may be slower.
*
*
*/
/* Master Receive mode */
/* EVT7 */
#define I2C_EVENT_MASTER_BYTE_RECEIVED ((uint32_t)0x00030040) /* BUSY, MSL and RXNE flags */
/* Master Transmitter mode*/
/* EVT8 */
#define I2C_EVENT_MASTER_BYTE_TRANSMITTING ((uint32_t)0x00070080) /* TRA, BUSY, MSL, TXE flags */
/* EVT8_2 */
#define I2C_EVENT_MASTER_BYTE_TRANSMITTED ((uint32_t)0x00070084) /* TRA, BUSY, MSL, TXE and BTF flags */
/******************I2C Slave Events (Events grouped in order of communication)******************/
/********************************************************************************************************************
* @brief Start Communicate events
*
* Wait on one of these events at the start of the communication. It means that
* the I2C peripheral detected a start condition of master device generate on the bus.
* If the acknowledge feature is enabled through function I2C_AcknowledgeConfig()),The peripheral generates an ACK condition on the bus.
*
*
*
* a) In normal case (only one address managed by the slave), when the address
* sent by the master matches the own address of the peripheral (configured by
* I2C_OwnAddress1 field) the I2C_EVENT_SLAVE_XXX_ADDRESS_MATCHED event is set
* (where XXX could be TRANSMITTER or RECEIVER).
*
* b) In case the address sent by the master matches the second address of the
* peripheral (configured by the function I2C_OwnAddress2Config() and enabled
* by the function I2C_DualAddressCmd()) the events I2C_EVENT_SLAVE_XXX_SECONDADDRESS_MATCHED
* (where XXX could be TRANSMITTER or RECEIVER) are set.
*
* c) In case the address sent by the master is General Call (address 0x00) and
* if the General Call is enabled for the peripheral (using function I2C_GeneralCallCmd())
* the following event is set I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED.
*
*/
/* EVT1 */
/* a) Case of One Single Address managed by the slave */
#define I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED ((uint32_t)0x00020002) /* BUSY and ADDR flags */
#define I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED ((uint32_t)0x00060082) /* TRA, BUSY, TXE and ADDR flags */
/* b) Case of Dual address managed by the slave */
#define I2C_EVENT_SLAVE_RECEIVER_SECONDADDRESS_MATCHED ((uint32_t)0x00820000) /* DUALF and BUSY flags */
#define I2C_EVENT_SLAVE_TRANSMITTER_SECONDADDRESS_MATCHED ((uint32_t)0x00860080) /* DUALF, TRA, BUSY and TXE flags */
/* c) Case of General Call enabled for the slave */
#define I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED ((uint32_t)0x00120000) /* GENCALL and BUSY flags */
/********************************************************************************************************************
* @brief Communication events
*
* Wait on one of these events when EVT1 has already been checked :
*
* - Slave Receiver mode:
* - EVT2--The device is expecting to receive a data byte .
* - EVT4--The device is expecting the end of the communication: master
* sends a stop condition and data transmission is stopped.
*
* - Slave Transmitter mode:
* - EVT3--When a byte has been transmitted by the slave and the Master is expecting
* the end of the byte transmission. The two events I2C_EVENT_SLAVE_BYTE_TRANSMITTED and
* I2C_EVENT_SLAVE_BYTE_TRANSMITTING are similar. If the user software doesn't guarantee
* the EVT3 is managed before the current byte end of transfer The second one can optionally
* be used.
* - EVT3_2--When the master sends a NACK to tell slave device that data transmission
* shall end . The slave device has to stop sending
* data bytes and wait a Stop condition from bus.
*
* Note:
* If the user software does not guarantee that the event 2 is
* managed before the current byte end of transfer, User may check on I2C_EVENT_SLAVE_BYTE_RECEIVED
* and I2C_FLAG_BTF flag at the same time .
* In this case the communication will be slower.
*
*/
/* Slave Receiver mode*/
/* EVT2 */
#define I2C_EVENT_SLAVE_BYTE_RECEIVED ((uint32_t)0x00020040) /* BUSY and RXNE flags */
/* EVT4 */
#define I2C_EVENT_SLAVE_STOP_DETECTED ((uint32_t)0x00000010) /* STOPF flag */
/* Slave Transmitter mode*/
/* EVT3 */
#define I2C_EVENT_SLAVE_BYTE_TRANSMITTED ((uint32_t)0x00060084) /* TRA, BUSY, TXE and BTF flags */
#define I2C_EVENT_SLAVE_BYTE_TRANSMITTING ((uint32_t)0x00060080) /* TRA, BUSY and TXE flags */
/*EVT3_2 */
#define I2C_EVENT_SLAVE_ACK_FAILURE ((uint32_t)0x00000400) /* AF flag */
/* ch32v00x_iwdg.h -----------------------------------------------------------*/
/* IWDG_WriteAccess */
#define IWDG_WriteAccess_Enable ((uint16_t)0x5555)
#define IWDG_WriteAccess_Disable ((uint16_t)0x0000)
/* IWDG_prescaler */
#define IWDG_Prescaler_4 ((uint8_t)0x00)
#define IWDG_Prescaler_8 ((uint8_t)0x01)
#define IWDG_Prescaler_16 ((uint8_t)0x02)
#define IWDG_Prescaler_32 ((uint8_t)0x03)
#define IWDG_Prescaler_64 ((uint8_t)0x04)
#define IWDG_Prescaler_128 ((uint8_t)0x05)
#define IWDG_Prescaler_256 ((uint8_t)0x06)
/* IWDG_Flag */
#define IWDG_FLAG_PVU ((uint16_t)0x0001)
#define IWDG_FLAG_RVU ((uint16_t)0x0002)
/* ch32h417_opa.h ------------------------------------------------------------*/
#ifndef __ASSEMBLER__
/* OPA member enumeration */
typedef enum
{
OPA1 = 0,
OPA2,
OPA3,
}OPA_Num_TypeDef;
/* OPA PSEL enumeration */
typedef enum
{
CHP0 = 0,
CHP1
} OPA_PSEL_TypeDef;
/* OPA NSEL enumeration */
typedef enum
{
CHN0 = 0,
CHN1,
CHN_PGA_8xIN,
CHN_PGA_16xIN,
CHN_PGA_32xIN,
CHN_PGA_64xIN,
CHN_OFF = 0x7
}OPA_NSEL_TypeDef;
/* OPA out channel enumeration */
typedef enum
{
OUT_IO_OUT0 = 0,
OUT_IO_OUT1,
OUT_TO_CMP /* only for OPA1 */
}OPA_Mode_TypeDef;
/* OPA_FB_enumeration */
typedef enum
{
FB_OFF = 0,
FB_ON
} OPA_FB_TypeDef;
/* OPA_HS_enumeration */
typedef enum
{
HS_OFF = 0,
HS_ON
} OPA_HS_TypeDef;
/* OPA_PFG_DIF_enumeration */
typedef enum
{
DIF_OFF = 0,
DIF_ON
} OPA_PGADIF_TypeDef;
/* OPA Init Structure definition */
typedef struct
{
OPA_PSEL_TypeDef PSEL; /* Specifies the positive channel of OPA */
OPA_NSEL_TypeDef NSEL; /* Specifies the negative channel of OPA */
OPA_Mode_TypeDef Mode; /* Specifies the mode of OPA */
OPA_FB_TypeDef FB; /* Specifies the internal feedback resistor of OPA */
OPA_PGADIF_TypeDef PGADIF; /* Specifies the internal PGADIF of OPA */
OPA_HS_TypeDef HS; /* specifies high speed mode enable of OPA */
}OPA_InitTypeDef;
/* CMP_out_channel_enumeration */
typedef enum
{
OUT_TO_IO = 0,
OUT_TIM1_BKIN,
OUT_TIM8_BKIN,
OUT_TIM1_CH4,
OUT_TIM2_CH4,
OUT_TIM3_CH4,
OUT_TIM4_CH4,
OUT_TIM5_CH4,
OUT_TIM8_CH4,
OUT_TIM9_CH4,
OUT_TIM10_CH4,
OUT_TIM11_CH4,
OUT_TIM12_CH4,
OUT_LPTIM1_CH1,
OUT_LPTIM2_CH1,
OUT_FLOAT
} CMP_Mode_TypeDef;
/* CMP_NSEL_enumeration */
typedef enum
{
CMP_CHN0 = 0,
CMP_CHN1,
CMP_DAC2,
CMP_VREF,
} CMP_NSEL_TypeDef;
/* CMP_PSEL_enumeration */
typedef enum
{
CMP_CHP_0 = 0,
CMP_CHP_1,
CMP_OPA1
} CMP_PSEL_TypeDef;
#define CMP_CHP1 CMP_CHP_0
#define CMP_CHP2 CMP_CHP_1
/* CMP_VREF_enumeration */
typedef enum
{
CMP_VREF_OFF = 0,
CMP_VREF_25PER_VDD,
CMP_VREF_50PERT_VDD,
CMP_VREF_75PERC_VDD
} CMP_VREF_TypeDef;
/* CMP_HYPSEL_enumeration */
typedef enum
{
CMP_HYPSEL_OFF = 0,
CMP_HYPSEL_10mV,
CMP_HYPSEL_20mV,
CMP_HYPSEL_30mV,
} CMP_HYPSEL_TypeDef;
/* CMP Init structure definition */
typedef struct
{
CMP_Mode_TypeDef Mode; /* Specifies the mode of CMP */
CMP_NSEL_TypeDef NSEL; /* Specifies the negative channel of CMP */
CMP_PSEL_TypeDef PSEL; /* Specifies the positive channel of CMP */
CMP_VREF_TypeDef VREF; /* Specifies the positive VREF of CMP */
CMP_HYPSEL_TypeDef HYPSEL; /* Specifies the HYEN of CMP */
} CMP_InitTypeDef;
/* CMP FILT_TimeBase division definition */
#define CMP_FILT_TimeBase_Div1 ((uint8_t)0x00)
#define CMP_FILT_TimeBase_Div2 ((uint8_t)0x01)
#define CMP_FILT_TimeBase_Div3 ((uint8_t)0x02)
#define CMP_FILT_TimeBase_Div4 ((uint8_t)0x03)
#endif
/* ch32h417_pwr.h ------------------------------------------------------------*/
/* PVD_detection_level */
#define PWR_PVDLevel_MODE0 ((uint32_t)0x00000000)
#define PWR_PVDLevel_MODE1 ((uint32_t)0x00000020)
#define PWR_PVDLevel_MODE2 ((uint32_t)0x00000040)
#define PWR_PVDLevel_MODE3 ((uint32_t)0x00000060)
#define PWR_PVDLevel_MODE4 ((uint32_t)0x00000080)
#define PWR_PVDLevel_MODE5 ((uint32_t)0x000000A0)
#define PWR_PVDLevel_MODE6 ((uint32_t)0x000000C0)
#define PWR_PVDLevel_MODE7 ((uint32_t)0x000000E0)
/* PWR_detection_level */
#define PWR_VIO18Level_MODE0 ((uint32_t)0x00000000)
#define PWR_VIO18Level_MODE1 ((uint32_t)0x00000400)
#define PWR_VIO18Level_MODE2 ((uint32_t)0x00000800)
#define PWR_VIO18Level_MODE3 ((uint32_t)0x00000C00)
#define PWR_VIO18Level_MODE4 ((uint32_t)0x00001000)
#define PWR_VIO18Level_MODE5 ((uint32_t)0x00001400)
/* Regulator_state_is_STOP_mode */
#define PWR_Regulator_ON ((uint32_t)0x00000000)
#define PWR_Regulator_LowPower ((uint32_t)0x00000001)
/* STOP_mode_entry */
#define PWR_STOPEntry_WFI ((uint8_t)0x01)
#define PWR_STOPEntry_WFE ((uint8_t)0x02)
/* PWR_Flag */
#define PWR_FLAG_PVDO ((uint32_t)0x00000001)
/* PWR_VIO18CFGMODE */
#define PWR_VIO18CFGMODE_HW ((uint32_t)0x00000000)
#define PWR_VIO18CFGMODE_SW ((uint32_t)0x00000200)
/* ch32h417_rcc.h ------------------------------------------------------------*/
/* HSE_configuration */
#define RCC_HSE_OFF ((uint32_t)0x00000000)
#define RCC_HSE_ON ((uint32_t)0x00010000)
#define RCC_HSE_Bypass ((uint32_t)0x00040000)
/* PLL_entry_clock_source */
#define RCC_PLLSource_HSI ((uint32_t)0x00000000)
#define RCC_PLLSource_HSE ((uint32_t)0x00000020)
#define RCC_PLLSource_USBHS ((uint32_t)0x00000080)
#define RCC_PLLSource_ETH ((uint32_t)0x000000A0)
#define RCC_PLLSource_USBSS ((uint32_t)0x000000C0)
#define RCC_PLLSource_SERDES ((uint32_t)0x000000E0)
/* PLL_multiplication_factor */
#define RCC_PLLMul_4 ((uint32_t)0x00000000)
#define RCC_PLLMul_6 ((uint32_t)0x00000001)
#define RCC_PLLMul_7 ((uint32_t)0x00000002)
#define RCC_PLLMul_8 ((uint32_t)0x00000003)
#define RCC_PLLMul_8_5 ((uint32_t)0x00000004)
#define RCC_PLLMul_9 ((uint32_t)0x00000005)
#define RCC_PLLMul_9_5 ((uint32_t)0x00000006)
#define RCC_PLLMul_10 ((uint32_t)0x00000007)
#define RCC_PLLMul_10_5 ((uint32_t)0x00000008)
#define RCC_PLLMul_11 ((uint32_t)0x00000009)
#define RCC_PLLMul_11_5 ((uint32_t)0x0000000A)
#define RCC_PLLMul_12 ((uint32_t)0x0000000B)
#define RCC_PLLMul_12_5 ((uint32_t)0x0000000C)
#define RCC_PLLMul_13 ((uint32_t)0x0000000D)
#define RCC_PLLMul_14 ((uint32_t)0x0000000E)
#define RCC_PLLMul_15 ((uint32_t)0x0000000F)
#define RCC_PLLMul_16 ((uint32_t)0x00000010)
#define RCC_PLLMul_17 ((uint32_t)0x00000011)
#define RCC_PLLMul_18 ((uint32_t)0x00000012)
#define RCC_PLLMul_19 ((uint32_t)0x00000013)
#define RCC_PLLMul_20 ((uint32_t)0x00000014)
#define RCC_PLLMul_22 ((uint32_t)0x00000015)
#define RCC_PLLMul_24 ((uint32_t)0x00000016)
#define RCC_PLLMul_26 ((uint32_t)0x00000017)
#define RCC_PLLMul_28 ((uint32_t)0x00000018)
#define RCC_PLLMul_30 ((uint32_t)0x00000019)
#define RCC_PLLMul_32 ((uint32_t)0x0000001A)
#define RCC_PLLMul_34 ((uint32_t)0x0000001B)
#define RCC_PLLMul_36 ((uint32_t)0x0000001C)
#define RCC_PLLMul_38 ((uint32_t)0x0000001D)
#define RCC_PLLMul_40 ((uint32_t)0x0000001E)
#define RCC_PLLMul_59 ((uint32_t)0x0000001F)
/* PLL_division_factor */
#define RCC_PLLDiv_1 ((uint32_t)0x00000000)
#define RCC_PLLDiv_2 ((uint32_t)0x00000001)
#define RCC_PLLDiv_3 ((uint32_t)0x00000002)
#define RCC_PLLDiv_4 ((uint32_t)0x00000003)
#define RCC_PLLDiv_5 ((uint32_t)0x00000004)
#define RCC_PLLDiv_6 ((uint32_t)0x00000005)
#define RCC_PLLDiv_7 ((uint32_t)0x00000006)
#define RCC_PLLDiv_8 ((uint32_t)0x00000007)
#define RCC_PLLDiv_9 ((uint32_t)0x00000008)
#define RCC_PLLDiv_10 ((uint32_t)0x00000009)
#define RCC_PLLDiv_11 ((uint32_t)0x0000000A)
#define RCC_PLLDiv_12 ((uint32_t)0x0000000B)
#define RCC_PLLDiv_13 ((uint32_t)0x0000000C)
#define RCC_PLLDiv_14 ((uint32_t)0x0000000D)
#define RCC_PLLDiv_15 ((uint32_t)0x0000000E)
#define RCC_PLLDiv_16 ((uint32_t)0x0000000F)
#define RCC_PLLDiv_17 ((uint32_t)0x00000010)
#define RCC_PLLDiv_18 ((uint32_t)0x00000011)
#define RCC_PLLDiv_19 ((uint32_t)0x00000012)
#define RCC_PLLDiv_20 ((uint32_t)0x00000013)
#define RCC_PLLDiv_21 ((uint32_t)0x00000014)
#define RCC_PLLDiv_22 ((uint32_t)0x00000015)
#define RCC_PLLDiv_23 ((uint32_t)0x00000016)
#define RCC_PLLDiv_24 ((uint32_t)0x00000017)
#define RCC_PLLDiv_25 ((uint32_t)0x00000018)
#define RCC_PLLDiv_26 ((uint32_t)0x00000019)
#define RCC_PLLDiv_27 ((uint32_t)0x0000001A)
#define RCC_PLLDiv_28 ((uint32_t)0x0000001B)
#define RCC_PLLDiv_29 ((uint32_t)0x0000001C)
#define RCC_PLLDiv_30 ((uint32_t)0x0000001D)
#define RCC_PLLDiv_31 ((uint32_t)0x0000001E)
#define RCC_PLLDiv_32 ((uint32_t)0x0000001F)
#define RCC_PLLDiv_33 ((uint32_t)0x00000020)
#define RCC_PLLDiv_34 ((uint32_t)0x00000021)
#define RCC_PLLDiv_35 ((uint32_t)0x00000022)
#define RCC_PLLDiv_36 ((uint32_t)0x00000023)
#define RCC_PLLDiv_37 ((uint32_t)0x00000024)
#define RCC_PLLDiv_38 ((uint32_t)0x00000025)
#define RCC_PLLDiv_39 ((uint32_t)0x00000026)
#define RCC_PLLDiv_40 ((uint32_t)0x00000027)
#define RCC_PLLDiv_41 ((uint32_t)0x00000028)
#define RCC_PLLDiv_42 ((uint32_t)0x00000029)
#define RCC_PLLDiv_43 ((uint32_t)0x0000002A)
#define RCC_PLLDiv_44 ((uint32_t)0x0000002B)
#define RCC_PLLDiv_45 ((uint32_t)0x0000002C)
#define RCC_PLLDiv_46 ((uint32_t)0x0000002D)
#define RCC_PLLDiv_47 ((uint32_t)0x0000002E)
#define RCC_PLLDiv_48 ((uint32_t)0x0000002F)
#define RCC_PLLDiv_49 ((uint32_t)0x00000030)
#define RCC_PLLDiv_50 ((uint32_t)0x00000031)
#define RCC_PLLDiv_51 ((uint32_t)0x00000032)
#define RCC_PLLDiv_52 ((uint32_t)0x00000033)
#define RCC_PLLDiv_53 ((uint32_t)0x00000034)
#define RCC_PLLDiv_54 ((uint32_t)0x00000035)
#define RCC_PLLDiv_55 ((uint32_t)0x00000036)
#define RCC_PLLDiv_56 ((uint32_t)0x00000037)
#define RCC_PLLDiv_57 ((uint32_t)0x00000038)
#define RCC_PLLDiv_58 ((uint32_t)0x00000039)
#define RCC_PLLDiv_59 ((uint32_t)0x0000003A)
#define RCC_PLLDiv_60 ((uint32_t)0x0000003B)
#define RCC_PLLDiv_61 ((uint32_t)0x0000003C)
#define RCC_PLLDiv_62 ((uint32_t)0x0000003D)
#define RCC_PLLDiv_63 ((uint32_t)0x0000003E)
#define RCC_PLLDiv_64 ((uint32_t)0x0000003F)
/* System_clock_source */
#define RCC_SYSCLKSource_HSI ((uint32_t)0x00000000)
#define RCC_SYSCLKSource_HSE ((uint32_t)0x00000001)
#define RCC_SYSCLKSource_PLLCLK ((uint32_t)0x00000002)
/* Core1_division_factor */
#define RCC_SYSCLK_Div1 ((uint32_t)0x00000000)
#define RCC_SYSCLK_Div2 ((uint32_t)0x00000008)
#define RCC_SYSCLK_Div4 ((uint32_t)0x00000009)
#define RCC_SYSCLK_Div8 ((uint32_t)0x0000000A)
#define RCC_SYSCLK_Div16 ((uint32_t)0x0000000B)
#define RCC_SYSCLK_Div64 ((uint32_t)0x0000000C)
#define RCC_SYSCLK_Div128 ((uint32_t)0x0000000D)
#define RCC_SYSCLK_Div256 ((uint32_t)0x0000000E)
#define RCC_SYSCLK_Div512 ((uint32_t)0x0000000F)
/* HCLK_division_factor */
#define RCC_SYSCLKFPRE_Div1 ((uint32_t)0x00000000)
#define RCC_SYSCLKFPRE_Div2 ((uint32_t)0x00010000)
#define RCC_SYSCLKFPRE_Div4 ((uint32_t)0x00020000)
/* TIM_Clock_division_factor */
#define TIM_Clock_Div2 ((uint32_t)0x00000005)
#define TIM_Clock_Div4 ((uint32_t)0x00000006)
#define TIM_Clock_Div8 ((uint32_t)0x00000007)
/* LPTIM_Clock_division_factor */
#define LPTIM_Clock_Div2 ((uint32_t)0x00000005)
#define LPTIM_Clock_Div4 ((uint32_t)0x00000006)
#define LPTIM_Clock_Div8 ((uint32_t)0x00000007)
/* RCC_Interrupt_source */
#define RCC_IT_LSIRDY ((uint8_t)0x01)
#define RCC_IT_LSERDY ((uint8_t)0x02)
#define RCC_IT_HSIRDY ((uint8_t)0x04)
#define RCC_IT_HSERDY ((uint8_t)0x08)
#define RCC_IT_PLLRDY ((uint8_t)0x10)
#define RCC_IT_ETHPLLRDY ((uint8_t)0x20)
#define RCC_IT_SERDESPLLRDY ((uint8_t)0x40)
#define RCC_IT_CSSF ((uint8_t)0x80)
/* ADC_Clock_source= USBHS/Divx */
#define RCC_USBHS_Div5 ((uint8_t)0x00)
#define RCC_USBHS_Div6 ((uint8_t)0x01)
#define RCC_USBHS_Div7 ((uint8_t)0x02)
#define RCC_USBHS_Div8 ((uint8_t)0x03)
#define RCC_USBHS_Div9 ((uint8_t)0x04)
#define RCC_USBHS_Div10 ((uint8_t)0x05)
#define RCC_USBHS_Div11 ((uint8_t)0x06)
#define RCC_USBHS_Div12 ((uint8_t)0x07)
#define RCC_USBHS_Div13 ((uint8_t)0x08)
#define RCC_USBHS_Div14 ((uint8_t)0x09)
#define RCC_USBHS_Div15 ((uint8_t)0x0A)
#define RCC_USBHS_Div16 ((uint8_t)0x0B)
#define RCC_USBHS_Div17 ((uint8_t)0x0C)
#define RCC_USBHS_Div18 ((uint8_t)0x0D)
#define RCC_USBHS_Div19 ((uint8_t)0x0E)
#define RCC_USBHS_Div20 ((uint8_t)0x0F)
#define RCC_USBHS_Div21 ((uint8_t)0x10)
#define RCC_USBHS_Div22 ((uint8_t)0x11)
#define RCC_USBHS_Div23 ((uint8_t)0x12)
#define RCC_USBHS_Div24 ((uint8_t)0x13)
#define RCC_USBHS_Div25 ((uint8_t)0x14)
#define RCC_USBHS_Div26 ((uint8_t)0x15)
#define RCC_USBHS_Div27 ((uint8_t)0x16)
#define RCC_USBHS_Div28 ((uint8_t)0x17)
#define RCC_USBHS_Div29 ((uint8_t)0x18)
#define RCC_USBHS_Div30 ((uint8_t)0x19)
#define RCC_USBHS_Div31 ((uint8_t)0x1A)
#define RCC_USBHS_Div32 ((uint8_t)0x1B)
#define RCC_USBHS_Div33 ((uint8_t)0x1C)
#define RCC_USBHS_Div34 ((uint8_t)0x1D)
#define RCC_USBHS_Div35 ((uint8_t)0x1E)
#define RCC_USBHS_Div36 ((uint8_t)0x1F)
/* ADC_Clock_source = HCLK/(RCC_PPRE2*RCC_ADCPRE) */
#define RCC_PPRE2_DIV0 ((uint8_t)0x00)
#define RCC_PPRE2_DIV2 ((uint8_t)0x04)
#define RCC_PPRE2_DIV4 ((uint8_t)0x05)
#define RCC_PPRE2_DIV8 ((uint8_t)0x06)
#define RCC_PPRE2_DIV16 ((uint8_t)0x07)
#define RCC_HCLK_ADCPRE_DIV2 ((uint8_t)0x00)
#define RCC_HCLK_ADCPRE_DIV4 ((uint8_t)0x01)
#define RCC_HCLK_ADCPRE_DIV6 ((uint8_t)0x02)
#define RCC_HCLK_ADCPRE_DIV8 ((uint8_t)0x03)
/* LSE_configuration */
#define RCC_LSE_OFF ((uint8_t)0x00)
#define RCC_LSE_ON ((uint8_t)0x01)
#define RCC_LSE_Bypass ((uint8_t)0x04)
/* RTC_clock_source */
#define RCC_RTCCLKSource_LSE ((uint32_t)0x00000040)
#define RCC_RTCCLKSource_LSI ((uint32_t)0x00000080)
#define RCC_RTCCLKSource_HSE_Div512 ((uint32_t)0x000000C0)
/* HB_peripheral */
#define RCC_HBPeriph_DMA1 ((uint32_t)0x00000001)
#define RCC_HBPeriph_DMA2 ((uint32_t)0x00000002)
#define RCC_HBPeriph_CRC ((uint32_t)0x00000040)
#define RCC_HBPeriph_FMC ((uint32_t)0x00000100)
#define RCC_HBPeriph_RNG ((uint32_t)0x00000200)
#define RCC_HBPeriph_SDMMC ((uint32_t)0x00000400)
#define RCC_HBPeriph_USBHS ((uint32_t)0x00000800)
#define RCC_HBPeriph_USBSS ((uint32_t)0x00001000)
#define RCC_HBPeriph_DVP ((uint32_t)0x00002000)
#define RCC_HBPeriph_ETH ((uint32_t)0x00004000)
#define RCC_HBPeriph_OTG_FS ((uint32_t)0x00020000)
#define RCC_HBPeriph_UHSIF ((uint32_t)0x00040000)
#define RCC_HBPeriph_USBPD ((uint32_t)0x00080000)
#define RCC_HBPeriph_SERDES ((uint32_t)0x00100000)
#define RCC_HBPeriph_PIOC ((uint32_t)0x00400000)
/* HB2_peripheral */
#define RCC_HB2Periph_AFIO ((uint32_t)0x00000001)
#define RCC_HB2Periph_HSADC ((uint32_t)0x00000002)
#define RCC_HB2Periph_GPIOA ((uint32_t)0x00000004)
#define RCC_HB2Periph_GPIOB ((uint32_t)0x00000008)
#define RCC_HB2Periph_GPIOC ((uint32_t)0x00000010)
#define RCC_HB2Periph_GPIOD ((uint32_t)0x00000020)
#define RCC_HB2Periph_GPIOE ((uint32_t)0x00000040)
#define RCC_HB2Periph_GPIOF ((uint32_t)0x00000080)
#define RCC_HB2Periph_ADC1 ((uint32_t)0x00000200)
#define RCC_HB2Periph_ADC2 ((uint32_t)0x00000400)
#define RCC_HB2Periph_TIM1 ((uint32_t)0x00000800)
#define RCC_HB2Periph_SPI1 ((uint32_t)0x00001000)
#define RCC_HB2Periph_TIM8 ((uint32_t)0x00002000)
#define RCC_HB2Periph_USART1 ((uint32_t)0x00004000)
#define RCC_HB2Periph_I2C4 ((uint32_t)0x00008000)
#define RCC_HB2Periph_SAI ((uint32_t)0x00010000)
#define RCC_HB2Periph_SDIO ((uint32_t)0x00040000)
#define RCC_HB2Periph_TIM9 ((uint32_t)0x00080000)
#define RCC_HB2Periph_TIM10 ((uint32_t)0x00100000)
#define RCC_HB2Periph_TIM11 ((uint32_t)0x00200000)
#define RCC_HB2Periph_TIM12 ((uint32_t)0x00400000)
#define RCC_HB2Periph_OPCM ((uint32_t)0x00800000)
#define RCC_HB2Periph_DFSDM ((uint32_t)0x02000000)
#define RCC_HB2Periph_ECDC ((uint32_t)0x04000000)
#define RCC_HB2Periph_GPHA ((uint32_t)0x08000000)
#define RCC_HB2Periph_LTDC ((uint32_t)0x40000000)
#define RCC_HB2Periph_I3C ((uint32_t)0x80000000)
/* HB1_peripheral */
#define RCC_HB1Periph_TIM2 ((uint32_t)0x00000001)
#define RCC_HB1Periph_TIM3 ((uint32_t)0x00000002)
#define RCC_HB1Periph_TIM4 ((uint32_t)0x00000004)
#define RCC_HB1Periph_TIM5 ((uint32_t)0x00000008)
#define RCC_HB1Periph_TIM6 ((uint32_t)0x00000010)
#define RCC_HB1Periph_TIM7 ((uint32_t)0x00000020)
#define RCC_HB1Periph_USART6 ((uint32_t)0x00000040)
#define RCC_HB1Periph_USART7 ((uint32_t)0x00000080)
#define RCC_HB1Periph_USART8 ((uint32_t)0x00000100)
#define RCC_HB1Periph_LPTIM1 ((uint32_t)0x00000200)
#define RCC_HB1Periph_LPTIM2 ((uint32_t)0x00000400)
#define RCC_HB1Periph_WWDG ((uint32_t)0x00000800)
#define RCC_HB1Periph_QSPI1 ((uint32_t)0x00001000)
#define RCC_HB1Periph_QSPI2 ((uint32_t)0x00002000)
#define RCC_HB1Periph_SPI2 ((uint32_t)0x00004000)
#define RCC_HB1Periph_SPI3 ((uint32_t)0x00008000)
#define RCC_HB1Periph_SPI4 ((uint32_t)0x00010000)
#define RCC_HB1Periph_USART2 ((uint32_t)0x00020000)
#define RCC_HB1Periph_USART3 ((uint32_t)0x00040000)
#define RCC_HB1Periph_USART4 ((uint32_t)0x00080000)
#define RCC_HB1Periph_USART5 ((uint32_t)0x00100000)
#define RCC_HB1Periph_I2C1 ((uint32_t)0x00200000)
#define RCC_HB1Periph_I2C2 ((uint32_t)0x00400000)
#define RCC_HB1Periph_CAN3 ((uint32_t)0x01000000)
#define RCC_HB1Periph_CAN1 ((uint32_t)0x02000000)
#define RCC_HB1Periph_CAN2 ((uint32_t)0x04000000)
#define RCC_HB1Periph_BKP ((uint32_t)0x08000000)
#define RCC_HB1Periph_PWR ((uint32_t)0x10000000)
#define RCC_HB1Periph_DAC ((uint32_t)0x20000000)
#define RCC_HB1Periph_I2C3 ((uint32_t)0x40000000)
#define RCC_HB1Periph_SWPMI ((uint32_t)0x80000000)
/* CSSON */
#define RCC_CSSON_DISABLE (uint8_t)0x00
#define RCC_CSSON_ENABLE (uint8_t)0x01
/* CSSHSEDIS */
#define RCC_CSSHSEDIS_DISABLE (uint8_t)0x00
#define RCC_CSSHSEDIS_ENABLE (uint8_t)0x01
/* Clock_source_to_output_on_MCO_pin */
#define RCC_MCO_NoClock ((uint8_t)0x00)
#define RCC_MCO_SYSCLK ((uint8_t)0x04)
#define RCC_MCO_HSI ((uint8_t)0x05)
#define RCC_MCO_HSE ((uint8_t)0x06)
#define RCC_MCO_PLLCLK_Div2 ((uint8_t)0x07)
#define RCC_MCO_UTMI ((uint8_t)0x08)
#define RCC_MCO_USBSSPLL_Div2 ((uint8_t)0x09)
#define RCC_MCO_ETHPLL_Div8 ((uint8_t)0x0A)
#define RCC_MCO_SERDESPLL_Div16 ((uint8_t)0x0B)
/* RCC_Flag */
#define RCC_FLAG_HSIRDY ((uint8_t)0x21)
#define RCC_FLAG_HSERDY ((uint8_t)0x31)
#define RCC_FLAG_USBHSPLLRDY ((uint8_t)0x35)
#define RCC_FLAG_USBSSPLLRDY ((uint8_t)0x37)
#define RCC_FLAG_PLLRDY ((uint8_t)0x39)
#define RCC_FLAG_ETHPLLRDY ((uint8_t)0x3B)
#define RCC_FLAG_SERDESPLLRDY ((uint8_t)0x3D)
#define RCC_FLAG_LSERDY ((uint8_t)0x41)
#define RCC_FLAG_LSIRDY ((uint8_t)0x61)
#define RCC_FLAG_PINRST ((uint8_t)0x7A)
#define RCC_FLAG_PORRST ((uint8_t)0x7B)
#define RCC_FLAG_SFTRST ((uint8_t)0x7C)
#define RCC_FLAG_IWDGRST ((uint8_t)0x7D)
#define RCC_FLAG_WWDGRST ((uint8_t)0x7E)
#define RCC_FLAG_LKUPRSTF ((uint8_t)0x7F)
/*ETH 125M clock source*/
#define RCC_ETH125MSource_PLLCLK ((uint8_t)0x00)
#define RCC_ETH125MSource_USBSS ((uint8_t)0x01)
#define RCC_ETH125MSource_ETH_Div4 ((uint8_t)0x02)
#define RCC_ETH125MSource_SERDES_Div8 ((uint8_t)0x03)
/*HSADC clock source*/
#define RCC_HSADCSource_PLLCLK ((uint8_t)0x00)
#define RCC_HSADCSource_SYSCLK ((uint8_t)0x01)
#define RCC_HSADCSource_USBHS ((uint8_t)0x02)
#define RCC_HSADCSource_ETH ((uint8_t)0x03)
/* I2S2_clock_source */
#define RCC_I2S2CLKSource_SYSCLK ((uint8_t)0x00)
#define RCC_I2S2CLKSource_PLLCLK ((uint8_t)0x01)
/* I2S3_clock_source */
#define RCC_I2S3CLKSource_SYSCLK ((uint8_t)0x00)
#define RCC_I2S3CLKSource_PLLCLK ((uint8_t)0x01)
/* RNG_clock_source */
#define RCC_RNGCLKSource_SYSCLK ((uint8_t)0x00)
#define RCC_RNGCLKSource_PLLCLK ((uint8_t)0x01)
/* USBFS_clock_source */
#define RCC_USBFSCLKSource_PLL ((uint8_t)0x00)
#define RCC_USBFSCLKSource_USBHSPLL ((uint8_t)0x01)
/* USBFS_division_factor */
#define RCC_USBFS_Div1 ((uint8_t)0x00)
#define RCC_USBFS_Div2 ((uint8_t)0x01)
#define RCC_USBFS_Div3 ((uint8_t)0x02)
#define RCC_USBFS_Div4 ((uint8_t)0x03)
#define RCC_USBFS_Div5 ((uint8_t)0x04)
#define RCC_USBFS_Div6 ((uint8_t)0x05)
#define RCC_USBFS_Div8 ((uint8_t)0x06)
#define RCC_USBFS_Div10 ((uint8_t)0x07)
#define RCC_USBFS_1Div5 ((uint8_t)0x08)
#define RCC_USBFS_2Div5 ((uint8_t)0x09)
#define RCC_USBFS_3Div5 ((uint8_t)0x0A)
#define RCC_USBFS_4Div5 ((uint8_t)0x0B)
#define RCC_USBFS_5Div5 ((uint8_t)0x0C)
#define RCC_USBFS_6Div5 ((uint8_t)0x0D)
#define RCC_USBFS_7Div5 ((uint8_t)0x0E)
#define RCC_USBFS_9Div5 ((uint8_t)0x0F)
/* LTDC_clock_source */
#define RCC_LTDCClockSource_PLL ((uint8_t)0x00)
#define RCC_LTDCClockSource_SERDESPLL ((uint8_t)0x01)
#define RCC_LTDCClockSource_ETHPLL ((uint8_t)0x02)
#define RCC_LTDCClockSource_USBHSPLL ((uint8_t)0x03)
/* LTDC_division_factor */
#define RCC_LTDCClockSource_Div1 ((uint8_t)0x00)
#define RCC_LTDCClockSource_Div2 ((uint8_t)0x01)
#define RCC_LTDCClockSource_Div3 ((uint8_t)0x02)
#define RCC_LTDCClockSource_Div4 ((uint8_t)0x03)
#define RCC_LTDCClockSource_Div5 ((uint8_t)0x04)
#define RCC_LTDCClockSource_Div6 ((uint8_t)0x05)
#define RCC_LTDCClockSource_Div7 ((uint8_t)0x06)
#define RCC_LTDCClockSource_Div8 ((uint8_t)0x07)
#define RCC_LTDCClockSource_Div9 ((uint8_t)0x08)
#define RCC_LTDCClockSource_Div10 ((uint8_t)0x09)
#define RCC_LTDCClockSource_Div11 ((uint8_t)0x0A)
#define RCC_LTDCClockSource_Div12 ((uint8_t)0x0B)
#define RCC_LTDCClockSource_Div13 ((uint8_t)0x0C)
#define RCC_LTDCClockSource_Div14 ((uint8_t)0x0D)
#define RCC_LTDCClockSource_Div15 ((uint8_t)0x0E)
#define RCC_LTDCClockSource_Div16 ((uint8_t)0x0F)
#define RCC_LTDCClockSource_Div17 ((uint8_t)0x10)
#define RCC_LTDCClockSource_Div18 ((uint8_t)0x11)
#define RCC_LTDCClockSource_Div19 ((uint8_t)0x12)
#define RCC_LTDCClockSource_Div20 ((uint8_t)0x13)
#define RCC_LTDCClockSource_Div21 ((uint8_t)0x14)
#define RCC_LTDCClockSource_Div22 ((uint8_t)0x15)
#define RCC_LTDCClockSource_Div23 ((uint8_t)0x16)
#define RCC_LTDCClockSource_Div24 ((uint8_t)0x17)
#define RCC_LTDCClockSource_Div25 ((uint8_t)0x18)
#define RCC_LTDCClockSource_Div26 ((uint8_t)0x19)
#define RCC_LTDCClockSource_Div27 ((uint8_t)0x1A)
#define RCC_LTDCClockSource_Div28 ((uint8_t)0x1B)
#define RCC_LTDCClockSource_Div29 ((uint8_t)0x1C)
#define RCC_LTDCClockSource_Div30 ((uint8_t)0x1D)
#define RCC_LTDCClockSource_Div31 ((uint8_t)0x1E)
#define RCC_LTDCClockSource_Div32 ((uint8_t)0x1F)
#define RCC_LTDCClockSource_Div33 ((uint8_t)0x20)
#define RCC_LTDCClockSource_Div34 ((uint8_t)0x21)
#define RCC_LTDCClockSource_Div35 ((uint8_t)0x22)
#define RCC_LTDCClockSource_Div36 ((uint8_t)0x23)
#define RCC_LTDCClockSource_Div37 ((uint8_t)0x24)
#define RCC_LTDCClockSource_Div38 ((uint8_t)0x25)
#define RCC_LTDCClockSource_Div39 ((uint8_t)0x26)
#define RCC_LTDCClockSource_Div40 ((uint8_t)0x27)
#define RCC_LTDCClockSource_Div41 ((uint8_t)0x28)
#define RCC_LTDCClockSource_Div42 ((uint8_t)0x29)
#define RCC_LTDCClockSource_Div43 ((uint8_t)0x2A)
#define RCC_LTDCClockSource_Div44 ((uint8_t)0x2B)
#define RCC_LTDCClockSource_Div45 ((uint8_t)0x2C)
#define RCC_LTDCClockSource_Div46 ((uint8_t)0x2D)
#define RCC_LTDCClockSource_Div47 ((uint8_t)0x2E)
#define RCC_LTDCClockSource_Div48 ((uint8_t)0x2F)
#define RCC_LTDCClockSource_Div49 ((uint8_t)0x30)
#define RCC_LTDCClockSource_Div50 ((uint8_t)0x31)
#define RCC_LTDCClockSource_Div51 ((uint8_t)0x32)
#define RCC_LTDCClockSource_Div52 ((uint8_t)0x33)
#define RCC_LTDCClockSource_Div53 ((uint8_t)0x34)
#define RCC_LTDCClockSource_Div54 ((uint8_t)0x35)
#define RCC_LTDCClockSource_Div55 ((uint8_t)0x36)
#define RCC_LTDCClockSource_Div56 ((uint8_t)0x37)
#define RCC_LTDCClockSource_Div57 ((uint8_t)0x38)
#define RCC_LTDCClockSource_Div58 ((uint8_t)0x39)
#define RCC_LTDCClockSource_Div59 ((uint8_t)0x3A)
#define RCC_LTDCClockSource_Div60 ((uint8_t)0x3B)
#define RCC_LTDCClockSource_Div61 ((uint8_t)0x3C)
#define RCC_LTDCClockSource_Div62 ((uint8_t)0x3D)
#define RCC_LTDCClockSource_Div63 ((uint8_t)0x3E)
#define RCC_LTDCClockSource_Div64 ((uint8_t)0x3F)
/* UHSIF_clock_source */
#define RCC_UHSIFClockSource_SYSCLK ((uint8_t)0x00)
#define RCC_UHSIFClockSource_PLL ((uint8_t)0x01)
#define RCC_UHSIFClockSource_USBHSPLL ((uint8_t)0x02)
#define RCC_UHSIFClockSource_ETHPLL ((uint8_t)0x03)
/* UHSIF_division_factor */
#define RCC_UHSIFClockSource_Div1 ((uint8_t)0x00)
#define RCC_UHSIFClockSource_Div2 ((uint8_t)0x01)
#define RCC_UHSIFClockSource_Div3 ((uint8_t)0x02)
#define RCC_UHSIFClockSource_Div4 ((uint8_t)0x03)
#define RCC_UHSIFClockSource_Div5 ((uint8_t)0x04)
#define RCC_UHSIFClockSource_Div6 ((uint8_t)0x05)
#define RCC_UHSIFClockSource_Div7 ((uint8_t)0x06)
#define RCC_UHSIFClockSource_Div8 ((uint8_t)0x07)
#define RCC_UHSIFClockSource_Div9 ((uint8_t)0x08)
#define RCC_UHSIFClockSource_Div10 ((uint8_t)0x09)
#define RCC_UHSIFClockSource_Div11 ((uint8_t)0x0A)
#define RCC_UHSIFClockSource_Div12 ((uint8_t)0x0B)
#define RCC_UHSIFClockSource_Div13 ((uint8_t)0x0C)
#define RCC_UHSIFClockSource_Div14 ((uint8_t)0x0D)
#define RCC_UHSIFClockSource_Div15 ((uint8_t)0x0E)
#define RCC_UHSIFClockSource_Div16 ((uint8_t)0x0F)
#define RCC_UHSIFClockSource_Div17 ((uint8_t)0x10)
#define RCC_UHSIFClockSource_Div18 ((uint8_t)0x11)
#define RCC_UHSIFClockSource_Div19 ((uint8_t)0x12)
#define RCC_UHSIFClockSource_Div20 ((uint8_t)0x13)
#define RCC_UHSIFClockSource_Div21 ((uint8_t)0x14)
#define RCC_UHSIFClockSource_Div22 ((uint8_t)0x15)
#define RCC_UHSIFClockSource_Div23 ((uint8_t)0x16)
#define RCC_UHSIFClockSource_Div24 ((uint8_t)0x17)
#define RCC_UHSIFClockSource_Div25 ((uint8_t)0x18)
#define RCC_UHSIFClockSource_Div26 ((uint8_t)0x19)
#define RCC_UHSIFClockSource_Div27 ((uint8_t)0x1A)
#define RCC_UHSIFClockSource_Div28 ((uint8_t)0x1B)
#define RCC_UHSIFClockSource_Div29 ((uint8_t)0x1C)
#define RCC_UHSIFClockSource_Div30 ((uint8_t)0x1D)
#define RCC_UHSIFClockSource_Div31 ((uint8_t)0x1E)
#define RCC_UHSIFClockSource_Div32 ((uint8_t)0x1F)
#define RCC_UHSIFClockSource_Div33 ((uint8_t)0x20)
#define RCC_UHSIFClockSource_Div34 ((uint8_t)0x21)
#define RCC_UHSIFClockSource_Div35 ((uint8_t)0x22)
#define RCC_UHSIFClockSource_Div36 ((uint8_t)0x23)
#define RCC_UHSIFClockSource_Div37 ((uint8_t)0x24)
#define RCC_UHSIFClockSource_Div38 ((uint8_t)0x25)
#define RCC_UHSIFClockSource_Div39 ((uint8_t)0x26)
#define RCC_UHSIFClockSource_Div40 ((uint8_t)0x27)
#define RCC_UHSIFClockSource_Div41 ((uint8_t)0x28)
#define RCC_UHSIFClockSource_Div42 ((uint8_t)0x29)
#define RCC_UHSIFClockSource_Div43 ((uint8_t)0x2A)
#define RCC_UHSIFClockSource_Div44 ((uint8_t)0x2B)
#define RCC_UHSIFClockSource_Div45 ((uint8_t)0x2C)
#define RCC_UHSIFClockSource_Div46 ((uint8_t)0x2D)
#define RCC_UHSIFClockSource_Div47 ((uint8_t)0x2E)
#define RCC_UHSIFClockSource_Div48 ((uint8_t)0x2F)
#define RCC_UHSIFClockSource_Div49 ((uint8_t)0x30)
#define RCC_UHSIFClockSource_Div50 ((uint8_t)0x31)
#define RCC_UHSIFClockSource_Div51 ((uint8_t)0x32)
#define RCC_UHSIFClockSource_Div52 ((uint8_t)0x33)
#define RCC_UHSIFClockSource_Div53 ((uint8_t)0x34)
#define RCC_UHSIFClockSource_Div54 ((uint8_t)0x35)
#define RCC_UHSIFClockSource_Div55 ((uint8_t)0x36)
#define RCC_UHSIFClockSource_Div56 ((uint8_t)0x37)
#define RCC_UHSIFClockSource_Div57 ((uint8_t)0x38)
#define RCC_UHSIFClockSource_Div58 ((uint8_t)0x39)
#define RCC_UHSIFClockSource_Div59 ((uint8_t)0x3A)
#define RCC_UHSIFClockSource_Div60 ((uint8_t)0x3B)
#define RCC_UHSIFClockSource_Div61 ((uint8_t)0x3C)
#define RCC_UHSIFClockSource_Div62 ((uint8_t)0x3D)
#define RCC_UHSIFClockSource_Div63 ((uint8_t)0x3E)
#define RCC_UHSIFClockSource_Div64 ((uint8_t)0x3F)
/* USBHSPLL_clock_source */
#define RCC_USBHSPLLSource_HSE ((uint8_t)0x00)
#define RCC_USBHSPLLSource_HSI ((uint8_t)0x01)
#define RCC_USBHSPLLSource_20METH ((uint8_t)0x02)
#define RCC_USBHSPLLSource_PLL_CLK_DIV ((uint8_t)0x03)
/* USBHS PLL Refer clock */
#define RCC_USBHSPLLRefer_25M ((uint8_t)0x00)
#define RCC_USBHSPLLRefer_20M ((uint8_t)0x01)
#define RCC_USBHSPLLRefer_24M ((uint8_t)0x02)
#define RCC_USBHSPLLRefer_32M ((uint8_t)0x03)
/* USBSS PLL Refer clock */
#define RCC_USBSSPLLRefer_20M ((uint8_t)0x00)
#define RCC_USBSSPLLRefer_24M ((uint8_t)0x10)
#define RCC_USBSSPLLRefer_25M ((uint8_t)0x20)
#define RCC_USBSSPLLRefer_30M ((uint8_t)0x30)
#define RCC_USBSSPLLRefer_32M ((uint8_t)0x40)
#define RCC_USBSSPLLRefer_40M ((uint8_t)0x50)
#define RCC_USBSSPLLRefer_60M ((uint8_t)0x60)
#define RCC_USBSSPLLRefer_80M ((uint8_t)0x70)
/* USBHS PLL Source clock Division*/
#define RCC_USBHSPLL_IN_Div1 ((uint32_t)0x0000)
#define RCC_USBHSPLL_IN_Div2 ((uint32_t)0x0100)
#define RCC_USBHSPLL_IN_Div3 ((uint32_t)0x0200)
#define RCC_USBHSPLL_IN_Div4 ((uint32_t)0x0300)
#define RCC_USBHSPLL_IN_Div5 ((uint32_t)0x0400)
#define RCC_USBHSPLL_IN_Div6 ((uint32_t)0x0500)
#define RCC_USBHSPLL_IN_Div7 ((uint32_t)0x0600)
#define RCC_USBHSPLL_IN_Div8 ((uint32_t)0x0700)
#define RCC_USBHSPLL_IN_Div9 ((uint32_t)0x0800)
#define RCC_USBHSPLL_IN_Div10 ((uint32_t)0x0900)
#define RCC_USBHSPLL_IN_Div11 ((uint32_t)0x0A00)
#define RCC_USBHSPLL_IN_Div12 ((uint32_t)0x0B00)
#define RCC_USBHSPLL_IN_Div13 ((uint32_t)0x0C00)
#define RCC_USBHSPLL_IN_Div14 ((uint32_t)0x0D00)
#define RCC_USBHSPLL_IN_Div15 ((uint32_t)0x0E00)
#define RCC_USBHSPLL_IN_Div16 ((uint32_t)0x0F00)
#define RCC_USBHSPLL_IN_Div17 ((uint32_t)0x1000)
#define RCC_USBHSPLL_IN_Div18 ((uint32_t)0x1100)
#define RCC_USBHSPLL_IN_Div19 ((uint32_t)0x1200)
#define RCC_USBHSPLL_IN_Div20 ((uint32_t)0x1300)
#define RCC_USBHSPLL_IN_Div21 ((uint32_t)0x1400)
#define RCC_USBHSPLL_IN_Div22 ((uint32_t)0x1500)
#define RCC_USBHSPLL_IN_Div23 ((uint32_t)0x1600)
#define RCC_USBHSPLL_IN_Div24 ((uint32_t)0x1700)
#define RCC_USBHSPLL_IN_Div25 ((uint32_t)0x1800)
#define RCC_USBHSPLL_IN_Div26 ((uint32_t)0x1900)
#define RCC_USBHSPLL_IN_Div27 ((uint32_t)0x1A00)
#define RCC_USBHSPLL_IN_Div28 ((uint32_t)0x1B00)
#define RCC_USBHSPLL_IN_Div29 ((uint32_t)0x1C00)
#define RCC_USBHSPLL_IN_Div30 ((uint32_t)0x1D00)
#define RCC_USBHSPLL_IN_Div31 ((uint32_t)0x1E00)
#define RCC_USBHSPLL_IN_Div32 ((uint32_t)0x1F00)
/* SERDES PLL clock Mul*/
#define RCC_SERDESPLLMul_25 ((uint32_t)0x0000)
#define RCC_SERDESPLLMul_28 ((uint32_t)0x0001)
#define RCC_SERDESPLLMul_30 ((uint32_t)0x0002)
#define RCC_SERDESPLLMul_32 ((uint32_t)0x0003)
#define RCC_SERDESPLLMul_35 ((uint32_t)0x0004)
#define RCC_SERDESPLLMul_38 ((uint32_t)0x0005)
#define RCC_SERDESPLLMul_40 ((uint32_t)0x0006)
#define RCC_SERDESPLLMul_45 ((uint32_t)0x0007)
#define RCC_SERDESPLLMul_50 ((uint32_t)0x0008)
#define RCC_SERDESPLLMul_56 ((uint32_t)0x0009)
#define RCC_SERDESPLLMul_60 ((uint32_t)0x000A)
#define RCC_SERDESPLLMul_64 ((uint32_t)0x000B)
#define RCC_SERDESPLLMul_70 ((uint32_t)0x000C)
#define RCC_SERDESPLLMul_76 ((uint32_t)0x000D)
#define RCC_SERDESPLLMul_80 ((uint32_t)0x000E)
#define RCC_SERDESPLLMul_90 ((uint32_t)0x000F)
/* ADC_clock_H_Level_Duty_Cycle */
#define RCC_ADC_H_Level_Mode0 ((uint32_t)0x00000000)
#define RCC_ADC_H_Level_Mode1 ((uint32_t)0x40000000)
/* ADC_clock_source */
#define RCC_ADCCLKSource_HCLK ((uint8_t)0x00)
#define RCC_ADCCLKSource_USBHSPLL ((uint8_t)0x01)
/* SYSPLL_clock_source */
#define RCC_SYSPLLClockSource_PLL ((uint8_t)0x00)
#define RCC_SYSPLLClockSource_USBHSPLL ((uint8_t)0x04)
#define RCC_SYSPLLClockSource_ETHPLL ((uint8_t)0x05)
#define RCC_SYSPLLClockSource_SERDESPLL ((uint8_t)0x06)
#define RCC_SYSPLLClockSource_USBSSPLL ((uint8_t)0x07)
#define RCC_RTCOutputSource_CalibClock ((uint16_t)0x0008)
#define RCC_RTCOutputSource_Alarm ((uint16_t)0x0010)
#define RCC_RTCOutputSource_Second ((uint16_t)0x0030)
#define RCC_RTCOutputSource_None ((uint16_t)0x0000)
/* ch32v00x_rng.h ------------------------------------------------------------*/
/* RNG_flags_definition*/
#define RNG_FLAG_DRDY ((uint8_t)0x0001) /* Data ready */
#define RNG_FLAG_CECS ((uint8_t)0x0002) /* Clock error current status */
#define RNG_FLAG_SECS ((uint8_t)0x0004) /* Seed error current status */
/* RNG_interrupts_definition */
#define RNG_IT_CEI ((uint8_t)0x20) /* Clock error interrupt */
#define RNG_IT_SEI ((uint8_t)0x40) /* Seed error interrupt */
/* ch32h417_rtc.h ------------------------------------------------------------*/
/* RTC_interrupts_define */
#define RTC_IT_OW ((uint16_t)0x0004) /* Overflow interrupt */
#define RTC_IT_ALR ((uint16_t)0x0002) /* Alarm interrupt */
#define RTC_IT_SEC ((uint16_t)0x0001) /* Second interrupt */
/* RTC_interrupts_flags */
#define RTC_FLAG_RTOFF ((uint16_t)0x0020) /* RTC Operation OFF flag */
#define RTC_FLAG_RSF ((uint16_t)0x0008) /* Registers Synchronized flag */
#define RTC_FLAG_OW ((uint16_t)0x0004) /* Overflow flag */
#define RTC_FLAG_ALR ((uint16_t)0x0002) /* Alarm flag */
#define RTC_FLAG_SEC ((uint16_t)0x0001) /* Second flag */
/* ch32h417_sdio.h -----------------------------------------------------------*/
/* SDIO_Clock_Edge */
#define SDIO_ClockEdge_Rising ((uint32_t)0x00000000)
#define SDIO_ClockEdge_Falling ((uint32_t)0x00002000)
/* SDIO_Clock_Bypass */
#define SDIO_ClockBypass_Disable ((uint32_t)0x00000000)
#define SDIO_ClockBypass_Enable ((uint32_t)0x00000400)
/* SDIO_Clock_Power_Save */
#define SDIO_ClockPowerSave_Disable ((uint32_t)0x00000000)
#define SDIO_ClockPowerSave_Enable ((uint32_t)0x00000200)
/* SDIO_Bus_Wide */
#define SDIO_BusWide_1b ((uint32_t)0x00000000)
#define SDIO_BusWide_4b ((uint32_t)0x00000800)
#define SDIO_BusWide_8b ((uint32_t)0x00001000)
/* SDIO_Hardware_Flow_Control */
#define SDIO_HardwareFlowControl_Disable ((uint32_t)0x00000000)
#define SDIO_HardwareFlowControl_Enable ((uint32_t)0x00004000)
/* SDIO_Power_State */
#define SDIO_PowerState_OFF ((uint32_t)0x00000000)
#define SDIO_PowerState_ON ((uint32_t)0x00000003)
/* SDIO_Interrupt_sources */
#define SDIO_IT_CCRCFAIL ((uint32_t)0x00000001)
#define SDIO_IT_DCRCFAIL ((uint32_t)0x00000002)
#define SDIO_IT_CTIMEOUT ((uint32_t)0x00000004)
#define SDIO_IT_DTIMEOUT ((uint32_t)0x00000008)
#define SDIO_IT_TXUNDERR ((uint32_t)0x00000010)
#define SDIO_IT_RXOVERR ((uint32_t)0x00000020)
#define SDIO_IT_CMDREND ((uint32_t)0x00000040)
#define SDIO_IT_CMDSENT ((uint32_t)0x00000080)
#define SDIO_IT_DATAEND ((uint32_t)0x00000100)
#define SDIO_IT_STBITERR ((uint32_t)0x00000200)
#define SDIO_IT_DBCKEND ((uint32_t)0x00000400)
#define SDIO_IT_CMDACT ((uint32_t)0x00000800)
#define SDIO_IT_TXACT ((uint32_t)0x00001000)
#define SDIO_IT_RXACT ((uint32_t)0x00002000)
#define SDIO_IT_TXFIFOHE ((uint32_t)0x00004000)
#define SDIO_IT_RXFIFOHF ((uint32_t)0x00008000)
#define SDIO_IT_TXFIFOF ((uint32_t)0x00010000)
#define SDIO_IT_RXFIFOF ((uint32_t)0x00020000)
#define SDIO_IT_TXFIFOE ((uint32_t)0x00040000)
#define SDIO_IT_RXFIFOE ((uint32_t)0x00080000)
#define SDIO_IT_TXDAVL ((uint32_t)0x00100000)
#define SDIO_IT_RXDAVL ((uint32_t)0x00200000)
#define SDIO_IT_SDIOIT ((uint32_t)0x00400000)
#define SDIO_IT_CEATAEND ((uint32_t)0x00800000)
/* SDIO_Response_Type */
#define SDIO_Response_No ((uint32_t)0x00000000)
#define SDIO_Response_Short ((uint32_t)0x00000040)
#define SDIO_Response_Long ((uint32_t)0x000000C0)
/* SDIO_Wait_Interrupt_State */
#define SDIO_Wait_No ((uint32_t)0x00000000)
#define SDIO_Wait_IT ((uint32_t)0x00000100)
#define SDIO_Wait_Pend ((uint32_t)0x00000200)
/* SDIO_CPSM_State */
#define SDIO_CPSM_Disable ((uint32_t)0x00000000)
#define SDIO_CPSM_Enable ((uint32_t)0x00000400)
/* SDIO_Response_Registers */
#define SDIO_RESP1 ((uint32_t)0x00000000)
#define SDIO_RESP2 ((uint32_t)0x00000004)
#define SDIO_RESP3 ((uint32_t)0x00000008)
#define SDIO_RESP4 ((uint32_t)0x0000000C)
/* SDIO_Data_Block_Size */
#define SDIO_DataBlockSize_1b ((uint32_t)0x00000000)
#define SDIO_DataBlockSize_2b ((uint32_t)0x00000010)
#define SDIO_DataBlockSize_4b ((uint32_t)0x00000020)
#define SDIO_DataBlockSize_8b ((uint32_t)0x00000030)
#define SDIO_DataBlockSize_16b ((uint32_t)0x00000040)
#define SDIO_DataBlockSize_32b ((uint32_t)0x00000050)
#define SDIO_DataBlockSize_64b ((uint32_t)0x00000060)
#define SDIO_DataBlockSize_128b ((uint32_t)0x00000070)
#define SDIO_DataBlockSize_256b ((uint32_t)0x00000080)
#define SDIO_DataBlockSize_512b ((uint32_t)0x00000090)
#define SDIO_DataBlockSize_1024b ((uint32_t)0x000000A0)
#define SDIO_DataBlockSize_2048b ((uint32_t)0x000000B0)
#define SDIO_DataBlockSize_4096b ((uint32_t)0x000000C0)
#define SDIO_DataBlockSize_8192b ((uint32_t)0x000000D0)
#define SDIO_DataBlockSize_16384b ((uint32_t)0x000000E0)
/* SDIO_Transfer_Direction */
#define SDIO_TransferDir_ToCard ((uint32_t)0x00000000)
#define SDIO_TransferDir_ToSDIO ((uint32_t)0x00000002)
/* SDIO_Transfer_Type */
#define SDIO_TransferMode_Block ((uint32_t)0x00000000)
#define SDIO_TransferMode_Stream ((uint32_t)0x00000004)
/* SDIO_DPSM_State */
#define SDIO_DPSM_Disable ((uint32_t)0x00000000)
#define SDIO_DPSM_Enable ((uint32_t)0x00000001)
/* SDIO_Flags */
#define SDIO_FLAG_CCRCFAIL ((uint32_t)0x00000001)
#define SDIO_FLAG_DCRCFAIL ((uint32_t)0x00000002)
#define SDIO_FLAG_CTIMEOUT ((uint32_t)0x00000004)
#define SDIO_FLAG_DTIMEOUT ((uint32_t)0x00000008)
#define SDIO_FLAG_TXUNDERR ((uint32_t)0x00000010)
#define SDIO_FLAG_RXOVERR ((uint32_t)0x00000020)
#define SDIO_FLAG_CMDREND ((uint32_t)0x00000040)
#define SDIO_FLAG_CMDSENT ((uint32_t)0x00000080)
#define SDIO_FLAG_DATAEND ((uint32_t)0x00000100)
#define SDIO_FLAG_STBITERR ((uint32_t)0x00000200)
#define SDIO_FLAG_DBCKEND ((uint32_t)0x00000400)
#define SDIO_FLAG_CMDACT ((uint32_t)0x00000800)
#define SDIO_FLAG_TXACT ((uint32_t)0x00001000)
#define SDIO_FLAG_RXACT ((uint32_t)0x00002000)
#define SDIO_FLAG_TXFIFOHE ((uint32_t)0x00004000)
#define SDIO_FLAG_RXFIFOHF ((uint32_t)0x00008000)
#define SDIO_FLAG_TXFIFOF ((uint32_t)0x00010000)
#define SDIO_FLAG_RXFIFOF ((uint32_t)0x00020000)
#define SDIO_FLAG_TXFIFOE ((uint32_t)0x00040000)
#define SDIO_FLAG_RXFIFOE ((uint32_t)0x00080000)
#define SDIO_FLAG_TXDAVL ((uint32_t)0x00100000)
#define SDIO_FLAG_RXDAVL ((uint32_t)0x00200000)
#define SDIO_FLAG_SDIOIT ((uint32_t)0x00400000)
#define SDIO_FLAG_CEATAEND ((uint32_t)0x00800000)
/* SDIO_Read_Wait_Mode */
#define SDIO_ReadWaitMode_CLK ((uint32_t)0x00000001)
#define SDIO_ReadWaitMode_DATA2 ((uint32_t)0x00000000)
#define SDIO_DataControl_DTEN ((uint32_t)0x00000001)
#define SDIO_DataControl_DTDIR ((uint32_t)0x00000002)
#define SDIO_DataControl_DTMODE ((uint32_t)0x00000004)
#define SDIO_DataControl_DMAEN ((uint32_t)0x00000008)
#define SDIO_DataControl_DBLOCKSIZE ((uint32_t)0x000000F0)
#define SDIO_DataControl_RWSTART ((uint32_t)0x00000100)
#define SDIO_DataControl_RWSTOP ((uint32_t)0x00000200)
#define SDIO_DataControl_RWMOD ((uint32_t)0x00000400)
#define SDIO_DataControl_SDIOEN ((uint32_t)0x00000800)
/* ch32h417_spi.h ------------------------------------------------------------*/
/* SPI_data_direction */
#define SPI_Direction_2Lines_FullDuplex ((uint16_t)0x0000)
#define SPI_Direction_2Lines_RxOnly ((uint16_t)0x0400)
#define SPI_Direction_1Line_Rx ((uint16_t)0x8000)
#define SPI_Direction_1Line_Tx ((uint16_t)0xC000)
/* SPI_mode */
#define SPI_Mode_Master ((uint16_t)0x0104)
#define SPI_Mode_Slave ((uint16_t)0x0000)
/* SPI_data_size */
#define SPI_DataSize_16b ((uint16_t)0x0800)
#define SPI_DataSize_8b ((uint16_t)0x0000)
/* SPI_Clock_Polarity */
#define SPI_CPOL_Low ((uint16_t)0x0000)
#define SPI_CPOL_High ((uint16_t)0x0002)
/* SPI_Clock_Phase */
#define SPI_CPHA_1Edge ((uint16_t)0x0000)
#define SPI_CPHA_2Edge ((uint16_t)0x0001)
/* SPI_Slave_Select_management */
#define SPI_NSS_Soft ((uint16_t)0x0200)
#define SPI_NSS_Hard ((uint16_t)0x0000)
/* SPI_BaudRate_Prescaler */
#define SPI_BaudRatePrescaler_Mode0 ((uint16_t)0x0000)
#define SPI_BaudRatePrescaler_Mode1 ((uint16_t)0x0008)
#define SPI_BaudRatePrescaler_Mode2 ((uint16_t)0x0010)
#define SPI_BaudRatePrescaler_Mode3 ((uint16_t)0x0018)
#define SPI_BaudRatePrescaler_Mode4 ((uint16_t)0x0020)
#define SPI_BaudRatePrescaler_Mode5 ((uint16_t)0x0028)
#define SPI_BaudRatePrescaler_Mode6 ((uint16_t)0x0030)
#define SPI_BaudRatePrescaler_Mode7 ((uint16_t)0x0038)
/* SPI_MSB_LSB_transmission */
#define SPI_FirstBit_MSB ((uint16_t)0x0000)
#define SPI_FirstBit_LSB ((uint16_t)0x0080)
/* I2S_Mode */
#define I2S_Mode_SlaveTx ((uint16_t)0x0000)
#define I2S_Mode_SlaveRx ((uint16_t)0x0100)
#define I2S_Mode_MasterTx ((uint16_t)0x0200)
#define I2S_Mode_MasterRx ((uint16_t)0x0300)
/* I2S_Standard */
#define I2S_Standard_Phillips ((uint16_t)0x0000)
#define I2S_Standard_MSB ((uint16_t)0x0010)
#define I2S_Standard_LSB ((uint16_t)0x0020)
#define I2S_Standard_PCMShort ((uint16_t)0x0030)
#define I2S_Standard_PCMLong ((uint16_t)0x00B0)
/* I2S_Data_Format */
#define I2S_DataFormat_16b ((uint16_t)0x0000)
#define I2S_DataFormat_16bextended ((uint16_t)0x0001)
#define I2S_DataFormat_24b ((uint16_t)0x0003)
#define I2S_DataFormat_32b ((uint16_t)0x0005)
/* I2S_MCLK_Output */
#define I2S_MCLKOutput_Enable ((uint16_t)0x0200)
#define I2S_MCLKOutput_Disable ((uint16_t)0x0000)
/* I2S_Audio_Frequency */
#define I2S_AudioFreq_192k ((uint32_t)192000)
#define I2S_AudioFreq_96k ((uint32_t)96000)
#define I2S_AudioFreq_48k ((uint32_t)48000)
#define I2S_AudioFreq_44k ((uint32_t)44100)
#define I2S_AudioFreq_32k ((uint32_t)32000)
#define I2S_AudioFreq_22k ((uint32_t)22050)
#define I2S_AudioFreq_16k ((uint32_t)16000)
#define I2S_AudioFreq_11k ((uint32_t)11025)
#define I2S_AudioFreq_8k ((uint32_t)8000)
#define I2S_AudioFreq_Default ((uint32_t)2)
/* I2S_Clock_Polarity */
#define I2S_CPOL_Low ((uint16_t)0x0000)
#define I2S_CPOL_High ((uint16_t)0x0008)
/* SPI_I2S_DMA_transfer_requests */
#define SPI_I2S_DMAReq_Tx ((uint16_t)0x0002)
#define SPI_I2S_DMAReq_Rx ((uint16_t)0x0001)
/* SPI_NSS_internal_software_management */
#define SPI_NSSInternalSoft_Set ((uint16_t)0x0100)
#define SPI_NSSInternalSoft_Reset ((uint16_t)0xFEFF)
/* SPI_CRC_Transmit_Receive */
#define SPI_CRC_Tx ((uint8_t)0x00)
#define SPI_CRC_Rx ((uint8_t)0x01)
/* SPI_direction_transmit_receive */
#define SPI_Direction_Rx ((uint16_t)0xBFFF)
#define SPI_Direction_Tx ((uint16_t)0x4000)
/* SPI_I2S_interrupts_definition */
#define SPI_I2S_IT_TXE ((uint8_t)0x71)
#define SPI_I2S_IT_RXNE ((uint8_t)0x60)
#define SPI_I2S_IT_ERR ((uint8_t)0x50)
#define SPI_I2S_IT_OVR ((uint8_t)0x56)
#define SPI_IT_MODF ((uint8_t)0x55)
#define SPI_IT_CRCERR ((uint8_t)0x54)
#define I2S_IT_UDR ((uint8_t)0x53)
/* SPI_I2S_flags_definition */
#define SPI_I2S_FLAG_RXNE ((uint16_t)0x0001)
#define SPI_I2S_FLAG_TXE ((uint16_t)0x0002)
#define I2S_FLAG_CHSIDE ((uint16_t)0x0004)
#define I2S_FLAG_UDR ((uint16_t)0x0008)
#define SPI_FLAG_CRCERR ((uint16_t)0x0010)
#define SPI_FLAG_MODF ((uint16_t)0x0020)
#define SPI_I2S_FLAG_OVR ((uint16_t)0x0040)
#define SPI_I2S_FLAG_BSY ((uint16_t)0x0080)
/* SPI_HIGH_SPEED_MODE_definition */
#define SPI_HIGH_SPEED_MODE1 ((uint16_t)0x0001)
#define SPI_HIGH_SPEED_MODE2 ((uint16_t)0x0005)
/* ch32h417_tim.h ------------------------------------------------------------*/
/* TIM_Output_Compare_and_PWM_modes */
#define TIM_OCMode_Timing ((uint16_t)0x0000)
#define TIM_OCMode_Active ((uint16_t)0x0010)
#define TIM_OCMode_Inactive ((uint16_t)0x0020)
#define TIM_OCMode_Toggle ((uint16_t)0x0030)
#define TIM_OCMode_PWM1 ((uint16_t)0x0060)
#define TIM_OCMode_PWM2 ((uint16_t)0x0070)
/* TIM_One_Pulse_Mode */
#define TIM_OPMode_Single ((uint16_t)0x0008)
#define TIM_OPMode_Repetitive ((uint16_t)0x0000)
/* TIM_Channel */
#define TIM_Channel_1 ((uint16_t)0x0000)
#define TIM_Channel_2 ((uint16_t)0x0004)
#define TIM_Channel_3 ((uint16_t)0x0008)
#define TIM_Channel_4 ((uint16_t)0x000C)
/* TIM_Clock_Division_CKD */
#define TIM_CKD_DIV1 ((uint16_t)0x0000)
#define TIM_CKD_DIV2 ((uint16_t)0x0100)
#define TIM_CKD_DIV4 ((uint16_t)0x0200)
/* TIM_Counter_Mode */
#define TIM_CounterMode_Up ((uint16_t)0x0000)
#define TIM_CounterMode_Down ((uint16_t)0x0010)
#define TIM_CounterMode_CenterAligned1 ((uint16_t)0x0020)
#define TIM_CounterMode_CenterAligned2 ((uint16_t)0x0040)
#define TIM_CounterMode_CenterAligned3 ((uint16_t)0x0060)
/* TIM_Output_Compare_Polarity */
#define TIM_OCPolarity_High ((uint16_t)0x0000)
#define TIM_OCPolarity_Low ((uint16_t)0x0002)
/* TIM_Output_Compare_N_Polarity */
#define TIM_OCNPolarity_High ((uint16_t)0x0000)
#define TIM_OCNPolarity_Low ((uint16_t)0x0008)
/* TIM_Output_Compare_state */
#define TIM_OutputState_Disable ((uint16_t)0x0000)
#define TIM_OutputState_Enable ((uint16_t)0x0001)
/* TIM_Output_Compare_N_state */
#define TIM_OutputNState_Disable ((uint16_t)0x0000)
#define TIM_OutputNState_Enable ((uint16_t)0x0004)
/* TIM_Capture_Compare_state */
#define TIM_CCx_Enable ((uint16_t)0x0001)
#define TIM_CCx_Disable ((uint16_t)0x0000)
/* TIM_Capture_Compare_N_state */
#define TIM_CCxN_Enable ((uint16_t)0x0004)
#define TIM_CCxN_Disable ((uint16_t)0x0000)
/* Break_Input_enable_disable */
#define TIM_Break_Enable ((uint16_t)0x1000)
#define TIM_Break_Disable ((uint16_t)0x0000)
/* Break_Polarity */
#define TIM_BreakPolarity_Low ((uint16_t)0x0000)
#define TIM_BreakPolarity_High ((uint16_t)0x2000)
/* TIM_AOE_Bit_Set_Reset */
#define TIM_AutomaticOutput_Enable ((uint16_t)0x4000)
#define TIM_AutomaticOutput_Disable ((uint16_t)0x0000)
/* Lock_level */
#define TIM_LOCKLevel_OFF ((uint16_t)0x0000)
#define TIM_LOCKLevel_1 ((uint16_t)0x0100)
#define TIM_LOCKLevel_2 ((uint16_t)0x0200)
#define TIM_LOCKLevel_3 ((uint16_t)0x0300)
/* OSSI_Off_State_Selection_for_Idle_mode_state */
#define TIM_OSSIState_Enable ((uint16_t)0x0400)
#define TIM_OSSIState_Disable ((uint16_t)0x0000)
/* OSSR_Off_State_Selection_for_Run_mode_state */
#define TIM_OSSRState_Enable ((uint16_t)0x0800)
#define TIM_OSSRState_Disable ((uint16_t)0x0000)
/* TIM_Output_Compare_Idle_State */
#define TIM_OCIdleState_Set ((uint16_t)0x0100)
#define TIM_OCIdleState_Reset ((uint16_t)0x0000)
/* TIM_Output_Compare_N_Idle_State */
#define TIM_OCNIdleState_Set ((uint16_t)0x0200)
#define TIM_OCNIdleState_Reset ((uint16_t)0x0000)
/* TIM_Input_Capture_Polarity */
#define TIM_ICPolarity_Rising ((uint16_t)0x0000)
#define TIM_ICPolarity_Falling ((uint16_t)0x0002)
#define TIM_ICPolarity_BothEdge ((uint16_t)0x000A)
/* TIM_Input_Capture_Selection */
#define TIM_ICSelection_DirectTI ((uint16_t)0x0001) /* TIM Input 1, 2, 3 or 4 is selected to be
connected to IC1, IC2, IC3 or IC4, respectively */
#define TIM_ICSelection_IndirectTI ((uint16_t)0x0002) /* TIM Input 1, 2, 3 or 4 is selected to be
connected to IC2, IC1, IC4 or IC3, respectively. */
#define TIM_ICSelection_TRC ((uint16_t)0x0003) /* TIM Input 1, 2, 3 or 4 is selected to be connected to TRC. */
/* TIM_Input_Capture_Prescaler */
#define TIM_ICPSC_DIV1 ((uint16_t)0x0000) /* Capture performed each time an edge is detected on the capture input. */
#define TIM_ICPSC_DIV2 ((uint16_t)0x0004) /* Capture performed once every 2 events. */
#define TIM_ICPSC_DIV4 ((uint16_t)0x0008) /* Capture performed once every 4 events. */
#define TIM_ICPSC_DIV8 ((uint16_t)0x000C) /* Capture performed once every 8 events. */
/* TIM_interrupt_sources */
#define TIM_IT_Update ((uint16_t)0x0001)
#define TIM_IT_CC1 ((uint16_t)0x0002)
#define TIM_IT_CC2 ((uint16_t)0x0004)
#define TIM_IT_CC3 ((uint16_t)0x0008)
#define TIM_IT_CC4 ((uint16_t)0x0010)
#define TIM_IT_COM ((uint16_t)0x0020)
#define TIM_IT_Trigger ((uint16_t)0x0040)
#define TIM_IT_Break ((uint16_t)0x0080)
/* TIM_DMA_Base_address */
#define TIM_DMABase_CR1 ((uint16_t)0x0000)
#define TIM_DMABase_CR2 ((uint16_t)0x0001)
#define TIM_DMABase_SMCR ((uint16_t)0x0002)
#define TIM_DMABase_DIER ((uint16_t)0x0003)
#define TIM_DMABase_SR ((uint16_t)0x0004)
#define TIM_DMABase_EGR ((uint16_t)0x0005)
#define TIM_DMABase_CCMR1 ((uint16_t)0x0006)
#define TIM_DMABase_CCMR2 ((uint16_t)0x0007)
#define TIM_DMABase_CCER ((uint16_t)0x0008)
#define TIM_DMABase_CNT ((uint16_t)0x0009)
#define TIM_DMABase_PSC ((uint16_t)0x000A)
#define TIM_DMABase_ARR ((uint16_t)0x000B)
#define TIM_DMABase_RCR ((uint16_t)0x000C)
#define TIM_DMABase_CCR1 ((uint16_t)0x000D)
#define TIM_DMABase_CCR2 ((uint16_t)0x000E)
#define TIM_DMABase_CCR3 ((uint16_t)0x000F)
#define TIM_DMABase_CCR4 ((uint16_t)0x0010)
#define TIM_DMABase_BDTR ((uint16_t)0x0011)
#define TIM_DMABase_DCR ((uint16_t)0x0012)
/* TIM_DMA_Burst_Length */
#define TIM_DMABurstLength_1Transfer ((uint16_t)0x0000)
#define TIM_DMABurstLength_2Transfers ((uint16_t)0x0100)
#define TIM_DMABurstLength_3Transfers ((uint16_t)0x0200)
#define TIM_DMABurstLength_4Transfers ((uint16_t)0x0300)
#define TIM_DMABurstLength_5Transfers ((uint16_t)0x0400)
#define TIM_DMABurstLength_6Transfers ((uint16_t)0x0500)
#define TIM_DMABurstLength_7Transfers ((uint16_t)0x0600)
#define TIM_DMABurstLength_8Transfers ((uint16_t)0x0700)
#define TIM_DMABurstLength_9Transfers ((uint16_t)0x0800)
#define TIM_DMABurstLength_10Transfers ((uint16_t)0x0900)
#define TIM_DMABurstLength_11Transfers ((uint16_t)0x0A00)
#define TIM_DMABurstLength_12Transfers ((uint16_t)0x0B00)
#define TIM_DMABurstLength_13Transfers ((uint16_t)0x0C00)
#define TIM_DMABurstLength_14Transfers ((uint16_t)0x0D00)
#define TIM_DMABurstLength_15Transfers ((uint16_t)0x0E00)
#define TIM_DMABurstLength_16Transfers ((uint16_t)0x0F00)
#define TIM_DMABurstLength_17Transfers ((uint16_t)0x1000)
#define TIM_DMABurstLength_18Transfers ((uint16_t)0x1100)
/* TIM_DMA_sources */
#define TIM_DMA_Update ((uint16_t)0x0100)
#define TIM_DMA_CC1 ((uint16_t)0x0200)
#define TIM_DMA_CC2 ((uint16_t)0x0400)
#define TIM_DMA_CC3 ((uint16_t)0x0800)
#define TIM_DMA_CC4 ((uint16_t)0x1000)
#define TIM_DMA_COM ((uint16_t)0x2000)
#define TIM_DMA_Trigger ((uint16_t)0x4000)
/* TIM_External_Trigger_Prescaler */
#define TIM_ExtTRGPSC_OFF ((uint16_t)0x0000)
#define TIM_ExtTRGPSC_DIV2 ((uint16_t)0x1000)
#define TIM_ExtTRGPSC_DIV4 ((uint16_t)0x2000)
#define TIM_ExtTRGPSC_DIV8 ((uint16_t)0x3000)
/* TIM_Internal_Trigger_Selection */
#define TIM_TS_ITR0 ((uint16_t)0x0000)
#define TIM_TS_ITR1 ((uint16_t)0x0010)
#define TIM_TS_ITR2 ((uint16_t)0x0020)
#define TIM_TS_ITR3 ((uint16_t)0x0030)
#define TIM_TS_TI1F_ED ((uint16_t)0x0040)
#define TIM_TS_TI1FP1 ((uint16_t)0x0050)
#define TIM_TS_TI2FP2 ((uint16_t)0x0060)
#define TIM_TS_ETRF ((uint16_t)0x0070)
/* TIM_TIx_External_Clock_Source */
#define TIM_TIxExternalCLK1Source_TI1 ((uint16_t)0x0050)
#define TIM_TIxExternalCLK1Source_TI2 ((uint16_t)0x0060)
#define TIM_TIxExternalCLK1Source_TI1ED ((uint16_t)0x0040)
/* TIM_External_Trigger_Polarity */
#define TIM_ExtTRGPolarity_Inverted ((uint16_t)0x8000)
#define TIM_ExtTRGPolarity_NonInverted ((uint16_t)0x0000)
/* TIM_Prescaler_Reload_Mode */
#define TIM_PSCReloadMode_Update ((uint16_t)0x0000)
#define TIM_PSCReloadMode_Immediate ((uint16_t)0x0001)
/* TIM_Forced_Action */
#define TIM_ForcedAction_Active ((uint16_t)0x0050)
#define TIM_ForcedAction_InActive ((uint16_t)0x0040)
/* TIM_Encoder_Mode */
#define TIM_EncoderMode_TI1 ((uint16_t)0x0001)
#define TIM_EncoderMode_TI2 ((uint16_t)0x0002)
#define TIM_EncoderMode_TI12 ((uint16_t)0x0003)
/* TIM_Event_Source */
#define TIM_EventSource_Update ((uint16_t)0x0001)
#define TIM_EventSource_CC1 ((uint16_t)0x0002)
#define TIM_EventSource_CC2 ((uint16_t)0x0004)
#define TIM_EventSource_CC3 ((uint16_t)0x0008)
#define TIM_EventSource_CC4 ((uint16_t)0x0010)
#define TIM_EventSource_COM ((uint16_t)0x0020)
#define TIM_EventSource_Trigger ((uint16_t)0x0040)
#define TIM_EventSource_Break ((uint16_t)0x0080)
/* TIM_Update_Source */
#define TIM_UpdateSource_Global ((uint16_t)0x0000) /* Source of update is the counter overflow/underflow
or the setting of UG bit, or an update generation
through the slave mode controller. */
#define TIM_UpdateSource_Regular ((uint16_t)0x0001) /* Source of update is counter overflow/underflow. */
/* TIM_Output_Compare_Preload_State */
#define TIM_OCPreload_Enable ((uint16_t)0x0008)
#define TIM_OCPreload_Disable ((uint16_t)0x0000)
/* TIM_Output_Compare_Fast_State */
#define TIM_OCFast_Enable ((uint16_t)0x0004)
#define TIM_OCFast_Disable ((uint16_t)0x0000)
/* TIM_Output_Compare_Clear_State */
#define TIM_OCClear_Enable ((uint16_t)0x0080)
#define TIM_OCClear_Disable ((uint16_t)0x0000)
/* TIM_Trigger_Output_Source */
#define TIM_TRGOSource_Reset ((uint16_t)0x0000)
#define TIM_TRGOSource_Enable ((uint16_t)0x0010)
#define TIM_TRGOSource_Update ((uint16_t)0x0020)
#define TIM_TRGOSource_OC1 ((uint16_t)0x0030)
#define TIM_TRGOSource_OC1Ref ((uint16_t)0x0040)
#define TIM_TRGOSource_OC2Ref ((uint16_t)0x0050)
#define TIM_TRGOSource_OC3Ref ((uint16_t)0x0060)
#define TIM_TRGOSource_OC4Ref ((uint16_t)0x0070)
/* TIM_Slave_Mode */
#define TIM_SlaveMode_Reset ((uint16_t)0x0004)
#define TIM_SlaveMode_Gated ((uint16_t)0x0005)
#define TIM_SlaveMode_Trigger ((uint16_t)0x0006)
#define TIM_SlaveMode_External1 ((uint16_t)0x0007)
/* TIM_Master_Slave_Mode */
#define TIM_MasterSlaveMode_Enable ((uint16_t)0x0080)
#define TIM_MasterSlaveMode_Disable ((uint16_t)0x0000)
/* TIM_Flags */
#define TIM_FLAG_Update ((uint16_t)0x0001)
#define TIM_FLAG_CC1 ((uint16_t)0x0002)
#define TIM_FLAG_CC2 ((uint16_t)0x0004)
#define TIM_FLAG_CC3 ((uint16_t)0x0008)
#define TIM_FLAG_CC4 ((uint16_t)0x0010)
#define TIM_FLAG_COM ((uint16_t)0x0020)
#define TIM_FLAG_Trigger ((uint16_t)0x0040)
#define TIM_FLAG_Break ((uint16_t)0x0080)
#define TIM_FLAG_CC1OF ((uint16_t)0x0200)
#define TIM_FLAG_CC2OF ((uint16_t)0x0400)
#define TIM_FLAG_CC3OF ((uint16_t)0x0800)
#define TIM_FLAG_CC4OF ((uint16_t)0x1000)
/* TIM_DT_MODE */
#define TIM_DT_MODE_Disable ((uint16_t)0x0000)
#define TIM_DT_MODE_Rising ((uint16_t)0x0040)
#define TIM_DT_MODE_Falling ((uint16_t)0x0080)
#define TIM_DT_MODE_BothEdge ((uint16_t)0x00C0)
/* TIM_Brake Select */
#define TIM_BKIN1 ((uint16_t)0x0000)
#define TIM_BKIN2 ((uint16_t)0x0001)
#define TIM_BKIN1_2 ((uint16_t)0x0002)
#define TIM_DFSDM_BK0 ((uint16_t)0x0004)
#define TIM_DFSDM_BK1 ((uint16_t)0x0005)
/* TIM_IC_OverflowMode */
#define TIM_IC_OV_Mode0 ((uint16_t)0x0000)
#define TIM_IC_OV_Mode1 ((uint16_t)0x4000)
/* TIM_Legacy */
#define TIM_DMABurstLength_1Byte TIM_DMABurstLength_1Transfer
#define TIM_DMABurstLength_2Bytes TIM_DMABurstLength_2Transfers
#define TIM_DMABurstLength_3Bytes TIM_DMABurstLength_3Transfers
#define TIM_DMABurstLength_4Bytes TIM_DMABurstLength_4Transfers
#define TIM_DMABurstLength_5Bytes TIM_DMABurstLength_5Transfers
#define TIM_DMABurstLength_6Bytes TIM_DMABurstLength_6Transfers
#define TIM_DMABurstLength_7Bytes TIM_DMABurstLength_7Transfers
#define TIM_DMABurstLength_8Bytes TIM_DMABurstLength_8Transfers
#define TIM_DMABurstLength_9Bytes TIM_DMABurstLength_9Transfers
#define TIM_DMABurstLength_10Bytes TIM_DMABurstLength_10Transfers
#define TIM_DMABurstLength_11Bytes TIM_DMABurstLength_11Transfers
#define TIM_DMABurstLength_12Bytes TIM_DMABurstLength_12Transfers
#define TIM_DMABurstLength_13Bytes TIM_DMABurstLength_13Transfers
#define TIM_DMABurstLength_14Bytes TIM_DMABurstLength_14Transfers
#define TIM_DMABurstLength_15Bytes TIM_DMABurstLength_15Transfers
#define TIM_DMABurstLength_16Bytes TIM_DMABurstLength_16Transfers
#define TIM_DMABurstLength_17Bytes TIM_DMABurstLength_17Transfers
#define TIM_DMABurstLength_18Bytes TIM_DMABurstLength_18Transfers
/* ch32h417_usart.h ----------------------------------------------------------*/
/* USART_Word_Length */
#define USART_WordLength_5b ((uint16_t)0xC000)
#define USART_WordLength_6b ((uint16_t)0x8000)
#define USART_WordLength_7b ((uint16_t)0x4000)
#define USART_WordLength_8b ((uint16_t)0x0000)
#define USART_WordLength_9b ((uint16_t)0x1000)
/* USART_Stop_Bits */
#define USART_StopBits_1 ((uint16_t)0x0000)
#define USART_StopBits_0_5 ((uint16_t)0x1000)
#define USART_StopBits_2 ((uint16_t)0x2000)
#define USART_StopBits_1_5 ((uint16_t)0x3000)
/* USART_Parity */
#define USART_Parity_No ((uint16_t)0x0000)
#define USART_Parity_Even ((uint16_t)0x0400)
#define USART_Parity_Odd ((uint16_t)0x0600)
/* USART_Mode */
#define USART_Mode_Rx ((uint16_t)0x0004)
#define USART_Mode_Tx ((uint16_t)0x0008)
/* USART_Hardware_Flow_Control */
#define USART_HardwareFlowControl_None ((uint16_t)0x0000)
#define USART_HardwareFlowControl_RTS ((uint16_t)0x0100)
#define USART_HardwareFlowControl_CTS ((uint16_t)0x0200)
#define USART_HardwareFlowControl_RTS_CTS ((uint16_t)0x0300)
/* USART_Clock */
#define USART_Clock_Disable ((uint16_t)0x0000)
#define USART_Clock_Enable ((uint16_t)0x0800)
/* USART_Clock_Polarity */
#define USART_CPOL_Low ((uint16_t)0x0000)
#define USART_CPOL_High ((uint16_t)0x0400)
/* USART_Clock_Phase */
#define USART_CPHA_1Edge ((uint16_t)0x0000)
#define USART_CPHA_2Edge ((uint16_t)0x0200)
/* USART_Last_Bit */
#define USART_LastBit_Disable ((uint16_t)0x0000)
#define USART_LastBit_Enable ((uint16_t)0x0100)
/* USART_Interrupt_definition */
#define USART_IT_PE ((uint16_t)0x0028)
#define USART_IT_TXE ((uint16_t)0x0727)
#define USART_IT_TC ((uint16_t)0x0626)
#define USART_IT_RXNE ((uint16_t)0x0525)
#define USART_IT_ORE_RX ((uint16_t)0x0325)
#define USART_IT_IDLE ((uint16_t)0x0424)
#define USART_IT_LBD ((uint16_t)0x0846)
#define USART_IT_CTS ((uint16_t)0x096A)
#define USART_IT_ERR ((uint16_t)0x0060)
#define USART_IT_ORE_ER ((uint16_t)0x0360)
#define USART_IT_NE ((uint16_t)0x0260)
#define USART_IT_FE ((uint16_t)0x0160)
#define USART_IT_MS_ER ((uint16_t)0x0B81)
#define USART_IT_ORE USART_IT_ORE_ER
/* USART_DMA_Requests */
#define USART_DMAReq_Tx ((uint16_t)0x0080)
#define USART_DMAReq_Rx ((uint16_t)0x0040)
/* USART_WakeUp_methods */
#define USART_WakeUp_IdleLine ((uint16_t)0x0000)
#define USART_WakeUp_AddressMark ((uint16_t)0x0800)
/* USART_LIN_Break_Detection_Length */
#define USART_LINBreakDetectLength_10b ((uint16_t)0x0000)
#define USART_LINBreakDetectLength_11b ((uint16_t)0x0020)
/* USART_IrDA_Low_Power */
#define USART_IrDAMode_LowPower ((uint16_t)0x0004)
#define USART_IrDAMode_Normal ((uint16_t)0x0000)
/* USART_Flags */
#define USART_FLAG_LPWKUP ((uint16_t)0x8000)
#define USART_FLAG_MS_ERR ((uint16_t)0x0800)
#define USART_FLAG_RX_BUSY ((uint16_t)0x0400)
#define USART_FLAG_CTS ((uint16_t)0x0200)
#define USART_FLAG_LBD ((uint16_t)0x0100)
#define USART_FLAG_TXE ((uint16_t)0x0080)
#define USART_FLAG_TC ((uint16_t)0x0040)
#define USART_FLAG_RXNE ((uint16_t)0x0020)
#define USART_FLAG_IDLE ((uint16_t)0x0010)
#define USART_FLAG_ORE ((uint16_t)0x0008)
#define USART_FLAG_NE ((uint16_t)0x0004)
#define USART_FLAG_FE ((uint16_t)0x0002)
#define USART_FLAG_PE ((uint16_t)0x0001)
/* USART_LPWKUP_DLY */
#define USART_LPWKUP_DLY_0_CLKCycle ((uint16_t)0x0000)
#define USART_LPWKUP_DLY_1_CLKCycle ((uint16_t)0x2000)
#define USART_LPWKUP_DLY_2_CLKCycle ((uint16_t)0x4000)
#define USART_LPWKUP_DLY_3_CLKCycle ((uint16_t)0x6000)
#define USART_LPWKUP_DLY_4_CLKCycle ((uint16_t)0x8000)
#define USART_LPWKUP_DLY_5_CLKCycle ((uint16_t)0xA000)
#define USART_LPWKUP_DLY_6_CLKCycle ((uint16_t)0xC000)
#define USART_LPWKUP_DLY_7_CLKCycle ((uint16_t)0xE000)
/* USART_LPWKUP_CLK_SRC */
#define USART_LPWKUP_CLK_SRC_LSI ((uint16_t)0x0000)
#define USART_LPWKUP_CLK_SRC_LSE ((uint16_t)0x1000)
/* USART_MARKorSPACE_Mode */
#define USART_VerifyMode_NoMARKorSPACE ((uint16_t)0x0000)
#define USART_VerifyMode_MARK ((uint16_t)0x0008)
#define USART_VerifyMode_SPACE ((uint16_t)0x000C)
/* ch32h417_usb.h ------------------------------------------------------------*/
/*******************************************************************************/
/* USB Communication Related Macro Definition */
/* USB Endpoint0 Size */
#ifndef DEFAULT_ENDP0_SIZE
#define DEFAULT_ENDP0_SIZE 8 // default maximum packet size for endpoint 0
#endif
#ifndef MAX_PACKET_SIZE
#define MAX_PACKET_SIZE 64 // maximum packet size
#endif
/* USB PID */
#ifndef USB_PID_SETUP
#define USB_PID_NULL 0x00
#define USB_PID_SOF 0x05
#define USB_PID_SETUP 0x0D
#define USB_PID_IN 0x09
#define USB_PID_OUT 0x01
#define USB_PID_NYET 0x06
#define USB_PID_ACK 0x02
#define USB_PID_NAK 0x0A
#define USB_PID_STALL 0x0E
#define USB_PID_DATA0 0x03
#define USB_PID_DATA1 0x0B
#define USB_PID_DATA2 0x07
#define USB_PID_MDATA 0x0F
#define USB_PID_PRE 0x0C
#endif
/* USB standard device request code */
#ifndef USB_GET_DESCRIPTOR
#define USB_GET_STATUS 0x00
#define USB_CLEAR_FEATURE 0x01
#define USB_SET_ENDPOINT 0x02
#define USB_SET_FEATURE 0x03
#define USB_SET_ADDRESS 0x05
#define USB_GET_DESCRIPTOR 0x06
#define USB_SET_DESCRIPTOR 0x07
#define USB_GET_CONFIGURATION 0x08
#define USB_SET_CONFIGURATION 0x09
#define USB_GET_INTERFACE 0x0A
#define USB_SET_INTERFACE 0x0B
#define USB_SYNCH_FRAME 0x0C
#define USB_SET_SEL 0x30
#define USB_SET_ISOCH_DLY 0x31
#endif
#define DEF_STRING_DESC_LANG 0x00
#define DEF_STRING_DESC_MANU 0x01
#define DEF_STRING_DESC_PROD 0x02
#define DEF_STRING_DESC_SERN 0x03
#define DEF_STRING_DESC_OS 0xEE
/* USB hub class request code */
#ifndef HUB_GET_DESCRIPTOR
#define HUB_GET_STATUS 0x00
#define HUB_CLEAR_FEATURE 0x01
#define HUB_GET_STATE 0x02
#define HUB_SET_FEATURE 0x03
#define HUB_GET_DESCRIPTOR 0x06
#define HUB_SET_DESCRIPTOR 0x07
#endif
/* USB HID class request code */
#ifndef HID_GET_REPORT
#define HID_GET_REPORT 0x01
#define HID_GET_IDLE 0x02
#define HID_GET_PROTOCOL 0x03
#define HID_SET_REPORT 0x09
#define HID_SET_IDLE 0x0A
#define HID_SET_PROTOCOL 0x0B
#endif
/* USB CDC Class request code */
#ifndef CDC_GET_LINE_CODING
#define CDC_GET_LINE_CODING 0x21 /* This request allows the host to find out the currently configured line coding */
#define CDC_SET_LINE_CODING 0x20 /* Configures DTE rate, stop-bits, parity, and number-of-character */
#define CDC_SET_LINE_CTLSTE 0x22 /* This request generates RS-232/V.24 style control signals */
#define CDC_SEND_BREAK 0x23 /* Sends special carrier modulation used to specify RS-232 style break */
#endif
/* USB UVC device request code */
#define UVC_GET_CUR 0x81
#define UVC_GET_MIN 0x82
#define UVC_GET_MAX 0x83
#define UVC_GET_RES 0x84
#define UVC_GET_LEN 0x85
#define UVC_GET_INFO 0x86
#define UVC_GET_DEF 0x87
/* Bit Define for USB Request Type */
#ifndef USB_REQ_TYP_MASK
#define USB_REQ_TYP_IN 0x80
#define USB_REQ_TYP_OUT 0x00
#define USB_REQ_TYP_READ 0x80
#define USB_REQ_TYP_WRITE 0x00
#define USB_REQ_TYP_MASK 0x60
#define USB_REQ_TYP_STANDARD 0x00
#define USB_REQ_TYP_CLASS 0x20
#define USB_REQ_TYP_VENDOR 0x40
#define USB_REQ_TYP_RESERVED 0x60
#define USB_REQ_RECIP_MASK 0x1F
#define USB_REQ_RECIP_DEVICE 0x00
#define USB_REQ_RECIP_INTERF 0x01
#define USB_REQ_RECIP_ENDP 0x02
#define USB_REQ_RECIP_OTHER 0x03
#define USB_REQ_FEAT_REMOTE_WAKEUP 0x01
#define USB_REQ_FEAT_ENDP_HALT 0x00
#endif
/* USB Descriptor Type */
#ifndef USB_DESCR_TYP_DEVICE
#define USB_DESCR_TYP_DEVICE 0x01
#define USB_DESCR_TYP_CONFIG 0x02
#define USB_DESCR_TYP_STRING 0x03
#define USB_DESCR_TYP_INTERF 0x04
#define USB_DESCR_TYP_ENDP 0x05
#define USB_DESCR_TYP_QUALIF 0x06
#define USB_DESCR_TYP_SPEED 0x07
#define USB_DESCR_TYP_OTG 0x09
#define USB_DESCR_TYP_BOS 0X0F
#define USB_DESCR_TYP_HID 0x21
#define USB_DESCR_TYP_REPORT 0x22
#define USB_DESCR_TYP_PHYSIC 0x23
#define USB_DESCR_TYP_CS_INTF 0x24
#define USB_DESCR_TYP_CS_ENDP 0x25
#define USB_DESCR_TYP_HUB 0x29
#endif
/* USB Device Class */
#ifndef USB_DEV_CLASS_HUB
#define USB_DEV_CLASS_RESERVED 0x00
#define USB_DEV_CLASS_AUDIO 0x01
#define USB_DEV_CLASS_COMMUNIC 0x02
#define USB_DEV_CLASS_HID 0x03
#define USB_DEV_CLASS_MONITOR 0x04
#define USB_DEV_CLASS_PHYSIC_IF 0x05
#define USB_DEV_CLASS_POWER 0x06
#define USB_DEV_CLASS_IMAGE 0x06
#define USB_DEV_CLASS_PRINTER 0x07
#define USB_DEV_CLASS_STORAGE 0x08
#define USB_DEV_CLASS_HUB 0x09
#define USB_DEV_CLASS_VEN_SPEC 0xFF
#endif
/* USB Hub Class Request */
#ifndef HUB_GET_HUB_DESCRIPTOR
#define HUB_CLEAR_HUB_FEATURE 0x20
#define HUB_CLEAR_PORT_FEATURE 0x23
#define HUB_GET_BUS_STATE 0xA3
#define HUB_GET_HUB_DESCRIPTOR 0xA0
#define HUB_GET_HUB_STATUS 0xA0
#define HUB_GET_PORT_STATUS 0xA3
#define HUB_SET_HUB_DESCRIPTOR 0x20
#define HUB_SET_HUB_FEATURE 0x20
#define HUB_SET_PORT_FEATURE 0x23
#endif
/* Hub Class Feature Selectors */
#ifndef HUB_PORT_RESET
#define HUB_C_HUB_LOCAL_POWER 0
#define HUB_C_HUB_OVER_CURRENT 1
#define HUB_PORT_CONNECTION 0
#define HUB_PORT_ENABLE 1
#define HUB_PORT_SUSPEND 2
#define HUB_PORT_OVER_CURRENT 3
#define HUB_PORT_RESET 4
#define HUB_PORT_POWER 8
#define HUB_PORT_LOW_SPEED 9
#define HUB_C_PORT_CONNECTION 16
#define HUB_C_PORT_ENABLE 17
#define HUB_C_PORT_SUSPEND 18
#define HUB_C_PORT_OVER_CURRENT 19
#define HUB_C_PORT_RESET 20
#endif
/* USB UDisk */
#ifndef USB_BO_CBW_SIZE
#define USB_BO_CBW_SIZE 0x1F
#define USB_BO_CSW_SIZE 0x0D
#endif
#ifndef USB_BO_CBW_SIG0
#define USB_BO_CBW_SIG0 0x55
#define USB_BO_CBW_SIG1 0x53
#define USB_BO_CBW_SIG2 0x42
#define USB_BO_CBW_SIG3 0x43
#define USB_BO_CSW_SIG0 0x55
#define USB_BO_CSW_SIG1 0x53
#define USB_BO_CSW_SIG2 0x42
#define USB_BO_CSW_SIG3 0x53
#endif
#define USB_U1_ENABLE 0x30
#define USB_U2_ENABLE 0x31
/*******************************************************************************/
/* USBSS Related Register Macro Definition */
/* LINK_CFG */
#define U3_LINK_RESET 0x80000000
#define LINK_FORCE_RXTERM 0x00800000
#define LINK_FORCE_POLLING 0x00400000
#define LINK_TOUT_MODE 0x00200000
#define LINK_U1_PING_EN 0x00100000
#define LINK_U2_ALLOW 0x00020000
#define LINK_U1_ALLOW 0x00010000
#define LINK_LTSSM_MODE 0x00008000
#define LINK_LOOPBACK_ACT 0x00004000
#define LINK_LOOPBACK_EN 0x00002000
#define LINK_U2_RXDET 0x00001000
#define LINK_CP78_SEL_MASK 0x00000C00
#define LINK_CP78_SEL_190BITS 0x00000000
#define LINK_CP78_SEL_120BITS 0x00000400
#define LINK_CP78_SEL_50BITS 0x00000800
#define LINK_CP78_SEL_250BITS 0x00000C00
#define LINK_TX_DEEMPH_MASK 0x00000300
#define LINK_TX_DEEMPH_6DB 0x00000000
#define LINK_TX_DEEMPH_3_5DB 0x00000100
#define LINK_TX_SWING 0x00000080
#define LINK_RX_EQ_EN 0x00000040
#define LINK_LFPS_RX_PD 0x00000020
#define LINK_COMPLIANCE_EN 0x00000010
#define LINK_PHY_RESET 0x00000008
#define LINK_SS_PLR_SWAP 0x00000004
#define LINK_RX_TERM_EN 0x00000002
#define LINK_DOWN_MODE 0x00000001
/* LINK_CTRL */
#define LINK_RX_TS_CFG_MASK 0xFF000000
#define LINK_TX_TS_CFG_MASK 0x00FF0000
#define LINK_HOT_RESET 0x00010000
#define LINK_TX_LGO_U3 0x00008000
#define LINK_TX_LGO_U2 0x00004000
#define LINK_TX_LGO_U1 0x00002000
#define LINK_POLLING_EN 0x00001000
#define LINK_REG_ROUT_EN 0x00000800
#define LINK_LUP_LDN_EN 0x00000400
#define LINK_TX_UX_EXIT 0x00000200
#define LINK_TX_WARM_RESET 0x00000100
#define LINK_GO_RX_DET 0x00000080
#define LINK_GO_RECOVERY 0x00000040
#define LINK_GO_INACTIVE 0x00000020
#define LINK_GO_DISABLED 0x00000010
#define LINK_PD_MODE_MASK 0x00000003
#define LINK_P0_MODE 0x00000000
#define LINK_P1_MODE 0x00000001
#define LINK_P2_MODE 0x00000002
#define LINK_P3_MODE 0x00000003
/* LINK_INT_CTRL */
#define LINK_IE_STATE_CHG 0x80000000
#define LINK_IE_U1_TOUT 0x40000000
#define LINK_IE_U2_TOUT 0x20000000
#define LINK_IE_UX_FAIL 0x10000000
#define LINK_IE_TX_WARMRST 0x08000000
#define LINK_IE_UX_EXIT_FAIL 0x04000000
#define LINK_IE_RX_LMP_TOUT 0x00800000
#define LINK_IE_TX_LMP 0x00400000
#define LINK_IE_RX_LMP 0x00200000
#define LINK_IE_RX_DET 0x00100000
#define LINK_IE_LOOPBACK 0x00080000
#define LINK_IE_COMPLIANCE 0x00040000
#define LINK_IE_HPBUF_FULL 0x00020000
#define LINK_IE_HPBUF_EMPTY 0x00010000
#define LINK_IE_HOT_RST 0x00008000
#define LINK_IE_WAKEUP 0x00004000
#define LINK_IE_WARM_RST 0x00002000
#define LINK_IE_UX_EXIT 0x00001000
#define LINK_IE_TXEQ 0x00000800
#define LINK_IE_TERM_PRES 0x00000400
#define LINK_IE_UX_REJ 0x00000200
#define LINK_IE_U3_WK_TOUT 0x00000100
#define LINK_IE_GO_U0 0x00000080
#define LINK_IE_GO_U1 0x00000040
#define LINK_IE_GO_U2 0x00000020
#define LINK_IE_GO_U3 0x00000010
#define LINK_IE_DISABLE 0x00000008
#define LINK_IE_INACTIVE 0x00000004
#define LINK_IE_RECOVERY 0x00000002
#define LINK_IE_READY 0x00000001
/* LINK_INT_FLAG */
#define LINK_IF_STATE_CHG 0x80000000
#define LINK_IF_U1_TOUT 0x40000000
#define LINK_IF_U2_TOUT 0x20000000
#define LINK_IF_UX_FAIL 0x10000000
#define LINK_IF_TX_WARMRST 0x08000000
#define LINK_IF_UX_EXIT_FAIL 0x04000000
#define LINK_IF_RX_LMP_TOUT 0x00800000
#define LINK_IF_TX_LMP 0x00400000
#define LINK_IF_RX_LMP 0x00200000
#define LINK_IF_RX_DET 0x00100000
#define LINK_IF_LOOPBACK 0x00080000
#define LINK_IF_COMPLIANCE 0x00040000
#define LINK_IF_HPBUF_FULL 0x00020000
#define LINK_IF_HPBUF_EMPTY 0x00010000
#define LINK_IF_HOT_RST 0x00008000
#define LINK_IF_WAKEUP 0x00004000
#define LINK_IF_WARM_RST 0x00002000
#define LINK_IF_UX_EXIT 0x00001000
#define LINK_IF_TXEQ 0x00000800
#define LINK_IF_TERM_PRES 0x00000400
#define LINK_IF_UX_REJ 0x00000200
#define LINK_IF_U3_WK_TOUT 0x00000100
#define LINK_IF_GO_U0 0x00000080
#define LINK_IF_GO_U1 0x00000040
#define LINK_IF_GO_U2 0x00000020
#define LINK_IF_GO_U3 0x00000010
#define LINK_IF_DISABLE 0x00000008
#define LINK_IF_INACTIVE 0x00000004
#define LINK_IF_RECOVERY 0x00000002
#define LINK_IF_READY 0x00000001
/* LINK_STATUS */
#define LINK_HPBUF_EMPTY 0x80000000
#define LINK_HPBUF_FULL 0x40000000
#define LINK_HPBUF_IDLE 0x20000000
#define LINK_U3_SLEEP_ALLOW 0x00400000
#define LINK_U2_SLEEP_ALLOW 0x00200000
#define LINK_RXDET_SLEEP_ALLOW 0x00100000
#define LINK_WAKUP 0x00080000
#define LINK_RX_LFPS 0x00040000
#define LINK_RX_DETECT 0x00020000
#define LINK_RX_UX_EXIT_REQ 0x00010000
#define LINK_STATE_MASK 0x00000F00
#define LINK_STATE_U0 0x00000000
#define LINK_STATE_U1 0x00000100
#define LINK_STATE_U2 0x00000200
#define LINK_STATE_U3 0x00000300
#define LINK_STATE_DISABLE 0x00000400
#define LINK_STATE_RXDET 0x00000500
#define LINK_STATE_INACTIVE 0x00000600
#define LINK_STATE_POLLING 0x00000700
#define LINK_STATE_RECOVERY 0x00000800
#define LINK_STATE_HOTRST 0x00000900
#define LINK_STATE_COMPLIANCE 0x00000A00
#define LINK_STATE_LOOPBACK 0x00000B00
#define LINK_TXEQ 0x00000040
#define LINK_PD_MODE_ST_MASK 0x00000030
#define LINK_PD_MODE_ST_P0 0x00000000
#define LINK_PD_MODE_ST_P1 0x00000010
#define LINK_PD_MODE_ST_P2 0x00000020
#define LINK_PD_MODE_ST_P3 0x00000030
#define LINK_READY 0x00000008
#define LINK_BUSY 0x00000004
#define LINK_RX_WARM_RST 0x00000002
#define LINK_RX_TERM_PRES 0x00000001
/* LINK_LPM_CR */
#define LINK_LPM_TERM_PRESENT 0x00000800
#define LINK_LPM_TERM_CHG 0x00000400
#define LINK_LPM_EN 0x00000200
#define LINK_LPM_RST 0x00000100
/* LINK_PORT_CAP */
#define LINK_LMP_RX_CAP_VLD 0x80000000
#define LINK_LMP_TX_CAP_VLD 0x40000000
#define LINK_SPEED_MASK 0x3F000000
#define LINK_PORT_CAP_MASK 0x00FFFFFF
/* USB_CONTROL */
#define USBSS_DEV_ADDR_MASK 0x7F000000
#define USBSS_UIE_FIFO_RXOV 0x00800000
#define USBSS_UIE_FIFO_TXOV 0x00400000
#define USBSS_UIE_ITP 0x00100000
#define USBSS_UIE_RX_PING 0x00080000
#define USBSS_UDIE_STATUS 0x00040000
#define USBSS_UHIE_NOTIF 0x00040000
#define USBSS_UDIE_SETUP 0x00020000
#define USBSS_UHIE_ERDY 0x00020000
#define USBSS_UIE_TRANSFER 0x00010000
#define USBSS_CHAIN_CONFLICT 0x00008000
#define USBSS_TX_ERDY_MODE 0x00004000
#define USBSS_HP_PEND_MASK 0x00000300
#define USBSS_HP_PENDING 0x00000200
#define USBSS_HOST_MODE 0x00000080
#define USBSS_ITP_EN 0x00000040
#define USBSS_SETUP_FLOW 0x00000020
#define USBSS_DIR_ABORT 0x00000010
#define USBSS_DMA_MODE 0x00000008
#define USBSS_FORCE_RST 0x00000004
#define USBSS_USB_CLR_ALL 0x00000002
#define USBSS_DMA_EN 0x00000001
/* USB_STATUS */
#define USBSS_HRX_RES_MASK 0xC0000000
#define USBSS_HTX_RES_MASK 0x00C00000
#define USBSS_EP_DIR_MASK 0x00001000
#define USBSS_EP_ID_MASK 0x00000700
#define USBSS_UIF_FIFO_RXOV 0x00000080
#define USBSS_UIF_FIFO_TXOV 0x00000040
#define USBSS_UIF_ITP 0x00000010
#define USBSS_UIF_RX_PING 0x00000008
#define USBSS_UDIF_STATUS 0x00000004
#define USBSS_UHIF_NOTIF 0x00000004
#define USBSS_UDIF_SETUP 0x00000002
#define USBSS_UHIF_ERDY 0x00000002
#define USBSS_UIF_TRANSFER 0x00000001
/* USB_ITP */
#define USBSS_ITP_INTERVAL_MASK 0x00003FFF
/* USB_ITP_ADJ */
#define USBSS_ITP_DELTA 0x001FFF00
#define USBSS_ITP_DELAYED 0x00000080
#define USBSS_ITP_ADJ_CR_MASK 0x0000007F
/* UEP_TX_EN */
#define USBSS_EP15_TX_EN 0x00008000
#define USBSS_EP14_TX_EN 0x00004000
#define USBSS_EP13_TX_EN 0x00002000
#define USBSS_EP12_TX_EN 0x00001000
#define USBSS_EP11_TX_EN 0x00000800
#define USBSS_EP10_TX_EN 0x00000400
#define USBSS_EP9_TX_EN 0x00000200
#define USBSS_EP8_TX_EN 0x00000100
#define USBSS_EP7_TX_EN 0x00000080
#define USBSS_EP6_TX_EN 0x00000040
#define USBSS_EP5_TX_EN 0x00000020
#define USBSS_EP4_TX_EN 0x00000010
#define USBSS_EP3_TX_EN 0x00000008
#define USBSS_EP2_TX_EN 0x00000004
#define USBSS_EP1_TX_EN 0x00000002
#define USBSS_UH_TX_EN 0x00000002
/* UEP_RX_EN */
#define USBSS_EP15_RX_EN 0x00008000
#define USBSS_EP14_RX_EN 0x00004000
#define USBSS_EP13_RX_EN 0x00002000
#define USBSS_EP12_RX_EN 0x00001000
#define USBSS_EP11_RX_EN 0x00000800
#define USBSS_EP10_RX_EN 0x00000400
#define USBSS_EP9_RX_EN 0x00000200
#define USBSS_EP8_RX_EN 0x00000100
#define USBSS_EP7_RX_EN 0x00000080
#define USBSS_EP6_RX_EN 0x00000040
#define USBSS_EP5_RX_EN 0x00000020
#define USBSS_EP4_RX_EN 0x00000010
#define USBSS_EP3_RX_EN 0x00000008
#define USBSS_EP2_RX_EN 0x00000004
#define USBSS_EP1_RX_EN 0x00000002
#define USBSS_UH_RX_EN 0x00000002
/* UEP0_TX_CTRL */
#define USBSS_UIF_EP0_TX_ACT 0x80000000
#define USBSS_EP0_TX_FLOW 0x02000000
#define USBSS_EP0_TX_PP 0x01000000
#define USBSS_EP0_TX_ERDY 0x00800000
#define USBSS_EP0_TX_RES 0x00600000
#define USBSS_EP0_TX_NRDY 0x00000000
#define USBSS_EP0_TX_DPH 0x00200000
#define USBSS_EP0_TX_STALL 0x00400000
#define USBSS_EP0_TX_SEQ_MASK 0x001F0000
#define USBSS_NUMP_1 0x00010000
#define USBSS_NUMP_2 0x00020000
#define USBSS_NUMP_3 0x00030000
#define USBSS_NUMP_4 0x00040000
#define USBSS_NUMP_5 0x00050000
#define USBSS_NUMP_6 0x00060000
#define USBSS_NUMP_7 0x00070000
#define USBSS_NUMP_8 0x00080000
#define USBSS_NUMP_9 0x00090000
#define USBSS_NUMP_10 0x000A0000
#define USBSS_NUMP_11 0x000B0000
#define USBSS_NUMP_12 0x000C0000
#define USBSS_NUMP_13 0x000D0000
#define USBSS_NUMP_14 0x000E0000
#define USBSS_NUMP_15 0x000F0000
#define USBSS_NUMP_16 0x00100000
#define USBSS_EP0_TX_LEN_MASK 0x000007FF
/* UEP0_RX_CTRL */
#define USBSS_UIF_EP0_RX_ACT 0x80000000
#define USBSS_EP0_RX_PP 0x01000000
#define USBSS_EP0_RX_ERDY 0x00800000
#define USBSS_EP0_RX_RES 0x00600000
#define USBSS_EP0_RX_NRDY 0x00000000
#define USBSS_EP0_RX_ACK 0x00200000
#define USBSS_EP0_RX_STALL 0x00400000
#define USBSS_EP0_RX_SEQ_MASK 0x001F0000
#define USBSS_EP0_RX_LEN_MASK 0x000007FF
/* R8_UEPn_TX_CFG */
#define USBSS_EP_TX_CHAIN_AUTO 0x80
#define USBSS_EP_TX_FIFO_MODE 0x40
#define USBSS_EP_TX_FIFO_CFG 0x20
#define USBSS_EP_TX_EOB_MODE 0x08
#define USBSS_EP_TX_ERDY_AUTO 0x04
#define USBSS_EP_TX_SEQ_AUTO 0x02
#define USBSS_EP_TX_ISO_MODE 0x01
/* R8_UEPn_TX_CR */
#define USBSS_EP_TX_HALT 0x80
#define USBSS_EP_TX_CLR 0x40
#define USBSS_EP_TX_CHAIN_CLR 0x20
#define USBSS_EP_TX_ERDY_NUMP_MASK 0x1F
/* R8_UEPn_TX_SEQ */
#define USBSS_EP_TX_SEQ_NUM_MASK 0x1F
/* R8_UEPn_TX_ST */
#define USBSS_EP_TX_INT_FLAG 0x80
#define USBSS_EP_TX_FC_ST 0x40
#define USBSS_EP_TX_ERDY_REQ 0x20
#define USBSS_EP_TX_CHAIN_RES 0x10
#define USBSS_EP_TX_CHAIN_EN_MASK 0x0F
/* R8_UEPn_TX_CHAIN_CR */
#define USBSS_EP_TX_CUR_USE 0xC0
#define USBSS_EP_TX_CUR_CFG 0x30
#define USBSS_EP_TX_FORCE_RET 0x04
#define USBSS_EP_TX_RET_SEL 0x03
/* R8_UEPn_TX_CHAIN_ST */
#define USBSS_EP_TX_CHAIN_EN 0x80
#define USBSS_EP_TX_CHAIN_IF 0x40
#define USBSS_EP_TX_EOB_LPF 0x20
#define USBSS_EP_TX_NUMP_EMPTY 0x08
#define USBSS_EP_TX_DPH_PP 0x04
#define USBSS_EP_TX_CHAIN_NO_MASK 0x03
/* R8_UEPn_RX_CFG */
#define USBSS_EP_RX_CHAIN_AUTO 0x80
#define USBSS_EP_RX_FIFO_MODE 0x40
#define USBSS_EP_RX_FIFO_CFG 0x20
#define USBSS_EP_RX_EOB_MODE 0x08
#define USBSS_EP_RX_ERDY_AUTO 0x04
#define USBSS_EP_RX_SEQ_AUTO 0x02
#define USBSS_EP_RX_ISO_MODE 0x01
/* R8_UEPn_RX_CR */
#define USBSS_EP_RX_HALT 0x80
#define USBSS_EP_RX_CLR 0x40
#define USBSS_EP_RX_CHAIN_CLR 0x20
#define USBSS_EP_RX_ERDY_NUMP_MASK 0x1F
/* R8_UEPn_RX_SEQ */
#define USBSS_EP_RX_SEQ_NUM_MASK 0x1F
/* R8_UEPn_RX_ST */
#define USBSS_EP_RX_INT_FLAG 0x80
#define USBSS_EP_RX_FC_ST 0x40
#define USBSS_EP_RX_ERDY_REQ 0x20
#define USBSS_EP_RX_CHAIN_RES 0x10
#define USBSS_EP_RX_CHAIN_EN_MASK 0x0F
/* R8_UEPn_RX_CHAIN_CR */
#define USBSS_EP_RX_CUR_USE 0xC0
#define USBSS_EP_RX_CUR_CFG 0x30
#define USBSS_EP_RX_FORCE_RET 0x04
#define USBSS_EP_RX_RET_SEL 0x03
/* R8_UEPn_RX_CHAIN_ST */
#define USBSS_EP_RX_CHAIN_EN 0x80
#define USBSS_EP_RX_CHAIN_IF 0x40
#define USBSS_EP_RX_LPF_FLAG 0x20
#define USBSS_EP_RX_ISO_PKT_ERR 0x10
#define USBSS_EP_RX_NUMP_EMPTY 0x08
#define USBSS_EP_RX_DPH_PP 0x04
#define USBSS_EP_RX_CHAIN_NO_MASK 0x03
/* R32_UH_TX_CTRL */
#define USBSS_UH_TX_ACT 0x80000000
#define USBSS_UH_TX_ISO 0x40000000
#define USBSS_UH_TX_SETUP 0x20000000
#define USBSS_UH_TX_STATUS 0x10000000
#define USBSS_UH_TX_LPF 0x00800000
#define USBSS_UH_TX_RES 0x00600000
#define USBSS_UH_TX_NRDY 0x00000000
#define USBSS_UH_TX_ACK 0x00200000
#define USBSS_UH_TX_STALL 0x00400000
#define USBSS_UH_TX_SEQ 0x001F0000
#define USBSS_UH_TX_EP 0x0000F000
#define USBSS_UH_TX_LEN_MASK 0x000007FF
/* R32_UH_RX_CTRL */
#define USBSS_UH_RX_ACT 0x80000000
#define USBSS_UH_RX_ISO 0x40000000
#define USBSS_UH_RX_NUMP 0x1F000000
#define USBSS_UH_RX_RES 0x00600000
#define USBSS_UH_RX_NRDY 0x00000000
#define USBSS_UH_RX_ACK 0x00200000
#define USBSS_UH_RX_STALL 0x00400000
#define USBSS_UH_RX_SEQ 0x001F0000
#define USBSS_UH_RX_EP 0x0000F000
#define USBSS_UH_RX_LEN_MASK 0x000007FF
/* R32_HOST_STATUS */
#define USBSS_UH_ITP_PRESAGE 0x000C0000
#define USBSS_UH_RX_ISO_PKT_ERR 0x00020000
#define USBSS_UH_RX_EOB_LPF 0x00010000
#define USBSS_UH_RX_ERDY_DIR 0x00008000
#define USBSS_UH_RX_ERDY_NUMP 0x00001F00
#define USBSS_UH_RX_ERDY_EP 0x000000F0
/*******************************************************************************/
/* USBHS Related Register Macro Definition */
/* R8_USB_CTRL */
#define USBHS_UD_LPM_EN 0x80
#define USBHS_UD_DEV_EN 0x20
#define USBHS_UD_DMA_EN 0x10
#define USBHS_UD_PHY_SUSPENDM 0x08
#define USBHS_UD_CLR_ALL 0x04
#define USBHS_UD_RST_SIE 0x02
#define USBHS_UD_RST_LINK 0x01
/* R8_USB_BASE_MODE */
#define USBHS_UD_SPEED_FULL 0x00
#define USBHS_UD_SPEED_HIGH 0x01
#define USBHS_UD_SPEED_LOW 0x02
#define USBHS_UD_SPEED_TYPE 0x03
/* R8_USB_INT_EN */
#define USBHS_UDIE_FIFO_OVER 0x80
#define USBHS_UDIE_LINK_RDY 0x40
#define USBHS_UDIE_SOF_ACT 0x20
#define USBHS_UDIE_TRANSFER 0x10
#define USBHS_UDIE_LPM_ACT 0x08
#define USBHS_UDIE_BUS_SLEEP 0x04
#define USBHS_UDIE_SUSPEND 0x02
#define USBHS_UDIE_BUS_RST 0x01
/* R8_USB_DEV_AD */
#define USBHS_UD_DEV_ADDR 0x7F
/* R8_USB_WAKE_CTRL */
#define USBHS_UD_REMOTE_WKUP 0x01
/* R8_USB_TEST_MODE */
#define USBHS_UD_TEST_EN 0x80
#define USBHS_UD_TEST_SE0NAK 0x08
#define USBHS_UD_TEST_PKT 0x04
#define USBHS_UD_TEST_K 0x02
#define USBHS_UD_TEST_J 0x01
/* R16_USB_LPM_DATA */
#define USBHS_UD_LPM_BUSY 0x8000
#define USBHS_UD_LPM_DATA 0x07FF
/* R8_USB_INT_FG */
#define USBHS_UDIF_FIFO_OV 0x80
#define USBHS_UDIF_LINK_RDY 0x40
#define USBHS_UDIF_RX_SOF 0x20
#define USBHS_UDIF_TRANSFER 0x10
#define USBHS_UDIF_RTX_ACT 0x10
#define USBHS_UDIF_LPM_ACT 0x08
#define USBHS_UDIF_BUS_SLEEP 0x04
#define USBHS_UDIF_SUSPEND 0x02
#define USBHS_UDIF_BUS_RST 0x01
/* R8_USB_INT_ST */
#define USBHS_UDIS_EP_DIR 0x10
#define USBHS_UDIS_EP_ID_MASK 0x07
/* R8_USB_MIS_ST */
#define USBHS_UDMS_HS_MOD 0x80
#define USBHS_UDMS_SUSP_REQ 0x10
#define USBHS_UDMS_SIE_FREE 0x08
#define USBHS_UDMS_SLEEP 0x04
#define USBHS_UDMS_SUSPEND 0x02
#define USBHS_UDMS_READY 0x01
/* R16_USB_FRAME_NO */
#define USBHS_UD_MFRAME_NO 0xE000
#define USBHS_UD_FRAME_NO 0x07FF
/* R16_USB_BUS */
#define USBHS_USB_DM_ST 0x08
#define USBHS_USB_DP_ST 0x04
#define USB_WAKEUP 0x01
/* R16_UEP_TX_EN */
#define USBHS_UEP0_T_EN 0x0001
#define USBHS_UEP1_T_EN 0x0002
#define USBHS_UEP2_T_EN 0x0004
#define USBHS_UEP3_T_EN 0x0008
#define USBHS_UEP4_T_EN 0x0010
#define USBHS_UEP5_T_EN 0x0020
#define USBHS_UEP6_T_EN 0x0040
#define USBHS_UEP7_T_EN 0x0080
#define USBHS_UEP8_T_EN 0x0100
#define USBHS_UEP9_T_EN 0x0200
#define USBHS_UEP10_T_EN 0x0400
#define USBHS_UEP11_T_EN 0x0800
#define USBHS_UEP12_T_EN 0x1000
#define USBHS_UEP13_T_EN 0x2000
#define USBHS_UEP14_T_EN 0x4000
#define USBHS_UEP15_T_EN 0x8000
/* R16_UEP_RX_EN */
#define USBHS_UEP0_R_EN 0x0001
#define USBHS_UEP1_R_EN 0x0002
#define USBHS_UEP2_R_EN 0x0004
#define USBHS_UEP3_R_EN 0x0008
#define USBHS_UEP4_R_EN 0x0010
#define USBHS_UEP5_R_EN 0x0020
#define USBHS_UEP6_R_EN 0x0040
#define USBHS_UEP7_R_EN 0x0080
#define USBHS_UEP8_R_EN 0x0100
#define USBHS_UEP9_R_EN 0x0200
#define USBHS_UEP10_R_EN 0x0400
#define USBHS_UEP11_R_EN 0x0800
#define USBHS_UEP12_R_EN 0x1000
#define USBHS_UEP13_R_EN 0x2000
#define USBHS_UEP14_R_EN 0x4000
#define USBHS_UEP15_R_EN 0x8000
/* R16_UEP_T_TOG_AUTO */
#define USBHS_UEP_T_TOG_AUTO 0xFF
/* R16_UEP_R_TOG_AUTO */
#define USBHS_UEP_R_TOG_AUTO 0xFF
/* R8_UEP_T_BURST */
#define USBHS_UEP_T_BURST_EN 0xFF
/* R8_UEP_T_BURST_MODE */
#define USBHS_UEP_T_BURST_MODE 0xFF
/* R8_UEP_R_BURST */
#define USBHS_UEP_R_BURST_EN 0xFF
/* R8_UEP_R_RES_MODE */
#define USBHS_UEP_R_RES_MODE 0xFF
/* R32_UEP_AF_MODE */
#define USBHS_UEP_T_AF 0xFE
/* R32_UEP0_DMA */
#define UEPn_DMA 0xFFFFFF
/* R32_UEPn_RX_DMA */
#define UEPn_RX_DMA 0xFFFFFF
/* R32_UEPn_TX_DMA */
#define UEPn_TX_DMA 0xFFFFFF
/* R32_UEPn_MAX_LEN */
#define USBHS_UEP0_MAX_LEN 0x007F
#define USBHS_UEPn_MAX_LEN 0x07FF
/* R16_UEPn_RX_LEN */
#define USBHS_UEP0_RX_LEN 0x007F
/* R16_UEPn_RX_LEN */
#define USBHS_UEPn_RX_LEN 0xFFFF
/* R16_UEPn_R_SIZE */
#define USBHS_UEPn_R_SIZE 0xFFFF
/* R16_UEP0_T_LEN */
#define USBHS_UEP0_T_LEN 0x7F
/**R16_UEPn_T_LEN**/
#define USBHS_UEPn_T_LEN 0xFFFF
/**R8_UEPn_TX_CTRL**/
#define USBHS_UEP_T_DONE 0x80
#define USBHS_UEP_T_NAK_ACT 0x40
#define USBHS_UEP_T_TOG_MASK 0x0C
#define USBHS_UEP_T_TOG_MDATA 0x0C
#define USBHS_UEP_T_TOG_DATA2 0x08
#define USBHS_UEP_T_TOG_DATA1 0x04
#define USBHS_UEP_T_TOG_DATA0 0x00
#define USBHS_UEP_T_RES_MASK 0x03
#define USBHS_UEP_T_RES_ACK 0x02
#define USBHS_UEP_T_RES_STALL 0x01
#define USBHS_UEP_T_RES_NAK 0x00
/**R8_UEP0_RX_CTRL**/
/**R8_UEPn_RX_CTRL**/
#define USBHS_UEP_R_DONE 0x80
#define USBHS_UEP_R_NAK_ACT 0x40
#define USBHS_UEP_R_NAK_TOG 0x20
#define USBHS_UEP_R_TOG_MATCH 0x10
#define USBHS_UEP_R_SETUP_IS 0x08
#define USBHS_UEP_R_TOG_MASK 0x0C
#define USBHS_UEP_R_TOG_MDATA 0x0C
#define USBHS_UEP_R_TOG_DATA2 0x08
#define USBHS_UEP_R_TOG_DATA1 0x04
#define USBHS_UEP_R_TOG_DATA0 0x00
#define USBHS_UEP_R_RES_MASK 0x03
#define USBHS_UEP_R_RES_ACK 0x02
#define USBHS_UEP_R_RES_STALL 0x01
#define USBHS_UEP_R_RES_NAK 0x00
/* R16_UEP_T_ISO */
#define USBHS_UEP1_T_FIFO_EN 0x0200
#define USBHS_UEP2_T_FIFO_EN 0x0400
#define USBHS_UEP3_T_FIFO_EN 0x0800
#define USBHS_UEP4_T_FIFO_EN 0x1000
#define USBHS_UEP5_T_FIFO_EN 0x2000
#define USBHS_UEP6_T_FIFO_EN 0x4000
#define USBHS_UEP7_T_FIFO_EN 0x8000
#define USBHS_UEP1_T_ISO_EN 0x0002
#define USBHS_UEP2_T_ISO_EN 0x0004
#define USBHS_UEP3_T_ISO_EN 0x0008
#define USBHS_UEP4_T_ISO_EN 0x0010
#define USBHS_UEP5_T_ISO_EN 0x0020
#define USBHS_UEP6_T_ISO_EN 0x0040
#define USBHS_UEP7_T_ISO_EN 0x0080
/* R16_UEP_R_ISO */
#define USBHS_UEP1_R_FIFO_EN 0x0200
#define USBHS_UEP2_R_FIFO_EN 0x0400
#define USBHS_UEP3_R_FIFO_EN 0x0800
#define USBHS_UEP4_R_FIFO_EN 0x1000
#define USBHS_UEP5_R_FIFO_EN 0x2000
#define USBHS_UEP6_R_FIFO_EN 0x4000
#define USBHS_UEP7_R_FIFO_EN 0x8000
#define USBHS_UEP1_R_ISO_EN 0x0002
#define USBHS_UEP2_R_ISO_EN 0x0004
#define USBHS_UEP3_R_ISO_EN 0x0008
#define USBHS_UEP4_R_ISO_EN 0x0010
#define USBHS_UEP5_R_ISO_EN 0x0020
#define USBHS_UEP6_R_ISO_EN 0x0040
#define USBHS_UEP7_R_ISO_EN 0x0080
/* R32_UEPn_RX_FIFO */
#define USBHS_UEP_RX_FIFO_E 0xFF00
#define USBHS_UEP_RX_FIFO_S 0x00FF
/* R32_UEPn_TX_FIFO */
#define USBHS_UEP_TX_FIFO_E 0xFF00
#define USBHS_UEP_TX_FIFO_S 0x00FF
/* USB high speed host register */
/* R8_UH_CFG */
#define USBHS_UH_LPM_EN 0x80
#define USBHS_UH_FORCE_FS 0x40
#define USBHS_UH_SOF_EN 0x20
#define USBHS_UH_DMA_EN 0x10
#define USBHS_UH_PHY_SUSPENDM 0x08
#define USBHS_UH_CLR_ALL 0x04
#define USBHS_RST_SIE 0x02
#define USBHS_RST_LINK 0x01
/* R8_UH_INT_EN */
#define USBHS_UHIE_FIFO_OVER 0x80
#define USBHS_UHIE_TX_HALT 0x40
#define USBHS_UHIE_SOF_ACT 0x20
#define USBHS_UHIE_TRANSFER 0x10
#define USBHS_UHIE_RESUME_ACT 0x08
#define USBHS_UHIE_WKUP_ACT 0x04
/* R8_UH_DEV_AD */
#define USBHS_UH_DEV_ADDR 0x7F
/* R32_UH_CONTROL */
#define USBHS_UH_RX_NO_RES 0x800000
#define USBHS_UH_TX_NO_RES 0x400000
#define USBHS_UH_RX_NO_DATA 0x200000
#define USBHS_UH_TX_NO_DATA 0x100000
#define USBHS_UH_PRE_PID_EN 0x080000
#define USBHS_UH_SPLIT_VALID 0x040000
#define USBHS_UH_LPM_VALID 0x020000
#define USBHS_UH_HOST_ACTION 0x010000
#define USBHS_UH_BUF_MODE 0x0400
#define USBHS_UH_T_TOG_MASK 0x0300
#define USBHS_UH_T_TOG_MDATA 0x0300
#define USBHS_UH_T_TOG_DATA2 0x0200
#define USBHS_UH_T_TOG_DATA1 0x0100
#define USBHS_UH_T_TOG_DATA0 0x0000
#define USBHS_UH_T_ENDP_MASK 0xF0
#define USBHS_UH_T_TOKEN_MASK 0x0F
/* R8_UH_INT_FLAG */
#define USBHS_UHIF_FIFO_OVER 0x80
#define USBHS_UHIF_TX_HALT 0x40
#define USBHS_UHIF_SOF_ACT 0x20
#define USBHS_UHIF_TRANSFER 0x10
#define USBHS_UHIF_RESUME_ACT 0x08
#define USBHS_UHIF_WKUP_ACT 0x04
/* R8_UH_INT_ST */
#define USBHS_UHIF_PORT_RX_RESUME 0x10
#define USBHS_UH_R_TOKEN_MASK 0x0F
/* R8_UH_MIS_ST */
#define USBHS_UHMS_BUS_SE0 0x80
#define USBHS_UHMS_BUS_J 0x40
#define USBHS_UHMS_LINESTATE 0x30
#define USBHS_UHMS_USB_WAKEUP 0x08
#define USBHS_UHMS_SOF_ACT 0x04
#define USBHS_UHMS_SOF_PRE 0x02
#define USBHS_UHMS_SOF_FREE 0x01
/* R32_UH_LPM_DATA */
#define USBHS_UH_LPM_DATA 0x07FF
/* R32_UH_SPLIT_DATA */
#define USBHS_UH_SPLIT_DATA 0x07FFFF
/* R32_UH_FRAME */
#define USBHS_UH_SOF_CNT_CLR 0x02000000
#define USBHS_UH_SOF_CNT_EN 0x01000000
#define USBHS_UH_MFRAME_NO 0x070000
#define USBHS_UH_FRAME_NO 0x07FF
/* R32_UH_TX_LEN */
#define USBHS_UH_TX_LEN 0x07FF
/* R32_UH_RX_LEN */
#define USBHS_UH_RX_LEN 0x07FF
/* R32_UH_RX_MAX_LEN */
#define USBHS_UH_RX_MAX_LEN 0x07FF
/* R32_UH_RX_DMA */
#define USBHS_R32_UH_RX_DMA 0x01FFFF
/* R32_UH_TX_DMA */
#define USBHS_R32_UH_TX_DMA 0x01FFFF
/* R32_UH_PORT_CTRL */
#define USBHS_UH_BUS_RST_LONG 0x010000
#define USBHS_UH_PORT_SLEEP_BESL 0xF000
#define USBHS_UH_CLR_PORT_SLEEP 0x0100
#define USBHS_UH_CLR_PORT_CONNECT 0x20
#define USBHS_UH_CLR_PORT_EN 0x10
#define USBHS_UH_SET_PORT_SLEEP 0x08
#define USBHS_UH_CLR_PORT_SUSP 0x04
#define USBHS_UH_SET_PORT_SUSP 0x02
#define USBHS_UH_SET_PORT_RESET 0x01
/* R8_UH_PORT_CFG */
#define USBHS_UH_PD_EN 0x80
#define USBHS_UH_HOST_EN 0x01
/* R8_UH_PORT_INT_EN */
#define USBHS_UHIE_PORT_SLP 0x20
#define USBHS_UHIE_PORT_RESET 0x10
#define USBHS_UHIE_PORT_SUSP 0x04
#define USBHS_UHIE_PORT_EN 0x02
#define USBHS_UHIE_PORT_CONNECT 0x01
/* R8_UH_PORT_TEST_CT */
#define USBHS_UH_TEST_SE0_NAK 0x10
#define USBHS_UH_TEST_PACKET 0x08
#define USBHS_UH_TEST_FORCE_EN 0x04
#define USBHS_UH_TEST_K 0x02
#define USBHS_UH_TEST_J 0x01
/* R16_UH_PORT_ST */
#define USBHS_UHIS_PORT_TEST 0x0800
#define USBHS_UHIS_PORT_SPEED_MASK 0x0600
#define USBHS_UHIS_PORT_HS 0x0400
#define USBHS_UHIS_PORT_LS 0x0200
#define USBHS_UHIS_PORT_FS 0x0000
#define USBHS_UHIS_PORT_SLP 0x20
#define USBHS_UHIS_PORT_RST 0x10
#define USBHS_UHIS_PORT_SUSP 0x04
#define USBHS_UHIS_PORT_EN 0x02
#define USBHS_UHIS_PORT_CONNECT 0x01
/* R8_UH_PORT_CHG */
#define USBHS_UHIF_PORT_SLP 0x20
#define USBHS_UHIF_PORT_RESET 0x10
#define USBHS_UHIF_PORT_SUSP 0x04
#define USBHS_UHIF_PORT_EN 0x02
#define USBHS_UHIF_PORT_CONNECT 0x01
/* R32_UH_BC_CTRL */
#define UDM_VSRC_ACT 0x0400
#define UDM_BC_VSRC 0x0200
#define UDP_BC_VSRC 0x0100
#define BC_AUTO_MODE 0x40
#define UDM_BC_CMPE 0x20
#define UDP_BC_CMPE 0x10
#define UDM_BC_CMPO 0x02
#define UDP_BC_CMPO 0x01
/*******************************************************************************/
/* USBFS Related Register Macro Definition */
/* R8_USB_CTRL */
#define USBFS_UC_HOST_MODE 0x80
#define USBFS_UC_LOW_SPEED 0x40
#define USBFS_UC_DEV_PU_EN 0x20
#define USBFS_UC_SYS_CTRL_MASK 0x30
#define USBFS_UC_SYS_CTRL0 0x00
#define USBFS_UC_SYS_CTRL1 0x10
#define USBFS_UC_SYS_CTRL2 0x20
#define USBFS_UC_SYS_CTRL3 0x30
#define USBFS_UC_INT_BUSY 0x08
#define USBFS_UC_RESET_SIE 0x04
#define USBFS_UC_CLR_ALL 0x02
#define USBFS_UC_DMA_EN 0x01
/* R8_USB_INT_EN */
#define USBFS_UIE_DEV_SOF 0x80
#define USBFS_UIE_DEV_NAK 0x40
#define USBFS_U_1WIRE_MODE 0x20
#define USBFS_UIE_FIFO_OV 0x10
#define USBFS_UIE_HST_SOF 0x08
#define USBFS_UIE_SUSPEND 0x04
#define USBFS_UIE_TRANSFER 0x02
#define USBFS_UIE_DETECT 0x01
#define USBFS_UIE_BUS_RST 0x01
/* R8_USB_DEV_AD */
#define USBFS_UDA_GP_BIT 0x80
#define USBFS_USB_ADDR_MASK 0x7F
/* R8_USB_MIS_ST */
#define USBFS_UMS_SOF_PRES 0x80
#define USBFS_UMS_SOF_ACT 0x40
#define USBFS_UMS_SIE_FREE 0x20
#define USBFS_UMS_R_FIFO_RDY 0x10
#define USBFS_UMS_BUS_RESET 0x08
#define USBFS_UMS_SUSPEND 0x04
#define USBFS_UMS_DM_LEVEL 0x02
#define USBFS_UMS_DEV_ATTACH 0x01
/* R8_USB_INT_FG */
#define USBFS_U_IS_NAK 0x80 // RO, indicate current USB transfer is NAK received
#define USBFS_U_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK
#define USBFS_U_SIE_FREE 0x20 // RO, indicate USB SIE free status
#define USBFS_UIF_FIFO_OV 0x10 // FIFO overflow interrupt flag for USB, direct bit address clear or write 1 to clear
#define USBFS_UIF_HST_SOF 0x08 // host SOF timer interrupt flag for USB host, direct bit address clear or write 1 to clear
#define USBFS_UIF_SUSPEND 0x04 // USB suspend or resume event interrupt flag, direct bit address clear or write 1 to clear
#define USBFS_UIF_TRANSFER 0x02 // USB transfer completion interrupt flag, direct bit address clear or write 1 to clear
#define USBFS_UIF_DETECT 0x01 // device detected event interrupt flag for USB host mode, direct bit address clear or write 1 to clear
#define USBFS_UIF_BUS_RST 0x01 // bus reset event interrupt flag for USB device mode, direct bit address clear or write 1 to clear
/* R8_USB_INT_ST */
#define USBFS_UIS_IS_NAK 0x80 // RO, indicate current USB transfer is NAK received for USB device mode
#define USBFS_UIS_TOG_OK 0x40 // RO, indicate current USB transfer toggle is OK
#define USBFS_UIS_TOKEN_MASK 0x30 // RO, bit mask of current token PID code received for USB device mode
#define USBFS_UIS_TOKEN_OUT 0x00
#define USBFS_UIS_TOKEN_SOF 0x10
#define USBFS_UIS_TOKEN_IN 0x20
#define USBFS_UIS_TOKEN_SETUP 0x30
// bUIS_TOKEN1 & bUIS_TOKEN0: current token PID code received for USB device mode
// 00: OUT token PID received
// 01: SOF token PID received
// 10: IN token PID received
// 11: SETUP token PID received
#define USBFS_UIS_ENDP_MASK 0x0F // RO, bit mask of current transfer endpoint number for USB device mode
#define USBFS_UIS_H_RES_MASK 0x0F // RO, bit mask of current transfer handshake response for USB host mode: 0000=no response, time out from device, others=handshake response PID received
/* R32_USB_OTG_CR */
#define USBFS_CR_SESS_VTH 0x20
#define USBFS_CR_VBUS_VTH 0x10
#define USBFS_CR_OTG_EN 0x08
#define USBFS_CR_IDPU 0x04
#define USBFS_CR_CHARGE_VBUS 0x02
#define USBFS_CR_DISCHAR_VBUS 0x01
/* R32_USB_OTG_SR */
#define USBFS_SR_ID_DIG 0x08
#define USBFS_SR_SESS_END 0x04
#define USBFS_SR_SESS_VLD 0x02
#define USBFS_SR_VBUS_VLD 0x01
/* R8_UDEV_CTRL */
#define USBFS_UD_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable
#define USBFS_UD_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level
#define USBFS_UD_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level
#define USBFS_UD_LOW_SPEED 0x04 // enable USB physical port low speed: 0=full speed, 1=low speed
#define USBFS_UD_GP_BIT 0x02 // general purpose bit
#define USBFS_UD_PORT_EN 0x01 // enable USB physical port I/O: 0=disable, 1=enable
/* R8_UEP4_1_MOD */
#define USBFS_UEP1_RX_EN 0x80 // enable USB endpoint 1 receiving (OUT)
#define USBFS_UEP1_TX_EN 0x40 // enable USB endpoint 1 transmittal (IN)
#define USBFS_UEP1_BUF_MOD 0x10 // buffer mode of USB endpoint 1
#define USBFS_UEP4_RX_EN 0x08 // enable USB endpoint 4 receiving (OUT)
#define USBFS_UEP4_TX_EN 0x04 // enable USB endpoint 4 transmittal (IN)
#define USBFS_UEP4_BUF_MOD 0x01
/* R8_UEP2_3_MOD */
#define USBFS_UEP3_RX_EN 0x80 // enable USB endpoint 3 receiving (OUT)
#define USBFS_UEP3_TX_EN 0x40 // enable USB endpoint 3 transmittal (IN)
#define USBFS_UEP3_BUF_MOD 0x10 // buffer mode of USB endpoint 3
#define USBFS_UEP2_RX_EN 0x08 // enable USB endpoint 2 receiving (OUT)
#define USBFS_UEP2_TX_EN 0x04 // enable USB endpoint 2 transmittal (IN)
#define USBFS_UEP2_BUF_MOD 0x01 // buffer mode of USB endpoint 2
/* R8_UEP5_6_MOD */
#define USBFS_UEP6_RX_EN 0x80 // enable USB endpoint 6 receiving (OUT)
#define USBFS_UEP6_TX_EN 0x40 // enable USB endpoint 6 transmittal (IN)
#define USBFS_UEP6_BUF_MOD 0x10 // buffer mode of USB endpoint 6
#define USBFS_UEP5_RX_EN 0x08 // enable USB endpoint 5 receiving (OUT)
#define USBFS_UEP5_TX_EN 0x04 // enable USB endpoint 5 transmittal (IN)
#define USBFS_UEP5_BUF_MOD 0x01 // buffer mode of USB endpoint 5
/* R8_UEP7_MOD */
#define USBFS_UEP7_RX_EN 0x08 // enable USB endpoint 7 receiving (OUT)
#define USBFS_UEP7_TX_EN 0x04 // enable USB endpoint 7 transmittal (IN)
#define USBFS_UEP7_BUF_MOD 0x01 // buffer mode of USB endpoint 7
/* R8_UEPn_TX_CTRL */
#define USBFS_UEP_T_AUTO_TOG 0x08 // enable automatic toggle after successful transfer completion on endpoint 1/2/3: 0=manual toggle, 1=automatic toggle
#define USBFS_UEP_T_TOG 0x04 // prepared data toggle flag of USB endpoint X transmittal (IN): 0=DATA0, 1=DATA1
#define USBFS_UEP_T_RES_MASK 0x03 // bit mask of handshake response type for USB endpoint X transmittal (IN)
#define USBFS_UEP_T_RES_ACK 0x00
#define USBFS_UEP_T_RES_NONE 0x01
#define USBFS_UEP_T_RES_NAK 0x02
#define USBFS_UEP_T_RES_STALL 0x03
// bUEP_T_RES1 & bUEP_T_RES0: handshake response type for USB endpoint X transmittal (IN)
// 00: DATA0 or DATA1 then expecting ACK (ready)
// 01: DATA0 or DATA1 then expecting no response, time out from host, for non-zero endpoint isochronous transactions
// 10: NAK (busy)
// 11: STALL (error)
// host aux setup
/* R8_UEPn_RX_CTRL, n=0-7 */
#define USBFS_UEP_R_AUTO_TOG 0x08 // enable automatic toggle after successful transfer completion on endpoint 1/2/3: 0=manual toggle, 1=automatic toggle
#define USBFS_UEP_R_TOG 0x04 // expected data toggle flag of USB endpoint X receiving (OUT): 0=DATA0, 1=DATA1
#define USBFS_UEP_R_RES_MASK 0x03 // bit mask of handshake response type for USB endpoint X receiving (OUT)
#define USBFS_UEP_R_RES_ACK 0x00
#define USBFS_UEP_R_RES_NONE 0x01
#define USBFS_UEP_R_RES_NAK 0x02
#define USBFS_UEP_R_RES_STALL 0x03
// RB_UEP_R_RES1 & RB_UEP_R_RES0: handshake response type for USB endpoint X receiving (OUT)
// 00: ACK (ready)
// 01: no response, time out to host, for non-zero endpoint isochronous transactions
// 10: NAK (busy)
// 11: STALL (error)
/* R8_UHOST_CTRL */
#define USBFS_UH_PD_DIS 0x80 // disable USB UDP/UDM pulldown resistance: 0=enable pulldown, 1=disable
#define USBFS_UH_DP_PIN 0x20 // ReadOnly: indicate current UDP pin level
#define USBFS_UH_DM_PIN 0x10 // ReadOnly: indicate current UDM pin level
#define USBFS_UH_LOW_SPEED 0x04 // enable USB port low speed: 0=full speed, 1=low speed
#define USBFS_UH_BUS_RESET 0x02 // control USB bus reset: 0=normal, 1=force bus reset
#define USBFS_UH_PORT_EN 0x01 // enable USB port: 0=disable, 1=enable port, automatic disabled if USB device detached
/* R32_UH_EP_MOD */
#define USBFS_UH_EP_TX_EN 0x40 // enable USB host OUT endpoint transmittal
#define USBFS_UH_EP_TBUF_MOD 0x10 // buffer mode of USB host OUT endpoint
// bUH_EP_TX_EN & bUH_EP_TBUF_MOD: USB host OUT endpoint buffer mode, buffer start address is UH_TX_DMA
// 0 x: disable endpoint and disable buffer
// 1 0: 64 bytes buffer for transmittal (OUT endpoint)
// 1 1: dual 64 bytes buffer by toggle bit bUH_T_TOG selection for transmittal (OUT endpoint), total=128bytes
#define USBFS_UH_EP_RX_EN 0x08 // enable USB host IN endpoint receiving
#define USBFS_UH_EP_RBUF_MOD 0x01 // buffer mode of USB host IN endpoint
// bUH_EP_RX_EN & bUH_EP_RBUF_MOD: USB host IN endpoint buffer mode, buffer start address is UH_RX_DMA
// 0 x: disable endpoint and disable buffer
// 1 0: 64 bytes buffer for receiving (IN endpoint)
// 1 1: dual 64 bytes buffer by toggle bit bUH_R_TOG selection for receiving (IN endpoint), total=128bytes
/* R16_UH_SETUP */
#define USBFS_UH_PRE_PID_EN 0x0400 // USB host PRE PID enable for low speed device via hub
#define USBFS_UH_SOF_EN 0x0004 // USB host automatic SOF enable
/* R8_UH_EP_PID */
#define USBFS_UH_TOKEN_MASK 0xF0 // bit mask of token PID for USB host transfer
#define USBFS_UH_ENDP_MASK 0x0F // bit mask of endpoint number for USB host transfer
/* R8_UH_RX_CTRL */
#define USBFS_UH_R_AUTO_TOG 0x08 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle
#define USBFS_UH_R_TOG 0x04 // expected data toggle flag of host receiving (IN): 0=DATA0, 1=DATA1
#define USBFS_UH_R_RES 0x01 // prepared handshake response type for host receiving (IN): 0=ACK (ready), 1=no response, time out to device, for isochronous transactions
/* R8_UH_TX_CTRL */
#define USBFS_UH_T_AUTO_TOG 0x08 // enable automatic toggle after successful transfer completion: 0=manual toggle, 1=automatic toggle
#define USBFS_UH_T_TOG 0x04 // prepared data toggle flag of host transmittal (SETUP/OUT): 0=DATA0, 1=DATA1
#define USBFS_UH_T_RES 0x01 // expected handshake response type for host transmittal (SETUP/OUT): 0=ACK (ready), 1=no response, time out from device, for isochronous transactions
/* ch32v00x_wwdg.h -----------------------------------------------------------*/
/* WWDG_Prescaler */
#define WWDG_Prescaler_1 ((uint32_t)0x00000000)
#define WWDG_Prescaler_2 ((uint32_t)0x00000080)
#define WWDG_Prescaler_4 ((uint32_t)0x00000100)
#define WWDG_Prescaler_8 ((uint32_t)0x00000180)
/* ch32h417_hsadc.h -----------------------------------------------------------*/
/* HSADC_First_Conversion_Cycle */
#define HSADC_First_Conversion_Cycle_8 ((uint32_t)0x00000000)
#define HSADC_First_Conversion_Cycle_9 ((uint32_t)0x00000020)
#define HSADC_First_Conversion_Cycle_10 ((uint32_t)0x00000040)
#define HSADC_First_Conversion_Cycle_11 ((uint32_t)0x00000060)
/* HSADC_data_size */
#define HSADC_DataSize_16b ((uint32_t)0x00000000)
#define HSADC_DataSize_8b ((uint32_t)0x00000080)
/* HSADC_channels */
#define HSADC_Channel_0 ((uint8_t)0x00)
#define HSADC_Channel_1 ((uint8_t)0x01)
#define HSADC_Channel_2 ((uint8_t)0x02)
#define HSADC_Channel_3 ((uint8_t)0x03)
#define HSADC_Channel_4 ((uint8_t)0x04)
#define HSADC_Channel_5 ((uint8_t)0x05)
#define HSADC_Channel_6 ((uint8_t)0x06)
/* HSADC_interrupts_definition */
#define HSADC_IT_EOC ((uint16_t)0x0100)
#define HSADC_IT_DMAEnd ((uint16_t)0x0200)
#define HSADC_IT_BurstEnd ((uint16_t)0x0400)
/* HSADC_flags_definition */
#define HSADC_FLAG_EOC ((uint16_t)0x0001)
#define HSADC_FLAG_DMAEnd ((uint16_t)0x0002)
#define HSADC_FLAG_BurstEnd ((uint16_t)0x0004)
#define HSADC_FLAG_RXNE ((uint16_t)0x0008)
#define HSADC_FLAG_DualBufferAddr1 ((uint16_t)0x0010)
#define HSADC_FLAG_FIFO_NE ((uint16_t)0x0100)
#define HSADC_FLAG_FIFO_Full ((uint16_t)0x0200)
#define HSADC_FLAG_FIFO_OV ((uint16_t)0x0400)
/* ch32h417_hsem.h -----------------------------------------------------------*/
/* HSEM_Core_ID */
#define HSEM_Core_ID_V3F ((uint32_t)0x00000000)
#define HSEM_Core_ID_V5F ((uint32_t)0x00000100)
/* ch32h417_i3c.h -----------------------------------------------------------*/
/* I3C_SDAHoldTime*/
#define I3C_SDAHoldTime_0_5 ((uint32_t)0x00000000)
#define I3C_SDAHoldTime_1_5 ((uint32_t)0x10000000)
/* I3C_WaitTime */
#define I3C_WaitTime_State_0 ((uint32_t)0x00000000)
#define I3C_WaitTime_State_1 ((uint32_t)0x00000100)
#define I3C_WaitTime_State_2 ((uint32_t)0x00000200)
#define I3C_WaitTime_State_3 ((uint32_t)0x00000300)
/* I3C_IBIPayloadSize */
#define I3C_IBIPayloadSize_None ((uint32_t)0x00000000)
#define I3C_IBIPayloadSize_1B ((uint32_t)0x00010000)
#define I3C_IBIPayloadSize_2B ((uint32_t)0x00020000)
#define I3C_IBIPayloadSize_3B ((uint32_t)0x00030000)
#define I3C_IBIPayloadSize_4B ((uint32_t)0x00040000)
/* I3C_DataTurnAroundDuration */
#define I3C_DataTurnAroundDuration_Mode0 ((uint32_t)0x00000000)
#define I3C_DataTurnAroundDuration_Mode1 ((uint32_t)0x01000000)
/* I3C_MaxDataSpeed */
#define I3C_MaxDataSpeed_Format_Mode0 ((uint32_t)0x00000000)
#define I3C_MaxDataSpeed_Format_Mode1 ((uint32_t)0x00000100)
#define I3C_MaxDataSpeed_Format_Mode2 ((uint32_t)0x00000200)
#define I3C_MaxDataSpeed_Format_Mode3 ((uint32_t)0x00000300)
/* I3C_HandOffActivityState */
#define I3C_HandOffActivityState_0 ((uint32_t)0x00000000)
#define I3C_HandOffActivityState_1 ((uint32_t)0x00000001)
#define I3C_HandOffActivityState_2 ((uint32_t)0x00000002)
#define I3C_HandOffActivityState_3 ((uint32_t)0x00000003)
/* I3C_DeviceIndex */
#define I3C_DeviceIndex_1 ((uint32_t)0x00000001)
#define I3C_DeviceIndex_2 ((uint32_t)0x00000002)
#define I3C_DeviceIndex_3 ((uint32_t)0x00000003)
#define I3C_DeviceIndex_4 ((uint32_t)0x00000004)
/* I3C_Direction */
#define I3C_Direction_WR ((uint32_t)0x00000000)
#define I3C_Direction_RD ((uint32_t)0x00010000)
/* I3C_CONTROLLER MessageType */
#define I3C_CONTROLLER_MTYPE_RELEASE ((uint32_t)0x00000000)
#define I3C_CONTROLLER_MTYPE_HEADER I3C_CTLR_MTYPE_0
#define I3C_CONTROLLER_MTYPE_PRIVATE I3C_CTLR_MTYPE_1
#define I3C_CONTROLLER_MTYPE_DIRECT (I3C_CTLR_MTYPE_1 | I3C_CTLR_MTYPE_0)
#define I3C_CONTROLLER_MTYPE_LEGACY_I2C I3C_CTLR_MTYPE_2
#define I3C_CONTROLLER_MTYPE_CCC (I3C_CTLR_MTYPE_2 | I3C_CTLR_MTYPE_1)
/* I3C_EndMode */
#define I3C_GENERATE_STOP I3C_CTLR_MEND
#define I3C_GENERATE_RESTART ((uint32_t)0x00000000)
/* I3C_TARGET_MessageType */
#define I3C_TARGET_MTYPE_HOT_JOIN I3C_CTLR_MTYPE_3
#define I3C_TARGET_MTYPE_CONTROLLER_ROLE_REQ (I3C_CTLR_MTYPE_3 | I3C_CTLR_MTYPE_0)
#define I3C_TARGET_MTYPE_IBI (I3C_CTLR_MTYPE_3 | I3C_CTLR_MTYPE_1)
/* I3C_PeripheralMode */
#define PeripheralMode_CONTROLLER ((uint32_t)0x00000000)
#define PeripheralMode_TARGET ((uint32_t)0x00000002)
/* I3C_RX_FIFO_THRESHOLD */
#define I3C_RXFIFO_THRESHOLD_1_4 ((uint32_t)0x00000000)
#define I3C_RXFIFO_THRESHOLD_4_4 I3C_CFGR_RXTHRES
/* I3C_TX_FIFO_THRESHOLD */
#define I3C_TXFIFO_THRESHOLD_1_4 ((uint32_t)0x00000000)
#define I3C_TXFIFO_THRESHOLD_4_4 I3C_CFGR_TXTHRES
/* I3C_CONTROL_FIFO_STATE */
#define I3C_CONTROLFIFO_DISABLE ((uint32_t)0x00000000)
#define I3C_CONTROLFIFO_ENABLE I3C_CFGR_TMODE
/* I3C_STATUS_FIFO_STATE */
#define I3C_STATUSFIFO_DISABLE ((uint32_t)0x00000000)
#define I3C_STATUSFIFO_ENABLE I3C_CFGR_SMODE
/* I3C_flags_definition */
#define I3C_FLAG_CFEF ((uint32_t)0x00000001)
#define I3C_FLAG_TXFEF ((uint32_t)0x00000002)
#define I3C_FLAG_CFNFF ((uint32_t)0x00000004)
#define I3C_FLAG_SFNEF ((uint32_t)0x00000008)
#define I3C_FLAG_TXFNFF ((uint32_t)0x00000010)
#define I3C_FLAG_RXFNEF ((uint32_t)0x00000020)
#define I3C_FLAG_TXLASTF ((uint32_t)0x00000040)
#define I3C_FLAG_RXLASTF ((uint32_t)0x00000080)
#define I3C_FLAG_FCF ((uint32_t)0x00000200)
#define I3C_FLAG_RXTGTENDF ((uint32_t)0x00000400)
#define I3C_FLAG_ERRF ((uint32_t)0x00000800)
#define I3C_FLAG_IBIF ((uint32_t)0x00008000)
#define I3C_FLAG_IBIENDF ((uint32_t)0x00010000)
#define I3C_FLAG_CRF ((uint32_t)0x00020000)
#define I3C_FLAG_CRUPDF ((uint32_t)0x00040000)
#define I3C_FLAG_HJF ((uint32_t)0x00080000)
#define I3C_FLAG_WKPF ((uint32_t)0x00200000)
#define I3C_FLAG_GETF ((uint32_t)0x00400000)
#define I3C_FLAG_STAF ((uint32_t)0x00800000)
#define I3C_FLAG_DAUPDF ((uint32_t)0x01000000)
#define I3C_FLAG_MWLUPDF ((uint32_t)0x02000000)
#define I3C_FLAG_MRLUPDF ((uint32_t)0x04000000)
#define I3C_FLAG_RSTF ((uint32_t)0x08000000)
#define I3C_FLAG_ASUPDF ((uint32_t)0x10000000)
#define I3C_FLAG_INTUPDF ((uint32_t)0x20000000)
#define I3C_FLAG_DEFF ((uint32_t)0x40000000)
#define I3C_FLAG_GRPF ((uint32_t)0x80000000)
/* I3C_interrupts_definition */
#define I3C_IT_CFNFIE ((uint32_t)0x00000004)
#define I3C_IT_SFNEIE ((uint32_t)0x00000008)
#define I3C_IT_TXFNEIE ((uint32_t)0x00000010)
#define I3C_IT_RXFNEIE ((uint32_t)0x00000020)
#define I3C_IT_FCIE ((uint32_t)0x00000200)
#define I3C_IT_RXTGTENDIE ((uint32_t)0x00000400)
#define I3C_IT_ERRIE ((uint32_t)0x00000800)
#define I3C_IT_IBIIE ((uint32_t)0x00008000)
#define I3C_IT_IBIENDIE ((uint32_t)0x00010000)
#define I3C_IT_CRIE ((uint32_t)0x00020000)
#define I3C_IT_HJIE ((uint32_t)0x00080000)
#define I3C_IT_CRUPDIE ((uint32_t)0x00040000)
#define I3C_IT_WKPIE ((uint32_t)0x00200000)
#define I3C_IT_GETIE ((uint32_t)0x00400000)
#define I3C_IT_STAIE ((uint32_t)0x00800000)
#define I3C_IT_DAUPDIE ((uint32_t)0x01000000)
#define I3C_IT_MWLUPDIE ((uint32_t)0x02000000)
#define I3C_IT_MRLUPDIE ((uint32_t)0x04000000)
#define I3C_IT_RSTIE ((uint32_t)0x08000000)
#define I3C_IT_ASUPDIE ((uint32_t)0x10000000)
#define I3C_IT_INTUPDIE ((uint32_t)0x20000000)
#define I3C_IT_DEFIE ((uint32_t)0x40000000)
#define I3C_IT_GRPIE ((uint32_t)0x80000000)
/* I3C_ERROR */
#define I3C_ERROR_CE0 ((uint32_t)0x00000000)
#define I3C_ERROR_CE1 ((uint32_t)0x00000001)
#define I3C_ERROR_CE2 ((uint32_t)0x00000002)
#define I3C_ERROR_CE3 ((uint32_t)0x00000003)
#define I3C_ERROR_TE0 ((uint32_t)0x00000008)
#define I3C_ERROR_TE1 ((uint32_t)0x00000009)
#define I3C_ERROR_TE2 ((uint32_t)0x0000000A)
#define I3C_ERROR_TE3 ((uint32_t)0x0000000B)
#define I3C_ERROR_TE4 ((uint32_t)0x0000000C)
#define I3C_ERROR_TE5 ((uint32_t)0x0000000D)
#define I3C_ERROR_TE6 ((uint32_t)0x0000000E)
#define I3C_ERROR_PERR ((uint32_t)0x00000010)
#define I3C_ERROR_STALL ((uint32_t)0x00000020)
#define I3C_ERROR_DOVR ((uint32_t)0x00000040)
#define I3C_ERROR_COVR ((uint32_t)0x00000080)
#define I3C_ERROR_ADDRESS_NACK ((uint32_t)0x00000100)
#define I3C_ERROR_DATA_NACK ((uint32_t)0x00000200)
#define I3C_ERROR_DATA_HAND_OFF ((uint32_t)0x00000400)
/* ch32h417_lptim.h -----------------------------------------------------------*/
/* LPTIM_Clock_Source */
#define LPTIM_ClockSource_In ((uint32_t)0x00000000)
#define LPTIM_ClockSource_Ex ((uint32_t)0x00000001)
/* LPTIM_ClockPolarity */
#define LPTIM_ClockPolarity_Rising ((uint32_t)0x00000000)
#define LPTIM_ClockPolarity_Falling ((uint32_t)0x00000002)
#define LPTIM_ClockPolarity_Rising_Falling ((uint32_t)0x00000004)
/* LPTIM_ClockPrescalerTime */
#define LPTIM_ClockSampleTime_0T ((uint32_t)0x00000000)
#define LPTIM_ClockSampleTime_2T ((uint32_t)0x00000008)
#define LPTIM_ClockSampleTime_4T ((uint32_t)0x00000010)
#define LPTIM_ClockSampleTime_8T ((uint32_t)0x00000018)
/* LPTIM_TriggerSampleTime */
#define LPTIM_TriggerSampleTime_0T ((uint32_t)0x00000000)
#define LPTIM_TriggerSampleTime_2T ((uint32_t)0x00000040)
#define LPTIM_TriggerSampleTime_4T ((uint32_t)0x00000080)
#define LPTIM_TriggerSampleTime_8T ((uint32_t)0x000000C0)
/* LPTIM_ClockPrescaler */
#define LPTIM_TClockPrescaler_DIV1 ((uint32_t)0x00000000)
#define LPTIM_TClockPrescaler_DIV2 ((uint32_t)0x00000200)
#define LPTIM_TClockPrescaler_DIV4 ((uint32_t)0x00000400)
#define LPTIM_TClockPrescaler_DIV8 ((uint32_t)0x00000600)
#define LPTIM_TClockPrescaler_DIV16 ((uint32_t)0x00000800)
#define LPTIM_TClockPrescaler_DIV32 ((uint32_t)0x00000A00)
#define LPTIM_TClockPrescaler_DIV64 ((uint32_t)0x00000C00)
#define LPTIM_TClockPrescaler_DIV128 ((uint32_t)0x00000E00)
/* LPTIM_TriggerSource */
#define LPTIM_TriggerSource_ETR ((uint32_t)0x00000000)
#define LPTIM_TriggerSource_RTC_ALARM ((uint32_t)0x00002000)
#define LPTIM_TriggerSource_TAMP ((uint32_t)0x00004000)
/* LPTIM_ExTriggerPolarity */
#define LPTIM_ExTriggerPolarity_Disable ((uint32_t)0x00000000)
#define LPTIM_ExTriggerPolarity_Rising ((uint32_t)0x00020000)
#define LPTIM_ExTriggerPolarity_Falling ((uint32_t)0x00040000)
#define LPTIM_ExTriggerPolarity_Rising_Falling ((uint32_t)0x00060000)
/* LPTIM_OutputPolarity */
#define LPTIM_OutputPolarity_High ((uint32_t)0x00000000)
#define LPTIM_OutputPolarity_Low ((uint32_t)0x00200000)
/* LPTIM_UpdateMode */
#define LPTIM_UpdateMode0 ((uint32_t)0x00000000)
#define LPTIM_UpdateMode1 ((uint32_t)0x00400000)
/* LPTIM_CountSource */
#define LPTIM_CountSource_Internal ((uint32_t)0x00000000)
#define LPTIM_CountSource_External ((uint32_t)0x00800000)
/* LPTIM_InClockSource */
#define LPTIM_InClockSource_PCLK1 ((uint32_t)0x00000000)
#define LPTIM_InClockSource_HSI ((uint32_t)0x02000000)
#define LPTIM_InClockSource_LSE ((uint32_t)0x04000000)
#define LPTIM_InClockSource_LSI ((uint32_t)0x06000000)
/* LPTIM_Flag_Definition */
#define LPTIM_FLAG_DIR_SYNC ((uint32_t)0x00000080)
#define LPTIM_FLAG_DOWN ((uint32_t)0x00000040)
#define LPTIM_FLAG_UP ((uint32_t)0x00000020)
#define LPTIM_FLAG_ARROK ((uint32_t)0x00000010)
#define LPTIM_FLAG_CMPOK ((uint32_t)0x00000008)
#define LPTIM_FLAG_EXTTRIG ((uint32_t)0x00000004)
#define LPTIM_FLAG_ARRM ((uint32_t)0x00000002)
#define LPTIM_FLAG_CMPM ((uint32_t)0x00000001)
/* LPTIM_Interrupts_Definition */
#define LPTIM_IT_DOWN ((uint32_t)0x00000040)
#define LPTIM_IT_UP ((uint32_t)0x00000020)
#define LPTIM_IT_ARROK ((uint32_t)0x00000010)
#define LPTIM_IT_CMPOK ((uint32_t)0x00000008)
#define LPTIM_IT_EXTTRIG ((uint32_t)0x00000004)
#define LPTIM_IT_ARRM ((uint32_t)0x00000002)
#define LPTIM_IT_CMPM ((uint32_t)0x00000001)
/* ch32h417_ltdc.h -----------------------------------------------------------*/
/* LTDC_HSPolarity */
#define LTDC_HSPolarity_AL ((uint32_t)0x00000000)
#define LTDC_HSPolarity_AH LTDC_GCR_HSPOL
/* LTDC_VSPolarity */
#define LTDC_VSPolarity_AL ((uint32_t)0x00000000)
#define LTDC_VSPolarity_AH LTDC_GCR_VSPOL
/* LTDC_DEPolarity */
#define LTDC_DEPolarity_AL ((uint32_t)0x00000000)
#define LTDC_DEPolarity_AH LTDC_GCR_DEPOL
/* LTDC_PCPolarity */
#define LTDC_PCPolarity_IPC ((uint32_t)0x00000000)
#define LTDC_PCPolarity_IIPC LTDC_GCR_PCPOL
/* LTDC_Reload */
#define LTDC_IMReload LTDC_SRCR_IMR
#define LTDC_VBReload LTDC_SRCR_VBR
/* LTDC_Position */
#define LTDC_POS_CY LTDC_CPSR_CYPOS
#define LTDC_POS_CX LTDC_CPSR_CXPOS
/* LTDC_CurrentStatus */
#define LTDC_CD_VDES LTDC_CDSR_VDES
#define LTDC_CD_HDES LTDC_CDSR_HDES
#define LTDC_CD_VSYNC LTDC_CDSR_VSYNCS
#define LTDC_CD_HSYNC LTDC_CDSR_HSYNCS
/* LTDC_Interrupts_definition */
#define LTDC_IT_LI LTDC_IER_LIE
#define LTDC_IT_FU LTDC_IER_FUIE
#define LTDC_IT_RR LTDC_IER_RRIE
/* LTDC_Flag_definition */
#define LTDC_FLAG_LI LTDC_ISR_LIF
#define LTDC_FLAG_FU LTDC_ISR_FUIF
#define LTDC_FLAG_RR LTDC_ISR_RRIF
/* LTDC_Pixelformat */
#define LTDC_Pixelformat_ARGB8888 ((uint32_t)0x00000000)
#define LTDC_Pixelformat_RGB888 ((uint32_t)0x00000001)
#define LTDC_Pixelformat_RGB565 ((uint32_t)0x00000002)
#define LTDC_Pixelformat_ARGB1555 ((uint32_t)0x00000003)
#define LTDC_Pixelformat_ARGB4444 ((uint32_t)0x00000004)
#define LTDC_Pixelformat_L8 ((uint32_t)0x00000005)
#define LTDC_Pixelformat_AL44 ((uint32_t)0x00000006)
#define LTDC_Pixelformat_AL88 ((uint32_t)0x00000007)
/* LTDC_BlendingFactor1 */
#define LTDC_BlendingFactor1_CA ((uint32_t)0x00000400)
#define LTDC_BlendingFactor1_PAxCA ((uint32_t)0x00000600)
/* LTDC_BlendingFactor2 */
#define LTDC_BlendingFactor2_CA ((uint32_t)0x00000005)
#define LTDC_BlendingFactor2_PAxCA ((uint32_t)0x00000007)
/* ch32h417_pioc.h -----------------------------------------------------------*/
// Register Bit Attribute / Bit Access Type
// RO: Read Only (internal change)
// RW: Read / Write
// Attribute: master/PIOC
/* Register name rule:
R32_* for 32 bits register (UINT32,ULONG)
R16_* for 16 bits register (UINT16,USHORT)
R8_* for 8 bits register (UINT8,UCHAR)
RB_* for bit or bit mask of 8 bit register */
/* ********************************************************************************************************************* */
#define PIOC_SRAM_BASE (0x50040000) // PIOC code RAM base address
#define PIOC_SFR_BASE PIOC_BASE // PIOC SFR base address
#define R32_PIOC_SFR (*((volatile unsigned long *)(PIOC_SFR_BASE+0x04))) // RO/RW, PIOC SFR
#define R8_INDIR_ADDR (*((volatile unsigned char *)(PIOC_SFR_BASE+0x04))) // RO/RW, PIOC indirect address
#define R8_TMR0_COUNT (*((volatile unsigned char *)(PIOC_SFR_BASE+0x05))) // RO/RW, PIOC timer count
#define R8_TMR0_CTRL (*((volatile unsigned char *)(PIOC_SFR_BASE+0x06))) // RO/RW, PIOC timer control and GP bit
#define RB_EN_LEVEL1 0x80 // RO/RW, enable IO1 level change to wakeup & action interrupt flag
#define RB_EN_LEVEL0 0x40 // RO/RW, enable IO0 level change to wakeup & action interrupt flag
#define RB_GP_BIT_Y 0x20 // RO/RW, general-purpose bit 1, reset by power on, no effect if system reset or RB_MST_RESET reset
#define RB_GP_BIT_X 0x10 // RO/RW, general-purpose bit 0, reset by power on, no effect if system reset or RB_MST_RESET reset
#define RB_TMR0_MODE 0x08 // RO/RW, timer mode: 0-timer, 1-PWM
#define RB_TMR0_FREQ2 0x04 // RO/RW, timer clock frequency selection 2
#define RB_TMR0_FREQ1 0x02 // RO/RW, timer clock frequency selection 1
#define RB_TMR0_FREQ0 0x01 // RO/RW, timer clock frequency selection 0
#define R8_TMR0_INIT (*((volatile unsigned char *)(PIOC_SFR_BASE+0x07))) // RO/RW, PIOC timer initial value
#define R32_PORT_CFG (*((volatile unsigned long *)(PIOC_SFR_BASE+0x08))) // RO/RW, port status and config
#define R8_BIT_CYCLE (*((volatile unsigned char *)(PIOC_SFR_BASE+0x08))) // RO/RW, encode bit cycle
#define RB_BIT_TX_O0 0x80 // RO/RW, bit data for IO0 port encode output
#define RB_BIT_CYCLE 0x7F // RO/RW, IO0 port bit data cycle -1
#define R8_INDIR_ADDR2 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x09))) // RO/RW, PIOC indirect address 2
#define R8_PORT_DIR (*((volatile unsigned char *)(PIOC_SFR_BASE+0x0A))) // RO/RW, IO port direction and mode
//#define RB_PORT_MOD3 0x80 // RO/RW, IO port mode 3
//#define RB_PORT_MOD2 0x40 // RO/RW, IO port mode 2
//#define RB_PORT_MOD1 0x20 // RO/RW, IO port mode 1
//#define RB_PORT_MOD0 0x10 // RO/RW, IO port mode 0
//#define RB_PORT_PU1 0x08 // RO/RW, IO1 port pullup enable
//#define RB_PORT_PU0 0x04 // RO/RW, IO0 port pullup enable
#define RB_PORT_DIR1 0x02 // RO/RW, IO1 port direction
#define RB_PORT_DIR0 0x01 // RO/RW, IO0 port direction
#define R8_PORT_IO (*((volatile unsigned char *)(PIOC_SFR_BASE+0x0B))) // RO/RW, IO port input and output
#define RB_PORT_IN_XOR 0x80 // RO/RO, IO0 XOR IO1 port input
#define RB_BIT_RX_I0 0x40 // RO/RO, decoced bit data for IO0 port received
#define RB_PORT_IN1 0x20 // RO/RO, IO1 port input
#define RB_PORT_IN0 0x10 // RO/RO, IO0 port input
#define RB_PORT_XOR1 0x08 // RO/RO, IO1 port output XOR input
#define RB_PORT_XOR0 0x04 // RO/RO, IO0 port output XOR input
#define RB_PORT_OUT1 0x02 // RO/RW, IO1 port output
#define RB_PORT_OUT0 0x01 // RO/RW, IO0 port output
#define R32_DATA_CTRL (*((volatile unsigned long *)(PIOC_SFR_BASE+0x1C))) // RW/RW, data control
#define R8_SYS_CFG (*((volatile unsigned char *)(PIOC_SFR_BASE+0x1C))) // RW/RW, port config
#define RB_INT_REQ 0x80 // RO/RW, PIOC interrupt request action, set 1/0 by PIOC, clear 0 by master write R8_CTRL_RD (no effect)
#define RB_DATA_SW_MR 0x40 // RO/RO, R8_CTRL_RD wait for read status, set 1 by PIOC write R8_CTRL_RD, clear 0 by master read R8_CTRL_RD
#define RB_DATA_MW_SR 0x20 // RO/RO, R8_CTRL_WR wait for read status, set 1 by master write R8_CTRL_WR, clear 0 by PIOC read R8_CTRL_WR
#define RB_MST_CFG_B4 0x10 // RW/RO, config inform bit, default 0
#define RB_MST_IO_EN1 0x08 // RW/RO, IO1 switch enable, default 0
#define RB_MST_IO_EN0 0x04 // RW/RO, IO0 switch enable, default 0
#define RB_MST_RESET 0x02 // RW/RO, force PIOC reset, high action, default 0
#define RB_MST_CLK_GATE 0x01 // RW/RO, PIOC global clock enable, high action, default 0
#define R8_CTRL_RD (*((volatile unsigned char *)(PIOC_SFR_BASE+0x1D))) // RO/RW, data for master read only and PIOC write only
#define R8_CTRL_WR (*((volatile unsigned char *)(PIOC_SFR_BASE+0x1E))) // RW/RO, data for master write only and PIOC read only
#define R8_DATA_EXCH (*((volatile unsigned char *)(PIOC_SFR_BASE+0x1F))) // RW/RW, data exchange
#define R32_DATA_REG0_3 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x20))) // RW/RW, data buffer 0~3
#define R8_DATA_REG0 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x20))) // RW/RW, data buffer 0
#define R8_DATA_REG1 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x21))) // RW/RW, data buffer 1
#define R8_DATA_REG2 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x22))) // RW/RW, data buffer 2
#define R8_DATA_REG3 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x23))) // RW/RW, data buffer 3
#define R32_DATA_REG4_7 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x24))) // RW/RW, data buffer 4~7
#define R8_DATA_REG4 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x24))) // RW/RW, data buffer 4
#define R8_DATA_REG5 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x25))) // RW/RW, data buffer 5
#define R8_DATA_REG6 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x26))) // RW/RW, data buffer 6
#define R8_DATA_REG7 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x27))) // RW/RW, data buffer 7
#define R32_DATA_REG8_11 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x28))) // RW/RW, data buffer 8~11
#define R8_DATA_REG8 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x28))) // RW/RW, data buffer 8
#define R8_DATA_REG9 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x29))) // RW/RW, data buffer 9
#define R8_DATA_REG10 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2A))) // RW/RW, data buffer 10
#define R8_DATA_REG11 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2B))) // RW/RW, data buffer 11
#define R32_DATA_REG12_15 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x2C))) // RW/RW, data buffer 12~15
#define R8_DATA_REG12 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2C))) // RW/RW, data buffer 12
#define R8_DATA_REG13 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2D))) // RW/RW, data buffer 13
#define R8_DATA_REG14 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2E))) // RW/RW, data buffer 14
#define R8_DATA_REG15 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x2F))) // RW/RW, data buffer 15
#define R32_DATA_REG16_19 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x30))) // RW/RW, data buffer 16~19
#define R8_DATA_REG16 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x30))) // RW/RW, data buffer 16
#define R8_DATA_REG17 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x31))) // RW/RW, data buffer 17
#define R8_DATA_REG18 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x32))) // RW/RW, data buffer 18
#define R8_DATA_REG19 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x33))) // RW/RW, data buffer 19
#define R32_DATA_REG20_23 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x34))) // RW/RW, data buffer 20~23
#define R8_DATA_REG20 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x34))) // RW/RW, data buffer 20
#define R8_DATA_REG21 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x35))) // RW/RW, data buffer 21
#define R8_DATA_REG22 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x36))) // RW/RW, data buffer 22
#define R8_DATA_REG23 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x37))) // RW/RW, data buffer 23
#define R32_DATA_REG24_27 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x38))) // RW/RW, data buffer 24~27
#define R8_DATA_REG24 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x38))) // RW/RW, data buffer 24
#define R8_DATA_REG25 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x39))) // RW/RW, data buffer 25
#define R8_DATA_REG26 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3A))) // RW/RW, data buffer 26
#define R8_DATA_REG27 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3B))) // RW/RW, data buffer 27
#define R32_DATA_REG28_31 (*((volatile unsigned long *)(PIOC_SFR_BASE+0x3C))) // RW/RW, data buffer 28~31
#define R8_DATA_REG28 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3C))) // RW/RW, data buffer 28
#define R8_DATA_REG29 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3D))) // RW/RW, data buffer 29
#define R8_DATA_REG30 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3E))) // RW/RW, data buffer 30
#define R8_DATA_REG31 (*((volatile unsigned char *)(PIOC_SFR_BASE+0x3F))) // RW/RW, data buffer 31
/* ******************************************************************************************************* */
/* PIOC Registers */
typedef struct
{
uint32_t RESERVED00;
union {
__IO uint32_t D32_PIOC_SFR ; // RO/RW, PIOC SFR
struct {
__IO uint8_t D8_INDIR_ADDR; // RO/RW, PIOC indirect address
__IO uint8_t D8_TMR0_COUNT; // RO/RW, PIOC timer count
__IO uint8_t D8_TMR0_CTRL; // RO/RW, PIOC timer control and GP bit
__IO uint8_t D8_TMR0_INIT; // RO/RW, PIOC timer initial value
} ;
} ;
union {
__IO uint32_t D32_PORT_CFG ; // RO/RW, port status and config
struct {
__IO uint8_t D8_BIT_CYCLE; // RO/RW, encode bit cycle
__IO uint8_t D8_INDIR_ADDR2; // RO/RW, PIOC indirect address 2
__IO uint8_t D8_PORT_DIR; // RO/RW, IO port direction and mode
__IO uint8_t D8_PORT_IO; // RO/RW, IO port input and output
} ;
} ;
uint32_t RESERVED0C;
uint32_t RESERVED10;
uint32_t RESERVED14;
uint32_t RESERVED18;
union {
__IO uint32_t D32_DATA_CTRL ; // RW/RW, data control
struct {
__IO uint8_t D8_SYS_CFG; // RW/RW, port config
__IO uint8_t D8_CTRL_RD; // RO/RW, data for master read only and PIOC write only
__IO uint8_t D8_CTRL_WR; // RW/RO, data for master write only and PIOC read only
__IO uint8_t D8_DATA_EXCH; // RW/RW, data exchange
} ;
} ;
union {
__IO uint32_t D32_DATA_REG0_3 ; // RW/RW, data buffer 0~3
struct {
__IO uint8_t D8_DATA_REG0; // RW/RW, data buffer 0
__IO uint8_t D8_DATA_REG1; // RW/RW, data buffer 1
__IO uint8_t D8_DATA_REG2; // RW/RW, data buffer 2
__IO uint8_t D8_DATA_REG3; // RW/RW, data buffer 3
} ;
__IO uint16_t D16_DATA_REG0_1 ; // RW/RW, data buffer 0~1
} ;
union {
__IO uint32_t D32_DATA_REG4_7 ; // RW/RW, data buffer 4~7
struct {
__IO uint8_t D8_DATA_REG4; // RW/RW, data buffer 4
__IO uint8_t D8_DATA_REG5; // RW/RW, data buffer 5
__IO uint8_t D8_DATA_REG6; // RW/RW, data buffer 6
__IO uint8_t D8_DATA_REG7; // RW/RW, data buffer 7
} ;
} ;
union {
__IO uint32_t D32_DATA_REG8_11 ; // RW/RW, data buffer 8~11
struct {
__IO uint8_t D8_DATA_REG8; // RW/RW, data buffer 8
__IO uint8_t D8_DATA_REG9; // RW/RW, data buffer 9
__IO uint8_t D8_DATA_REG10; // RW/RW, data buffer 10
__IO uint8_t D8_DATA_REG11; // RW/RW, data buffer 11
} ;
} ;
union {
__IO uint32_t D32_DATA_REG12_15 ; // RW/RW, data buffer 12~15
struct {
__IO uint8_t D8_DATA_REG12; // RW/RW, data buffer 12
__IO uint8_t D8_DATA_REG13; // RW/RW, data buffer 13
__IO uint8_t D8_DATA_REG14; // RW/RW, data buffer 14
__IO uint8_t D8_DATA_REG15; // RW/RW, data buffer 15
} ;
} ;
union {
__IO uint32_t D32_DATA_REG16_19 ; // RW/RW, data buffer 16~19
struct {
__IO uint8_t D8_DATA_REG16; // RW/RW, data buffer 16
__IO uint8_t D8_DATA_REG17; // RW/RW, data buffer 17
__IO uint8_t D8_DATA_REG18; // RW/RW, data buffer 18
__IO uint8_t D8_DATA_REG19; // RW/RW, data buffer 19
} ;
} ;
union {
__IO uint32_t D32_DATA_REG20_23 ; // RW/RW, data buffer 20~23
struct {
__IO uint8_t D8_DATA_REG20; // RW/RW, data buffer 20
__IO uint8_t D8_DATA_REG21; // RW/RW, data buffer 21
__IO uint8_t D8_DATA_REG22; // RW/RW, data buffer 22
__IO uint8_t D8_DATA_REG23; // RW/RW, data buffer 23
} ;
} ;
union {
__IO uint32_t D32_DATA_REG24_27 ; // RW/RW, data buffer 24~27
struct {
__IO uint8_t D8_DATA_REG24; // RW/RW, data buffer 24
__IO uint8_t D8_DATA_REG25; // RW/RW, data buffer 25
__IO uint8_t D8_DATA_REG26; // RW/RW, data buffer 26
__IO uint8_t D8_DATA_REG27; // RW/RW, data buffer 27
} ;
} ;
union {
__IO uint32_t D32_DATA_REG28_31 ; // RW/RW, data buffer 28~31
struct {
__IO uint8_t D8_DATA_REG28; // RW/RW, data buffer 28
__IO uint8_t D8_DATA_REG29; // RW/RW, data buffer 29
__IO uint8_t D8_DATA_REG30; // RW/RW, data buffer 30
__IO uint8_t D8_DATA_REG31; // RW/RW, data buffer 31
} ;
} ;
} PIOC_TypeDef;
#define PIOC ((PIOC_TypeDef *)PIOC_BASE)
/* ch32h417_qspi.h -----------------------------------------------------------*/
/* QSPI_Clock_Mode */
#define QSPI_CKMode_Mode0 ((uint32_t)0x00000000)
#define QSPI_CKMode_Mode3 ((uint32_t)QSPI_DCR_CKMODE)
/* QSPI_ChipSelectHighTime */
#define QSPI_CSHTime_1Cycle ((uint32_t)0x00000000)
#define QSPI_CSHTime_2Cycle ((uint32_t)QSPI_DCR_CSHT_0)
#define QSPI_CSHTime_3Cycle ((uint32_t)QSPI_DCR_CSHT_1)
#define QSPI_CSHTime_4Cycle ((uint32_t)QSPI_DCR_CSHT_0 | QSPI_DCR_CSHT_1)
#define QSPI_CSHTime_5Cycle ((uint32_t)QSPI_DCR_CSHT_2)
#define QSPI_CSHTime_6Cycle ((uint32_t)QSPI_DCR_CSHT_2 | QSPI_DCR_CSHT_0)
#define QSPI_CSHTime_7Cycle ((uint32_t)QSPI_DCR_CSHT_2 | QSPI_DCR_CSHT_1)
#define QSPI_CSHTime_8Cycle ((uint32_t)QSPI_DCR_CSHT)
/* QSPI_Fash_Select */
#define QSPI_FSelect_1 ((uint32_t)0x00000000)
#define QSPI_FSelect_2 ((uint32_t)QSPI_CR_FSEL)
/* QSPI_Dual_Flash */
#define QSPI_DFlash_Disable ((uint32_t)0x00000000)
#define QSPI_DFlash_Enable ((uint32_t)QSPI_CR_DFM)
/* QSPI_ComConfig_Functional_Mode */
#define QSPI_ComConfig_FMode_Indirect_Write ((uint32_t)0x00000000)
#define QSPI_ComConfig_FMode_Indirect_Read ((uint32_t)QSPI_CCR_FMODE_0)
#define QSPI_ComConfig_FMode_Auto_Polling ((uint32_t)QSPI_CCR_FMODE_1)
#define QSPI_ComConfig_FMode_Memory_Mapped ((uint32_t)QSPI_CCR_FMODE)
/* QSPI_ComConfig_SendInstructionOnlyOnceMode */
#define QSPI_ComConfig_SIOOMode_Disable ((uint32_t)0x00000000)
#define QSPI_ComConfig_SIOOMode_Enable ((uint32_t)QSPI_CCR_SIOO)
/* QSPI_ComConfig_DataMode */
#define QSPI_ComConfig_DMode_NoData ((uint32_t)0x00000000)
#define QSPI_ComConfig_DMode_1Line ((uint32_t)QSPI_CCR_DMODE_0)
#define QSPI_ComConfig_DMode_2Line ((uint32_t)QSPI_CCR_DMODE_1)
#define QSPI_ComConfig_DMode_4Line ((uint32_t)QSPI_CCR_DMODE)
/* QSPI_ComConfig_AlternateBytesSize */
#define QSPI_ComConfig_ABSize_8bit ((uint32_t)0x00000000)
#define QSPI_ComConfig_ABSize_16bit ((uint32_t)QSPI_CCR_ABSIZE_0)
#define QSPI_ComConfig_ABSize_24bit ((uint32_t)QSPI_CCR_ABSIZE_1)
#define QSPI_ComConfig_ABSize_32bit ((uint32_t)QSPI_CCR_ABSIZE)
/* QSPI_ComConfig_AlternateBytesMode */
#define QSPI_ComConfig_ABMode_NoAlternateByte ((uint32_t)0x00000000)
#define QSPI_ComConfig_ABMode_1Line ((uint32_t)QSPI_CCR_ABMODE_0)
#define QSPI_ComConfig_ABMode_2Line ((uint32_t)QSPI_CCR_ABMODE_1)
#define QSPI_ComConfig_ABMode_4Line ((uint32_t)QSPI_CCR_ABMODE)
/* QSPI_ComConfig_AddressSize */
#define QSPI_ComConfig_ADSize_8bit ((uint32_t)0x00000000)
#define QSPI_ComConfig_ADSize_16bit ((uint32_t)QSPI_CCR_ADSIZE_0)
#define QSPI_ComConfig_ADSize_24bit ((uint32_t)QSPI_CCR_ADSIZE_1)
#define QSPI_ComConfig_ADSize_32bit ((uint32_t)QSPI_CCR_ADSIZE)
/* QSPI_ComConfig_AddressMode */
#define QSPI_ComConfig_ADMode_NoAddress ((uint32_t)0x00000000)
#define QSPI_ComConfig_ADMode_1Line ((uint32_t)QSPI_CCR_ADMODE_0)
#define QSPI_ComConfig_ADMode_2Line ((uint32_t)QSPI_CCR_ADMODE_1)
#define QSPI_ComConfig_ADMode_4Line ((uint32_t)QSPI_CCR_ADMODE)
/* QSPI_ComConfig_InstructionMode */
#define QSPI_ComConfig_IMode_NoInstruction ((uint32_t)0x00000000)
#define QSPI_ComConfig_IMode_1Line ((uint32_t)QSPI_CCR_IMODE_0)
#define QSPI_ComConfig_IMode_2Line ((uint32_t)QSPI_CCR_IMODE_1)
#define QSPI_ComConfig_IMode_4Line ((uint32_t)QSPI_CCR_IMODE)
/* QSPI_Interrupts_definition */
#define QSPI_IT_TO (uint32_t)(QSPI_CR_TOIE | QSPI_SR_TOF)
#define QSPI_IT_SM (uint32_t)(QSPI_CR_SMIE | QSPI_SR_SMF)
#define QSPI_IT_FT (uint32_t)(QSPI_CR_FTIE | QSPI_SR_FTF)
#define QSPI_IT_TC (uint32_t)(QSPI_CR_TCIE | QSPI_SR_TCF)
#define QSPI_IT_TE (uint32_t)(QSPI_CR_TEIE | QSPI_SR_TEF)
/* QSPI_Flags_definition */
#define QSPI_FLAG_TO QSPI_SR_TOF
#define QSPI_FLAG_SM QSPI_SR_SMF
#define QSPI_FLAG_FT QSPI_SR_FTF
#define QSPI_FLAG_TC QSPI_SR_TCF
#define QSPI_FLAG_TE QSPI_SR_TEF
#define QSPI_FLAG_BUSY QSPI_SR_BUSY
#define QSPI_FLAG_IDLE QSPI_SR_IDLEF
/* QSPI_Polling_Match_Mode */
#define QSPI_PMM_AND ((uint32_t)0x00000000)
#define QSPI_PMM_OR ((uint32_t)QSPI_CR_PMM)
/* QSPI_SIOXEN */
#define QSPI_SIOXEN ((uint32_t)0x00002000)
/* ch32h417_sai.h -----------------------------------------------------------*/
/* SAI_Block_Mode */
#define SAI_Mode_MasterTx ((uint32_t)0x00000000)
#define SAI_Mode_MasterRx ((uint32_t)0x00000001)
#define SAI_Mode_SlaveTx ((uint32_t)0x00000002)
#define SAI_Mode_SlaveRx ((uint32_t)0x00000003)
/* SAI_Block_Protocol */
#define SAI_Free_Protocol ((uint32_t)0x00000000)
#define SAI_SPDIF_Protocol ((uint32_t)SAI_CFGR1_PRTCFG_0)
#define SAI_AC97_Protocol ((uint32_t)SAI_CFGR1_PRTCFG_1)
/* SAI_Block_Data_Size */
#define SAI_DataSize_8b ((uint32_t)0x00000040)
#define SAI_DataSize_10b ((uint32_t)0x00000060)
#define SAI_DataSize_16b ((uint32_t)0x00000080)
#define SAI_DataSize_20b ((uint32_t)0x000000A0)
#define SAI_DataSize_24b ((uint32_t)0x000000C0)
#define SAI_DataSize_32b ((uint32_t)0x000000E0)
/* SAI_Block_MSB_LSB_transmission */
#define SAI_FirstBit_MSB ((uint32_t)0x00000000)
#define SAI_FirstBit_LSB ((uint32_t)SAI_CFGR1_LSBFIRST)
/* SAI_Block_Clock_Strobing */
#define SAI_ClockStrobing_FallingEdge ((uint32_t)0x00000000)
#define SAI_ClockStrobing_RisingEdge ((uint32_t)SAI_CFGR1_CKSTR)
/* SAI_Block_Synchronization */
#define SAI_Asynchronous ((uint32_t)0x00000000)
#define SAI_Synchronous ((uint32_t)SAI_CFGR1_SYNCEN_0)
/* SAI_Block_NoDivider */
#define SAI_MasterDivider_Enabled ((uint32_t)0x00000000)
#define SAI_MasterDivider_Disabled ((uint32_t)SAI_CFGR1_NODIV)
/* SAI_Block_FS_Definition */
#define SAI_FS_StartFrame ((uint32_t)0x00000000)
#define I2S_FS_ChannelIdentification ((uint32_t)SAI_FRCR_FSDEF)
/* SAI_Block_FS_Polarity */
#define SAI_FS_ActiveLow ((uint32_t)0x00000000)
#define SAI_FS_ActiveHigh ((uint32_t)SAI_FRCR_FSPOL)
/* SAI_Block_FS_Offset */
#define SAI_FS_FirstBit ((uint32_t)0x00000000)
#define SAI_FS_BeforeFirstBit ((uint32_t)SAI_FRCR_FSOFF)
/* SAI_Block_Slot_Size */
#define SAI_SlotSize_DataSize ((uint32_t)0x00000000)
#define SAI_SlotSize_16b ((uint32_t)0x00000040)
#define SAI_SlotSize_32b ((uint32_t)0x00000080)
/* SAI_Block_Slot_Active */
#define SAI_Slot_NotActive ((uint32_t)0x00000000)
#define SAI_SlotActive_0 ((uint32_t)0x00010000)
#define SAI_SlotActive_1 ((uint32_t)0x00020000)
#define SAI_SlotActive_2 ((uint32_t)0x00040000)
#define SAI_SlotActive_3 ((uint32_t)0x00080000)
#define SAI_SlotActive_4 ((uint32_t)0x00100000)
#define SAI_SlotActive_5 ((uint32_t)0x00200000)
#define SAI_SlotActive_6 ((uint32_t)0x00400000)
#define SAI_SlotActive_7 ((uint32_t)0x00800000)
#define SAI_SlotActive_8 ((uint32_t)0x01000000)
#define SAI_SlotActive_9 ((uint32_t)0x02000000)
#define SAI_SlotActive_10 ((uint32_t)0x04000000)
#define SAI_SlotActive_11 ((uint32_t)0x08000000)
#define SAI_SlotActive_12 ((uint32_t)0x10000000)
#define SAI_SlotActive_13 ((uint32_t)0x20000000)
#define SAI_SlotActive_14 ((uint32_t)0x40000000)
#define SAI_SlotActive_15 ((uint32_t)0x80000000)
#define SAI_SlotActive_ALL ((uint32_t)0xFFFF0000)
/* SAI_Mono_Streo_Mode */
#define SAI_MonoMode ((uint32_t)SAI_CFGR1_MONO)
#define SAI_StreoMode ((uint32_t)0x00000000)
/* SAI_TRIState_Management */
#define SAI_Output_NotReleased ((uint32_t)0x00000000)
#define SAI_Output_Released ((uint32_t)SAI_CFGR2_TRIS)
/* SAI_Block_Fifo_Threshold */
#define SAI_Threshold_FIFOEmpty ((uint32_t)0x00000000)
#define SAI_FIFOThreshold_1QuarterFull ((uint32_t)0x00000001)
#define SAI_FIFOThreshold_HalfFull ((uint32_t)0x00000002)
#define SAI_FIFOThreshold_3QuartersFull ((uint32_t)0x00000003)
#define SAI_FIFOThreshold_Full ((uint32_t)0x00000004)
/* SAI_Block_Companding_Mode */
#define SAI_NoCompanding ((uint32_t)0x00000000)
#define SAI_ULaw_1CPL_Companding ((uint32_t)0x00008000)
#define SAI_ALaw_1CPL_Companding ((uint32_t)0x0000C000)
#define SAI_ULaw_2CPL_Companding ((uint32_t)0x0000A000)
#define SAI_ALaw_2CPL_Companding ((uint32_t)0x0000E000)
/* SAI_Block_Mute_Value */
#define SAI_ZeroValue ((uint32_t)0x00000000)
#define SAI_LastSentValue ((uint32_t)SAI_CFGR2_MUTEVAL)
/* SAI_Block_Interrupts_Definition */
#define SAI_IT_OVRUDR ((uint32_t)SAI_INTENR_OVRUDRIE)
#define SAI_IT_MUTEDET ((uint32_t)SAI_INTENR_MUTEDETIE)
#define SAI_IT_WCKCFG ((uint32_t)SAI_INTENR_WCKCFGIE)
#define SAI_IT_FREQ ((uint32_t)SAI_INTENR_FREQIE)
#define SAI_IT_CNRDY ((uint32_t)SAI_INTENR_CNRDYIE)
#define SAI_IT_AFSDET ((uint32_t)SAI_INTENR_AFSDETIE)
#define SAI_IT_LFSDET ((uint32_t)SAI_INTENR_LFSDETIE)
/* SAI_Block_Flags_Definition */
#define SAI_FLAG_OVRUDR ((uint32_t)SAI_SR_OVRUDR)
#define SAI_FLAG_MUTEDET ((uint32_t)SAI_SR_MUTEDET)
#define SAI_FLAG_WCKCFG ((uint32_t)SAI_SR_WCKCFG)
#define SAI_FLAG_FREQ ((uint32_t)SAI_SR_FREQ)
#define SAI_FLAG_CNRDY ((uint32_t)SAI_SR_CNRDY)
#define SAI_FLAG_AFSDET ((uint32_t)SAI_SR_AFSDET)
#define SAI_FLAG_LFSDET ((uint32_t)SAI_SR_LFSDET)
/* SAI_Block_Fifo_Status_Level */
#define SAI_FIFOStatus_Empty ((uint32_t)0x00000000)
#define SAI_FIFOStatus_Less1QuarterFull ((uint32_t)0x00010000)
#define SAI_FIFOStatus_1QuarterFull ((uint32_t)0x00020000)
#define SAI_FIFOStatus_HalfFull ((uint32_t)0x00030000)
#define SAI_FIFOStatus_3QuartersFull ((uint32_t)0x00040000)
#define SAI_FIFOStatus_Full ((uint32_t)0x00050000)
/* ch32h417_sdmmc.h -----------------------------------------------------------*/
/* SDMMC_Mode */
#define SDMMC_Mode_Host ((uint16_t)0x00000000)
#define SDMMC_Mode_Slave ((uint16_t)SDMMC_SLV_MODE)
/* SDMMC_PhaseInv */
#define SDMMC_Phase_No_Inverse ((uint16_t)0x00000000)
#define SDMMC_Phase_Inverse ((uint16_t)SDMMC_PHASEINV)
/* SDMMC_ClockSpeed */
#define SDMMC_ClockSpeed_Low ((uint16_t)0x00000000)
#define SDMMC_ClockSpeed_High ((uint16_t)(SDMMC_CLKMode))
/* SDMMC_BusWidth */
#define SDMMC_BusWidth_1 ((uint32_t)0x00000000)
#define SDMMC_BusWidth_4 ((uint32_t)0x00000001)
#define SDMMC_BusWidth_8 ((uint32_t)0x00000002)
/* SDMMC_ClockEdge */
#define SDMMC_SampleClock_Rising ((uint8_t)0x00000000)
#define SDMMC_SampleClock_Falling ((uint8_t)SDMMC_NEGSMP)
/* SDMMC_RespExpect */
#define SDMMC_Resp_NONE ((uint16_t)0x0000)
#define SDMMC_Resp_136 ((uint16_t)0x00100)
#define SDMMC_Resp_48 ((uint16_t)0x00200)
#define SDMMC_Resp_R1b ((uint16_t)0x00300)
/* TranMode_Direction */
#define SDMMC_TranDir_Receive ((uint32_t)0x00000000)
#define SDMMC_TranDir_Send ((uint32_t)SDMMC_DMA_DIR)
/* DDR_ClockSW_Mode */
#define SDMMC_DDR_ClockSW_Mode_In ((uint32_t)0x00000000)
#define SDMMC_DDR_ClockSW_Mode_Auto ((uint32_t)0x00080000)
#define SDMMC_DDR_ClockSW_Mode_Force ((uint32_t)0x00100000)
/* SDMMC_Flags */
#define SDMMC_FLAG_SLV_BUF_RELEASE ((uint16_t)0x0400)
#define SDMMC_FLAG_SDIOINT ((uint16_t)0x0200)
#define SDMMC_FLAG_FIFO_OV ((uint16_t)0x0100)
#define SDMMC_FLAG_BKGAP ((uint16_t)0x0080)
#define SDMMC_FLAG_TRANDONE ((uint16_t)0x0040)
#define SDMMC_FLAG_TRANERR ((uint16_t)0x0020)
#define SDMMC_FLAG_DATTMO ((uint16_t)0x0010)
#define SDMMC_FLAG_CMDDONE ((uint16_t)0x0008)
#define SDMMC_FLAG_REIDX_ER ((uint16_t)0x0004)
#define SDMMC_FLAG_RECRC_WR ((uint16_t)0x0002)
#define SDMMC_FLAG_RE_TMOUT ((uint16_t)0x0001)
/* SDMMC_Interrupt_Sources */
#define SDMMC_IT_SDIOINT ((uint16_t)0x0200)
#define SDMMC_IT_FIFO_OV ((uint16_t)0x0100)
#define SDMMC_IT_BKGAP ((uint16_t)0x0080)
#define SDMMC_IT_TRANDONE ((uint16_t)0x0040)
#define SDMMC_IT_TRANERR ((uint16_t)0x0020)
#define SDMMC_IT_DATTMO ((uint16_t)0x0010)
#define SDMMC_IT_CMDDONE ((uint16_t)0x0008)
#define SDMMC_IT_REIDX_ER ((uint16_t)0x0004)
#define SDMMC_IT_RECRC_WR ((uint16_t)0x0002)
#define SDMMC_IT_RE_TMOUT ((uint16_t)0x0001)
/* ch32h417_swpmi.h -----------------------------------------------------------*/
/* Tx_Buffering_Mode */
#define SWPMI_TxMode_Buffering_None ((uint32_t)0x0)
#define SWPMI_TxMode_Buffering_Single ((uint32_t)0x2)
#define SWPMI_TxMode_Buffering_Multi ((uint32_t)0xA)
/* Rx_Buffering_Mode */
#define SWPMI_RxMode_Buffering_None ((uint32_t)0x0)
#define SWPMI_RxMode_Buffering_Single ((uint32_t)0x1)
#define SWPMI_RxMode_Buffering_Multi ((uint32_t)0x5)
/* SWPMI interrupts definition */
#define SWPMI_IT_RXBF ((uint16_t)0x0001)
#define SWPMI_IT_TXBE ((uint16_t)0x0002)
#define SWPMI_IT_RXBER ((uint16_t)0x0004)
#define SWPMI_IT_RXOVR ((uint16_t)0x0008)
#define SWPMI_IT_TXUNR ((uint16_t)0x0010)
#define SWPMI_IT_RXNE ((uint16_t)0x0020)
#define SWPMI_IT_TXE ((uint16_t)0x0040)
#define SWPMI_IT_TC ((uint16_t)0x0080)
#define SWPMI_IT_SR ((uint16_t)0x0100)
#define SWPMI_IT_RDY ((uint16_t)0x0800)
/* SWPMI flags definition */
#define SWPMI_FLAG_RXBF ((uint16_t)0x0001)
#define SWPMI_FLAG_TXBE ((uint16_t)0x0002)
#define SWPMI_FLAG_RXBER ((uint16_t)0x0004)
#define SWPMI_FLAG_RXOVR ((uint16_t)0x0008)
#define SWPMI_FLAG_TXUNR ((uint16_t)0x0010)
#define SWPMI_FLAG_RXNE ((uint16_t)0x0020)
#define SWPMI_FLAG_TXE ((uint16_t)0x0040)
#define SWPMI_FLAG_TC ((uint16_t)0x0080)
#define SWPMI_FLAG_SR ((uint16_t)0x0100)
#define SWPMI_FLAG_SUSP ((uint16_t)0x0200)
#define SWPMI_FLAG_DEACT ((uint16_t)0x0400)
#define SWPMI_FLAG_RDY ((uint16_t)0x0800)
/* ch32h417_usbpd.h -----------------------------------------------------------*/
/* Register Bit Definition */
/* USBPD->CONFIG */
#define PD_FILT_ED (1<<0) /* PD pin input filter enable */
#define PD_ALL_CLR (1<<1) /* Clear all interrupt flags */
#define CC_SEL (1<<2) /* Select PD communication port */
#define PD_DMA_EN (1<<3) /* Enable DMA for USBPD */
#define PD_RST_EN (1<<4) /* PD mode reset command enable */
#define WAKE_POLAR (1<<5) /* PD port wake-up level */
#define IE_PD_IO (1<<10) /* PD IO interrupt enable */
#define IE_RX_BIT (1<<11) /* Receive bit interrupt enable */
#define IE_RX_BYTE (1<<12) /* Receive byte interrupt enable */
#define IE_RX_ACT (1<<13) /* Receive completion interrupt enable */
#define IE_RX_RESET (1<<14) /* Reset interrupt enable */
#define IE_TX_END (1<<15) /* Transfer completion interrupt enable */
/* USBPD->CONTROL */
#define PD_TX_EN (1<<0) /* USBPD transceiver mode and transmit enable */
#define BMC_START (1<<1) /* BMC send start signal */
#define RX_STATE_0 (1<<2) /* PD received state bit 0 */
#define RX_STATE_1 (1<<3) /* PD received state bit 1 */
#define RX_STATE_2 (1<<4) /* PD received state bit 2 */
#define DATA_FLAG (1<<5) /* Cache data valid flag bit */
#define TX_BIT_BACK (1<<6) /* Indicates the current bit status of the BMC when sending the code */
#define BMC_BYTE_HI (1<<7) /* Indicates the current half-byte status of the PD data being sent and received */
/* USBPD->TX_SEL */
#define TX_SEL1 (0<<0)
#define TX_SEL1_SYNC1 (0<<0) /* 0-SYNC1 */
#define TX_SEL1_RST1 (1<<0) /* 1-RST1 */
#define TX_SEL2_Mask (3<<2)
#define TX_SEL2_SYNC1 (0<<2) /* 00-SYNC1 */
#define TX_SEL2_SYNC3 (1<<2) /* 01-SYNC3 */
#define TX_SEL2_RST1 (2<<2) /* 1x-RST1 */
#define TX_SEL3_Mask (3<<4)
#define TX_SEL3_SYNC1 (0<<4) /* 00-SYNC1 */
#define TX_SEL3_SYNC3 (1<<4) /* 01-SYNC3 */
#define TX_SEL3_RST1 (2<<4) /* 1x-RST1 */
#define TX_SEL4_Mask (3<<6)
#define TX_SEL4_SYNC2 (0<<6) /* 00-SYNC2 */
#define TX_SEL4_SYNC3 (1<<6) /* 01-SYNC3 */
#define TX_SEL4_RST2 (2<<6) /* 1x-RST2 */
/* USBPD->STATUS */
#define BMC_AUX_Mask (3<<0) /* Clear BMC auxiliary information */
#define BMC_AUX_INVALID (0<<0) /* 00-Invalid */
#define BMC_AUX_SOP0 (1<<0) /* 01-SOP0 */
#define BMC_AUX_SOP1_HRST (2<<0) /* 10-SOP1 hard reset */
#define BMC_AUX_SOP2_CRST (3<<0) /* 11-SOP2 cable reset */
#define BUF_ERR (1<<2) /* BUFFER or DMA error interrupt flag */
#define IF_RX_BIT (1<<3) /* Receive bit or 5bit interrupt flag */
#define IF_RX_BYTE (1<<4) /* Receive byte or SOP interrupt flag */
#define IF_RX_ACT (1<<5) /* Receive completion interrupt flag */
#define IF_RX_RESET (1<<6) /* Receive reset interrupt flag */
#define IF_TX_END (1<<7) /* Transfer completion interrupt flag */
/* USBPD->PORT_CC1 */
/* USBPD->PORT_CC2 */
#define PA_CC_AI (1<<0) /* CC port comparator analogue input */
#define CC_PD (1<<1) /* CC port pull-down resistor enable */
#define CC_PU_Mask (3<<2) /* Clear CC port pull-up current */
#define CC_NO_PU (0<<2) /* 00-Prohibit pull-up current */
#define CC_PU_330 (1<<2) /* 01-330uA */
#define CC_PU_180 (2<<2) /* 10-180uA */
#define CC_PU_80 (3<<2) /* 11-80uA */
#define CC_LVE (1<<4) /* CC port output low voltage enable */
#define CC_CMP_Mask (7<<5) /* Clear CC_CMP*/
#define CC_NO_CMP (0<<5) /* 000-closed */
#define CC_CMP_22 (2<<5) /* 010-0.22V */
#define CC_CMP_45 (3<<5) /* 011-0.45V */
#define CC_CMP_55 (4<<5) /* 100-0.55V */
#define CC_CMP_66 (5<<5) /* 101-0.66V */
#define CC_CMP_95 (6<<5) /* 110-0.95V */
#define CC_CMP_123 (7<<5) /* 111-1.23V */
#define USBPD_IN_HVT (1<<9)
/*********************************************************
* PD pin PC14/PC15 high threshold input mode:
* 1-High threshold input (2.2V typical), to reduce the I/O power consumption during PD communication
* 0-Normal GPIO threshold input
* *******************************************************/
#define USBPD_PHY_V33 (1<<8)
/**********************************************************
* PD transceiver PHY pull-up limit configuration bits:
* 1-Direct use of VDD for GPIO applications or PD applications with VDD voltage of 3.3V
* 0-LDO buck enabled, limited to approx 3.3V, for PD applications with VDD more than 4V
* ********************************************************/
/* Control Message Types */
#define DEF_TYPE_RESERVED 0x00
#define DEF_TYPE_GOODCRC 0x01 /* Send By: Source,Sink,Cable Plug */
#define DEF_TYPE_GOTOMIN 0x02 /* Send By: Source */
#define DEF_TYPE_ACCEPT 0x03 /* Send By: Source,Sink,Cable Plug */
#define DEF_TYPE_REJECT 0x04 /* Send By: Source,Sink,Cable Plug */
#define DEF_TYPE_PING 0x05 /* Send By: Source */
#define DEF_TYPE_PS_RDY 0x06 /* Send By: Source,Sink */
#define DEF_TYPE_GET_SRC_CAP 0x07 /* Send By: Sink,DRP */
#define DEF_TYPE_GET_SNK_CAP 0x08 /* Send By: Source,DRP */
#define DEF_TYPE_DR_SWAP 0x09 /* Send By: Source,Sink */
#define DEF_TYPE_PR_SWAP 0x0A /* Send By: Source,Sink */
#define DEF_TYPE_VCONN_SWAP 0x0B /* Send By: Source,Sink */
#define DEF_TYPE_WAIT 0x0C /* Send By: Source,Sink */
#define DEF_TYPE_SOFT_RESET 0x0D /* Send By: Source,Sink */
#define DEF_TYPE_DATA_RESET 0x0E /* Send By: Source,Sink */
#define DEF_TYPE_DATA_RESET_CMP 0x0F /* Send By: Source,Sink */
#define DEF_TYPE_NOT_SUPPORT 0x10 /* Send By: Source,Sink,Cable Plug */
#define DEF_TYPE_GET_SRC_CAP_EX 0x11 /* Send By: Sink,DRP */
#define DEF_TYPE_GET_STATUS 0x12 /* Send By: Source,Sink */
#define DEF_TYPE_GET_STATUS_R 0X02 /* ext=1 */
#define DEF_TYPE_FR_SWAP 0x13 /* Send By: Sink */
#define DEF_TYPE_GET_PPS_STATUS 0x14 /* Send By: Sink */
#define DEF_TYPE_GET_CTY_CODES 0x15 /* Send By: Source,Sink */
#define DEF_TYPE_GET_SNK_CAP_EX 0x16 /* Send By: Source,DRP */
#define DEF_TYPE_GET_SRC_INFO 0x17 /* Send By: Sink,DRP */
#define DEF_TYPE_GET_REVISION 0x18 /* Send By: Source,Sink */
/* Data Message Types */
#define DEF_TYPE_SRC_CAP 0x01 /* Send By: Source,Dual-Role Power */
#define DEF_TYPE_REQUEST 0x02 /* Send By: Sink */
#define DEF_TYPE_BIST 0x03 /* Send By: Tester,Source,Sink */
#define DEF_TYPE_SNK_CAP 0x04 /* Send By: Sink,Dual-Role Power */
#define DEF_TYPE_BAT_STATUS 0x05 /* Send By: Source,Sink */
#define DEF_TYPE_ALERT 0x06 /* Send By: Source,Sink */
#define DEF_TYPE_GET_CTY_INFO 0x07 /* Send By: Source,Sink */
#define DEF_TYPE_ENTER_USB 0x08 /* Send By: DFP */
#define DEF_TYPE_EPR_REQUEST 0x09 /* Send By: Sink */
#define DEF_TYPE_EPR_MODE 0x0A /* Send By: Source,Sink */
#define DEF_TYPE_SRC_INFO 0x0B /* Send By: Source */
#define DEF_TYPE_REVISION 0x0C /* Send By: Source,Sink,Cable Plug */
#define DEF_TYPE_VENDOR_DEFINED 0x0F /* Send By: Source,Sink,Cable Plug */
/* Vendor Define Message Command */
#define DEF_VDM_DISC_IDENT 0x01
#define DEF_VDM_DISC_SVID 0x02
#define DEF_VDM_DISC_MODE 0x03
#define DEF_VDM_ENTER_MODE 0x04
#define DEF_VDM_EXIT_MODE 0x05
#define DEF_VDM_ATTENTION 0x06
#define DEF_VDM_DP_S_UPDATE 0x10
#define DEF_VDM_DP_CONFIG 0x11
/* PD Revision */
#define DEF_PD_REVISION_10 0x00
#define DEF_PD_REVISION_20 0x01
#define DEF_PD_REVISION_30 0x02
/* PD PHY Channel */
#define DEF_PD_CC1 0x00
#define DEF_PD_CC2 0x01
#define PIN_CC1 GPIO_Pin_3
#define PIN_CC2 GPIO_Pin_4
/* PD Tx Status */
#define DEF_PD_TX_OK 0x00
#define DEF_PD_TX_FAIL 0x01
/* PDO INDEX */
#define PDO_INDEX_1 1
#define PDO_INDEX_2 2
#define PDO_INDEX_3 3
#define PDO_INDEX_4 4
#define PDO_INDEX_5 5
/******************************************************************************/
#define UPD_TMR_TX_120M (200-1) /* timer value for USB PD BMC transmittal @Fsys=120MHz */
#define UPD_TMR_RX_120M (300-1) /* timer value for USB PD BMC receiving @Fsys=120MHz */
#define UPD_TMR_TX_96M (160-1) /* timer value for USB PD BMC transmittal @Fsys=96MHz */
#define UPD_TMR_RX_96M (240-1) /* timer value for USB PD BMC receiving @Fsys=96MHz */
#define UPD_TMR_TX_48M (80-1) /* timer value for USB PD BMC transmittal @Fsys=48MHz */
#define UPD_TMR_RX_48M (120-1) /* timer value for USB PD BMC receiving @Fsys=48MHz */
#define UPD_TMR_TX_24M (40-1) /* timer value for USB PD BMC transmittal @Fsys=24MHz */
#define UPD_TMR_RX_24M (60-1) /* timer value for USB PD BMC receiving @Fsys=24MHz */
#define UPD_TMR_TX_12M (20-1) /* timer value for USB PD BMC transmittal @Fsys=12MHz */
#define UPD_TMR_RX_12M (30-1) /* timer value for USB PD BMC receiving @Fsys=12MHz */
#define MASK_PD_STAT 0x03 /* Bit mask for current PD status */
#define PD_RX_SOP0 0x01 /* SOP0 received */
#define PD_RX_SOP1_HRST 0x02 /* SOP1 or Hard Reset received */
#define PD_RX_SOP2_CRST 0x03 /* SOP2 or Cable Reset received */
#define UPD_SOP0 ( TX_SEL1_SYNC1 | TX_SEL2_SYNC1 | TX_SEL3_SYNC1 | TX_SEL4_SYNC2 ) /* SOP1 */
#define UPD_SOP1 ( TX_SEL1_SYNC1 | TX_SEL2_SYNC1 | TX_SEL3_SYNC3 | TX_SEL4_SYNC3 ) /* SOP2 */
#define UPD_SOP2 ( TX_SEL1_SYNC1 | TX_SEL2_SYNC3 | TX_SEL3_SYNC1 | TX_SEL4_SYNC3 ) /* SOP3 */
#define UPD_HARD_RESET ( TX_SEL1_RST1 | TX_SEL2_RST1 | TX_SEL3_RST1 | TX_SEL4_RST2 ) /* Hard Reset*/
#define UPD_CABLE_RESET ( TX_SEL1_RST1 | TX_SEL2_SYNC1 | TX_SEL3_RST1 | TX_SEL4_SYNC3 ) /* Cable Reset*/
/* ch32h417_hsem.c -----------------------------------------------------------*/
/* HSEM Key */
#define HSEM_KEY (0x5AA50000)
#ifdef __cplusplus
};
#endif
// For debug writing to the debug interface.
#define DMDATA0 ((volatile uint32_t*)0xe0000340)
#define DMDATA1 ((volatile uint32_t*)0xe0000344)
#define DMSTATUS_SENTINEL ((volatile uint32_t*)0xe0000348)// Reads as 0x00000000 if debugger is attached.
// Determination of PLL multiplication factor for non-V003 chips
#if !defined(FUNCONF_SYSTEM_CORE_CLOCK)
#define PLL_MULTIPLICATION ((uint32_t)0)
#elif defined(FUNCONF_USE_PLL) && FUNCONF_USE_PLL
#if FUNCONF_PLL_MULTIPLIER == 4
#define PLL_MULTIPLICATION RCC_PLLMUL4
#elif FUNCONF_PLL_MULTIPLIER == 6
#define PLL_MULTIPLICATION RCC_PLLMUL6
#elif FUNCONF_PLL_MULTIPLIER == 7
#define PLL_MULTIPLICATION RCC_PLLMUL7
#elif FUNCONF_PLL_MULTIPLIER == 8
#define PLL_MULTIPLICATION RCC_PLLMUL8
#elif FUNCONF_PLL_MULTIPLIER == 9
#define PLL_MULTIPLICATION RCC_PLLMUL9
#elif FUNCONF_PLL_MULTIPLIER == 10
#define PLL_MULTIPLICATION RCC_PLLMUL10
#elif FUNCONF_PLL_MULTIPLIER == 11
#define PLL_MULTIPLICATION RCC_PLLMUL11
#elif FUNCONF_PLL_MULTIPLIER == 12
#define PLL_MULTIPLICATION RCC_PLLMUL12
#elif FUNCONF_PLL_MULTIPLIER == 13
#define PLL_MULTIPLICATION RCC_PLLMUL13
#elif FUNCONF_PLL_MULTIPLIER == 14
#define PLL_MULTIPLICATION RCC_PLLMUL14
#elif FUNCONF_PLL_MULTIPLIER == 15
#define PLL_MULTIPLICATION RCC_PLLMUL15
#elif FUNCONF_PLL_MULTIPLIER == 16
#define PLL_MULTIPLICATION RCC_PLLMUL16
#elif FUNCONF_PLL_MULTIPLIER == 17
#define PLL_MULTIPLICATION RCC_PLLMUL17
#elif FUNCONF_PLL_MULTIPLIER == 18
#define PLL_MULTIPLICATION RCC_PLLMUL18
#elif FUNCONF_PLL_MULTIPLIER == 19
#define PLL_MULTIPLICATION RCC_PLLMUL19
#elif FUNCONF_PLL_MULTIPLIER == 20
#define PLL_MULTIPLICATION RCC_PLLMUL20
#elif FUNCONF_PLL_MULTIPLIER == 22
#define PLL_MULTIPLICATION RCC_PLLMUL22
#elif FUNCONF_PLL_MULTIPLIER == 24
#define PLL_MULTIPLICATION RCC_PLLMUL24
#elif FUNCONF_PLL_MULTIPLIER == 26
#define PLL_MULTIPLICATION RCC_PLLMUL26
#elif FUNCONF_PLL_MULTIPLIER == 28
#define PLL_MULTIPLICATION RCC_PLLMUL28
#elif FUNCONF_PLL_MULTIPLIER == 30
#define PLL_MULTIPLICATION RCC_PLLMUL30
#elif FUNCONF_PLL_MULTIPLIER == 32
#define PLL_MULTIPLICATION RCC_PLLMUL32
#elif FUNCONF_PLL_MULTIPLIER == 34
#define PLL_MULTIPLICATION RCC_PLLMUL34
#elif FUNCONF_PLL_MULTIPLIER == 36
#define PLL_MULTIPLICATION RCC_PLLMUL36
#elif FUNCONF_PLL_MULTIPLIER == 38
#define PLL_MULTIPLICATION RCC_PLLMUL38
#elif FUNCONF_PLL_MULTIPLIER == 40
#define PLL_MULTIPLICATION RCC_PLLMUL40
#elif FUNCONF_PLL_MULTIPLIER == 59
#define PLL_MULTIPLICATION RCC_PLLMUL59
#else
#error "Invalid PLL multiplier"
#endif
#endif
/* some bit definitions for systick regs */
#define SYSTICK_SR_CNTIF_V3F (1<<0)
#define SYSTICK_SR_SWIE (1<<31)
#define SYSTICK_SR_CNTIF_V5F (1<<1)
#define SYSTICK_CTLR_STE (1<<0)
#define SYSTICK_CTLR_STIE (1<<1)
#define SYSTICK_CTLR_STCLK (1<<2)
#define SYSTICK_CTLR_STRE (1<<3)
#define PFIC ((PFIC_Type *) PFIC_BASE )
#define NVIC PFIC
#define NVIC_KEY3 ((uint32_t)0xBEEF0080)
#define SysTick ((SysTick_Type *) SysTick_BASE)
#define PA0 0
#define PA1 1
#define PA2 2
#define PA3 3
#define PA4 4
#define PA5 5
#define PA6 6
#define PA7 7
#define PA8 8
#define PA9 9
#define PA10 10
#define PA11 11
#define PA12 12
#define PA13 13
#define PA14 14
#define PA15 15
#define PB0 16
#define PB1 17
#define PB2 18
#define PB3 19
#define PB4 20
#define PB5 21
#define PB6 22
#define PB7 23
#define PB8 24
#define PB9 25
#define PB10 26
#define PB11 27
#define PB12 28
#define PB13 29
#define PB14 30
#define PB15 31
#define PC0 32
#define PC1 33
#define PC2 34
#define PC3 35
#define PC4 36
#define PC5 37
#define PC6 38
#define PC7 39
#define PC8 40
#define PC9 41
#define PC10 42
#define PC11 43
#define PC12 44
#define PC13 45
#define PC14 46
#define PC15 47
#define PD0 48
#define PD1 49
#define PD2 50
#define PD3 51
#define PD4 52
#define PD5 53
#define PD6 54
#define PD7 55
#define PD8 56
#define PD9 57
#define PD10 58
#define PD11 59
#define PD12 60
#define PD13 61
#define PD14 62
#define PD15 63
#define PE0 64
#define PE1 65
#define PE2 66
#define PE3 67
#define PE4 68
#define PE5 69
#define PE6 70
#define PE7 71
#define PE8 72
#define PE9 73
#define PE10 74
#define PE11 75
#define PE12 76
#define PE13 77
#define PE14 78
#define PE15 79
#define PF0 80
#define PF1 81
#define PF2 82
#define PF3 83
#define PF4 84
#define PF5 85
#define PF6 86
#define PF7 87
#define PF8 88
#define PF9 89
#define PF10 90
#define PF11 91
#define PF12 92
#define PF13 93
#define PF14 94
#define PF15 95
#define GPIO_CNF_IN_ANALOG 0
#define GPIO_CNF_IN_FLOATING 4
#define GPIO_CNF_IN_PUPD 8
#define GPIO_CNF_OUT_PP 1
#define GPIO_CNF_OUT_OD 5
#define GPIO_CNF_OUT_PP_AF 9
#define GPIO_CNF_OUT_OD_AF 13
typedef enum
{ GPIO_Mode_AIN = GPIO_CNF_IN_ANALOG,
GPIO_Mode_IN_FLOATING = GPIO_CNF_IN_FLOATING,
GPIO_Mode_IPUPD = GPIO_CNF_IN_PUPD,
GPIO_Mode_Out_OD = GPIO_CNF_OUT_OD,
GPIO_Mode_Out_PP = GPIO_CNF_OUT_PP,
GPIO_Mode_AF_OD = GPIO_CNF_OUT_OD_AF,
GPIO_Mode_AF_PP = GPIO_CNF_OUT_PP_AF
} GPIOMode_TypeDef;
#define __DTCM __attribute__((section(".dtcm")))
#define __ITCM __attribute__((section(".itcm")))
typedef int (*v5f_main)(void);
void StartV5F(v5f_main function);
/*
* This file contains various parts of the official WCH EVT Headers which
* were originally under a restrictive license.
*
* The collection of this file was generated by
* cnlohr, 2023-02-18 and
* AlexanderMandera, 2023-06-23
* It was significantly reworked into several files cnlohr, 2025-01-29
*
* While originally under a restrictive copyright, WCH has approved use
* under MIT-licensed use, because of inclusion in Zephyr, as well as other
* open-source licensed projects.
*
* These copies of the headers from WCH are available now under:
*
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the “Software”), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#endif // Header guard