//----------------------------------------------------//
#define ADCs (*((NU_ADC_T *) ADC_BASE))//定位全局结构变量ADCs
//----------------------------------------------------//
#define ADCx ((NU_ADC_T *) ADC_BASE)
//----------------------------------------------------//
typedef enum
{
SYSCLK_PWRCON_XTL12M_EN = 0,//外部12MHz晶振控制
SYSCLK_PWRCON_XTL32K_EN = 1,//外部32.768KHz晶振控制
SYSCLK_PWRCON_OSC22M_EN = 2,//内部22MHz振荡器控制
SYSCLK_PWRCON_OSC10K_EN = 3,//内部10KHz振荡器控制
SYSCLK_PWRCON_PD_WU_DLY = 4,//使能唤醒延时计数器
SYSCLK_PWRCON_PD_WU_INT_EN = 5,//掉电模式唤醒的中断使能
SYSCLK_PWRCON_PD_WU_STS = 6,//芯片掉电唤醒状态标志
SYSCLK_PWRCON_PWR_DOWN = 7,//激活或使能系统掉电模式
SYSCLK_PWRCON_PD_WAIT_CPU = 8 //控制进入掉电模式的条件
}NU_SYSCLK_PWRCON_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_PWRCON_T Bits;
}NU_SYSCLK_PWRCON_T;
typedef enum
{
SYSCLK_AHBCLK_PDMA_EN = 1,//PDMA控制器时钟使能控制
SYSCLK_AHBCLK_ISP_EN = 2,//Flash ISP控制器时钟使能控制
SYSCLK_AHBCLK_EBI_EN = 3 //
}NU_SYSCLK_AHBCLK_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_AHBCLK_T Bits;
}NU_SYSCLK_AHBCLK_T;
typedef enum
{
SYSCLK_APBCLK_WDT_EN = 0,//Watch Dog时钟使能
SYSCLK_APBCLK_RTC_EN = 1,//Real-Time-Clock APB接口时钟控制
SYSCLK_APBCLK_TMR0_EN = 2,//Timer0时钟使能控制
SYSCLK_APBCLK_TMR1_EN = 3,//Timer1时钟使能控制
SYSCLK_APBCLK_TMR2_EN = 4,//Timer2时钟使能控制
SYSCLK_APBCLK_TMR3_EN = 5,//Timer3时钟使能控制
SYSCLK_APBCLK_FDIV_EN = 6,//分频器输出时钟使能控制
SYSCLK_APBCLK_I2C0_EN = 8,//I2C0时钟使能控制
SYSCLK_APBCLK_I2C1_EN = 9,//I2C1时钟使能控制
SYSCLK_APBCLK_SPI0_EN = 12,//SPI0时钟使能控制
SYSCLK_APBCLK_SPI1_EN = 13,//SPI1时钟使能控制
SYSCLK_APBCLK_SPI2_EN = 14,//SPI2时钟使能控制
SYSCLK_APBCLK_SPI3_EN = 15,//SPI3时钟使能控制
SYSCLK_APBCLK_UART0_EN = 16,//UART0时钟使能控制
SYSCLK_APBCLK_UART1_EN = 17,//UART1时钟使能控制
SYSCLK_APBCLK_UART2_EN = 18,//UART2时钟使能控制
SYSCLK_APBCLK_PWM01_EN = 20,//PWM_01时钟使能控制
SYSCLK_APBCLK_PWM23_EN = 21,//PWM_23时钟使能控制
SYSCLK_APBCLK_PWM45_EN = 22,//PWM_45时钟使能控制
SYSCLK_APBCLK_PWM67_EN = 23,//PWM_67时钟使能控制
SYSCLK_APBCLK_CAN0_EN = 24,//使能CAN线控制器0时钟控制
SYSCLK_APBCLK_USBD_EN = 27,//USB FS设备控制器时钟使能控制
SYSCLK_APBCLK_ADC_EN = 28,//使能ADC时钟控制
SYSCLK_APBCLK_I2S_EN = 29,//I2S时钟使能控制
SYSCLK_APBCLK_ACMP_EN = 30,//模拟比较器时钟使能控制
SYSCLK_APBCLK_PS2_EN = 31//PS2时钟使能控制
}NU_SYSCLK_APBCLK_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_APBCLK_T Bits;
}NU_SYSCLK_APBCLK_T;
typedef enum
{
SYSCLK_CLKSTATUS_XTL12M_STB = 0,
SYSCLK_CLKSTATUS_XTL32K_STB = 1,
SYSCLK_CLKSTATUS_PLL_STB = 2,
SYSCLK_CLKSTATUS_OSC10K_STB = 3,
SYSCLK_CLKSTATUS_OSC22M_STB = 4,
SYSCLK_CLKSTATUS_RESERVE0 = 5,
SYSCLK_CLKSTATUS_CLK_SW_FAIL = 7
}NU_SYSCLK_CLKSTATUS_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_CLKSTATUS_T Bits;
}NU_SYSCLK_CLKSTATUS_T;
typedef enum
{
SYSCLK_CLKSEL0_HCLK_S = 0,
SYSCLK_CLKSEL0_STCLK_S = 3
}NU_SYSCLK_CLKSEL0_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_CLKSEL0_T Bits;
}NU_SYSCLK_CLKSEL0_T;
typedef enum
{
SYSCLK_CLKSEL1_WDT_S = 0,//WDGCLK时钟源选择
SYSCLK_CLKSEL1_ADC_S = 1,//ADC时钟源选择
SYSCLK_CLKSEL1_TMR0_S = 8,//TIMER0时钟源选择
SYSCLK_CLKSEL1_TMR1_S = 12,//TIMER1时钟源选择
SYSCLK_CLKSEL1_TMR2_S = 16,//TIMER2时钟源选择
SYSCLK_CLKSEL1_TMR3_S = 20,//TIMER3时钟源选择
SYSCLK_CLKSEL1_UART_S = 24,//UART时钟源选择
SYSCLK_CLKSEL1_CAN_S = 26,//CAN时钟源选择
SYSCLK_CLKSEL1_PWM01_S = 28,//PWM1与PWM0的时钟源选择
SYSCLK_CLKSEL1_PWM23_S = 30 //PWM3与PWM2的时钟源选择.
}NU_SYSCLK_CLKSEL1_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_CLKSEL1_T Bits;
}NU_SYSCLK_CLKSEL1_T;
typedef enum
{
SYSCLK_CLKDIV_HCLK_N = 0,//HCLK时钟频率=(HCLK时钟源频率)/(HCLK_N+1)
SYSCLK_CLKDIV_USB_N = 4,//USB时钟频率=(PLL频率)/(USB_N+1)
SYSCLK_CLKDIV_UART_N = 8,//UART时钟频率=(UART时钟源频率)/(UART_N+1)
SYSCLK_CLKDIV_CAN_N = 12,//APU时钟频率=(CAN时钟源频率)/(CAN_N+1)
SYSCLK_CLKDIV_ADC_N = 16,//ADC时钟频率=ADC时钟源频率/(ADC_N+1)
SYSCLK_CLKDIV_CAN_N_EXT = 24//
}NU_SYSCLK_CLKDIV_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_CLKDIV_T Bits;
}NU_SYSCLK_CLKDIV_T;
typedef enum
{
SYSCLK_CLKSEL2_I2S_S = 0,//I2S时钟源选择
SYSCLK_CLKSEL2_FRQDIV_S = 2,//时钟分频器时钟源选择
SYSCLK_CLKSEL2_PWM45_S = 4,//PWM4与PWM5的时钟源选择
SYSCLK_CLKSEL2_PWM67_S = 6 //PWM6与PWM7的时钟源选择
}NU_SYSCLK_CLKSEL2_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_CLKSEL2_T Bits;
}NU_SYSCLK_CLKSEL2_T;
typedef enum
{
SYSCLK_PLLCON_FB_DV = 0,//PLL反馈分频控制引脚
SYSCLK_PLLCON_IN_DV = 9,//PLL输入分频控制引脚
SYSCLK_PLLCON_OUT_DV = 14,//PLL输出分频控制引脚
SYSCLK_PLLCON_PD = 16,//掉电模式
SYSCLK_PLLCON_BP = 17,//PLL旁路控制
SYSCLK_PLLCON_OE = 18,//PLL OE(FOUT enable)引脚控制
SYSCLK_PLLCON_PLL_SRC = 19 //PLL时钟源选择
}NU_SYSCLK_PLLCON_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_PLLCON_T Bits;
}NU_SYSCLK_PLLCON_T;
typedef enum
{
SYSCLK_FRQDIV_FSEL = 0,//分频器输出频率选择位
SYSCLK_FRQDIV_FDIV_EN = 4 //频率分频器使能位
}NU_SYSCLK_FRQDIV_ENUM;
typedef volatile union
{
NU_REG Regs;
SYSCLK_FRQDIV_T Bits;
}NU_SYSCLK_FRQDIV_T;
typedef struct
{
__IO NU_SYSCLK_PWRCON_T PWRCON;//系统掉电控制寄存器
__IO NU_SYSCLK_AHBCLK_T AHBCLK;//AHB设备时钟使能控制寄存器
__IO NU_SYSCLK_APBCLK_T APBCLK;//APB设备时钟使能控制寄存器
__IO NU_SYSCLK_CLKSTATUS_T CLKSTATUS;
__IO NU_SYSCLK_CLKSEL0_T CLKSEL0;//时钟源选择控制寄存器0
__IO NU_SYSCLK_CLKSEL1_T CLKSEL1;//时钟源选择控制寄存器1
__IO NU_SYSCLK_CLKDIV_T CLKDIV;//时钟分频寄存器
__IO NU_SYSCLK_CLKSEL2_T CLKSEL2;//时钟源选择控制寄存器2
__IO NU_SYSCLK_PLLCON_T PLLCON;//PLL 控制寄存器
__IO NU_SYSCLK_FRQDIV_T FRQDIV;//频率分频器控制寄存器
}NU_SYSCLK_T;
//----------------------------------------------------//
#define SYSCLKs (*((NU_SYSCLK_T *) SYSCLK_BASE))//定位全局结构变量SYSCLKs
//----------------------------------------------------//
#define SYSCLKx ((NU_SYSCLK_T *) SYSCLK_BASE)
//----------------------------------------------------//
typedef enum
{
GCR_RSTSRC_RSTS_POR = 0,//RSTS_POR标志位由POR模块的”复位信号”置1
GCR_RSTSRC_RSTS_RESET = 1,//RSTS_PAD标志位由/RESET脚的”复位信号”置1
GCR_RSTSRC_RSTS_WDT = 2,//RSTS_WDG标志位由看门狗模块的”复位信号”置1
GCR_RSTSRC_RSTS_LVR = 3,//RSTS_LVR标志位由低压复位模块的”复位信号”置1
GCR_RSTSRC_RSTS_BOD = 4,//RSTS_BOD标志位由欠压检测模块的”复位信号”置1
GCR_RSTSRC_RSTS_MCU = 5,//RSTS_SYS由来自MCU Cortex_M0的“复位信号“置位
GCR_RSTSRC_RSTS_CPU = 7 //RSTS_CPU标志由硬件置位
}NU_GCR_RSTSRC_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_RSTSRC_T Bits;
}NU_GCR_RSTSRC_T;
typedef enum
{
GCR_IPRSTC1_CHIP_RST = 0,//CHIP复位
GCR_IPRSTC1_CPU_RST = 1,//CPU内核复位
GCR_IPRSTC1_PDMA_RST = 2,//PDMA控制器复位
GCR_IPRSTC1_EBI_RST = 3 //EBI接口复位
}NU_GCR_IPRSTC1_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_IPRSTC1_T Bits;
}NU_GCR_IPRSTC1_T;
typedef enum
{
GCR_IPRSTC2_GPIO_RST = 1,//GPIO控制器复位
GCR_IPRSTC2_TMR0_RST = 2,//Timer0控制器复位
GCR_IPRSTC2_TMR1_RST = 3,//Timer1控制器复位
GCR_IPRSTC2_TMR2_RST = 4,//Timer2控制器复位
GCR_IPRSTC2_TMR3_RST = 5,//Timer3控制器复位
GCR_IPRSTC2_I2C0_RST = 8,//I2C0控制器复位
GCR_IPRSTC2_I2C1_RST = 9,//I2C1控制器复位
GCR_IPRSTC2_SPI0_RST = 12,//SPI0控制器复位
GCR_IPRSTC2_SPI1_RST = 13,//SPI1控制器复位
GCR_IPRSTC2_SPI2_RST = 14,//SPI2控制器复位
GCR_IPRSTC2_SPI3_RST = 15,//SPI3控制器复位
GCR_IPRSTC2_UART0_RST = 16,//UART0控制器复位
GCR_IPRSTC2_UART1_RST = 17,//UART1控制器复位
GCR_IPRSTC2_UART2_RST = 18,//UART2控制器复位
GCR_IPRSTC2_PWM03_RST = 20,//PWM03控制器复位
GCR_IPRSTC2_PWM47_RST = 21,//PWM47控制器复位
GCR_IPRSTC2_ACMP_RST = 22,//模拟比较器控制器复位
GCR_IPRSTC2_PS2_RST = 23,//PS2控制器复位
GCR_IPRSTC2_CAN0_RST = 24,//CAN0控制器复位
GCR_IPRSTC2_USBD_RST = 27,//USB设备控制器复位
GCR_IPRSTC2_ADC_RST = 28,//ADC控制器复位
GCR_IPRSTC2_I2S_RST = 29,//I2S控制器复位
}NU_GCR_IPRSTC2_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_IPRSTC2_T Bits;
}NU_GCR_IPRSTC2_T;
typedef enum
{
GCR_CPR_HPE = 0 //CHIP复位
}NU_GCR_CPR_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_CPR_T Bits;
}NU_GCR_CPR_T;
typedef enum
{
GCR_BODCR_BOD_EN = 0,//欠压检测使能
GCR_BODCR_BOD_VL = 1,//欠压检测Threshold电压选择
GCR_BODCR_BOD_RSTEN = 3,//欠压复位使能
GCR_BODCR_BOD_INTF = 4,//欠压检测中断标志
GCR_BODCR_BOD_LPM = 5,//低压模式下的欠压检测
GCR_BODCR_BOD_OUT = 6,//欠压检测输出的状态位
GCR_BODCR_LVR_EN = 7//低压复位使能
}NU_GCR_BODCR_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_BODCR_T Bits;
}NU_GCR_BODCR_T;
typedef enum
{
GCR_TEMPCR_VTEMP_EN = 0,//温度传感器使能
}NU_GCR_TEMPCR_ENUM;
typedef struct
{
__IO uint32_t VTEMP_EN:1;//温度传感器使能
__I uint32_t RESERVE1:31;
}GCR_TEMPCR_Bits;
typedef volatile union
{
NU_REG Regs;
GCR_TEMPCR_Bits Bits;
}NU_GCR_TEMPCR_T;
typedef enum
{
GCR_GPAMFP_ADC0 = 0, //PA.0 Pin功能选择ADC0
GCR_GPAMFP_ADC1_AD12 = 1, //PA.1 Pin功能选择ADC1
GCR_GPAMFP_ADC2_AD11 = 2, //PA.2 Pin功能选择ADC2
GCR_GPAMFP_ADC3_AD10 = 3, //PA.3 Pin功能选择ADC3
GCR_GPAMFP_ADC4_AD9 = 4, //PA.4 Pin功能选择ADC4
GCR_GPAMFP_ADC5_AD8 = 5, //PA.5 Pin功能选择ADC5
GCR_GPAMFP_ADC6_AD7 = 6, //PA.6 Pin功能选择ADC6
GCR_GPAMFP_ADC7_SS21_AD6 = 7,//PA.7 Pin功能选择ADC7
GCR_GPAMFP_I2C0_SDA = 8, //PA.8 Pin功能选择I2C0_SDA
GCR_GPAMFP_I2C0_SCL = 9, //PA.9 Pin功能选择I2C0_SCL
GCR_GPAMFP_I2C1_SDA_nWR = 10,//PA.10 Pin功能选择I2C1_SDA
GCR_GPAMFP_I2C1_SCL_nRD = 11,//PA.11 Pin功能选择I2C1_SCL
GCR_GPAMFP_PWM0_AD13 = 12, //PA.12 Pin功能选择PWM0
GCR_GPAMFP_PWM1_AD14 = 13, //PA.13 Pin功能选择PWM1
GCR_GPAMFP_PWM2_AD15 = 14, //PA.14 Pin功能选择PWM2
GCR_GPAMFP_PWM3_I2SMCLK = 15,//PA.15 Pin功能选择PWM3
GCR_GPAMFP_SCHMITT = 16, //PA[15:0]I/O史密特触发输入使能
}NU_GCR_GPAMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_GPAMFP_T Bits;
}NU_GCR_GPAMFP_T;
typedef enum
{
GCR_GPBMFP_UART0_RX = 0,//PB.0 Pin功能选择
GCR_GPBMFP_UART0_TX = 1,//PB.1 Pin功能选择
GCR_GPBMFP_UART0_nRTS_nWRL = 2,//PB.2 Pin功能选择
GCR_GPBMFP_UART0_nCTS_nWRH = 3,//PB.3 Pin功能选择
GCR_GPBMFP_UART1_RX = 4,//PB.4 Pin功能选择
GCR_GPBMFP_UART1_TX = 5,//PB.5 Pin功能选择
GCR_GPBMFP_UART1_nRTS_ALE = 6,//PB.6 Pin功能选择
GCR_GPBMFP_UART1_nCTS_nCS = 7,//PB.7 Pin功能选择
GCR_GPBMFP_TM0 = 8,//PB.8 Pin功能选择
GCR_GPBMFP_TM1_SS11 = 9,//PB.9 Pin功能选择
GCR_GPBMFP_TM2_SS01 = 10,//PB.10 Pin功能选择
GCR_GPBMFP_TM3_PWM4 = 11,//PB.11 Pin功能选择
GCR_GPBMFP_CPO0_CLKO_AD0 = 12,//PB.12 Pin功能选择
GCR_GPBMFP_CPO1_AD1 = 13,//PB.13 Pin功能选择
GCR_GPBMFP_INT1_SS31 = 14,//PB.14 Pin功能选择
GCR_GPBMFP_INT0 = 15,//PB.15 Pin功能选择
GCR_GPBMFP_SCHMITT = 16//PB[15:0]I/O史密特触发输入使能
}NU_GCR_GPBMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_GPBMFP_T Bits;
}NU_GCR_GPBMFP_T;
typedef enum
{
GCR_GPCMFP_SPI0_SS0_I2SLRCLK = 0,//PC.0 Pin功能选择
GCR_GPCMFP_SPI0_CLK_I2SBCLK = 1,//PC.0 Pin功能选择
GCR_GPCMFP_SPI0_MISO0_I2SDI = 2,//PC.0 Pin功能选择
GCR_GPCMFP_SPI0_MOSI0_I2SDO = 3,//PC.0 Pin功能选择
GCR_GPCMFP_SPI0_MISO1 = 4,//PC.0 Pin功能选择
GCR_GPCMFP_SPI0_MOSI1 = 5,//PC.0 Pin功能选择
GCR_GPCMFP_CPP0_AD4 = 6,//PC.0 Pin功能选择
GCR_GPCMFP_CPN0_AD5 = 7,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_SS0_MCLK = 8,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_CLK = 9,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_MISO0 = 10,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_MOSI0 = 11,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_MISO1 = 12,//PC.0 Pin功能选择
GCR_GPCMFP_SPI1_MOSI1 = 13,//PC.0 Pin功能选择
GCR_GPCMFP_CPP1_AD2 = 14,//PC.0 Pin功能选择
GCR_GPCMFP_CPN1_AD3 = 15,//PC.0 Pin功能选择
GCR_GPCMFP_SCHMITT = 16,//PC[15:0]I/O史密特触发输入使能
}NU_GCR_GPCMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_GPCMFP_T Bits;
}NU_GCR_GPCMFP_T;
typedef enum
{
GCR_GPDMFP_SPI2_SS0 = 0,//PD.0 Pin功能选择
GCR_GPDMFP_SPI2_CLK_SPI0_SS1 = 1,//PD.1 Pin功能选择
GCR_GPDMFP_SPI2_MISO0_SPI0_MISO1 = 2,//PD.2 Pin功能选择
GCR_GPDMFP_SPI2_MOSI0_SPI0_MOSI1 = 3,//PD.3 Pin功能选择
GCR_GPDMFP_SPI2_MISO1 = 4,//PD.4 Pin功能选择
GCR_GPDMFP_SPI2_MOSI1 = 5,//PD.5 Pin功能选择
GCR_GPDMFP_CAN0_RX = 6,//PD.6 Pin功能选择
GCR_GPDMFP_CAN0_TX = 7,//PD.7 Pin功能选择
GCR_GPDMFP_SPI3_SS0 = 8,//PD.8 Pin功能选择
GCR_GPDMFP_SPI3_CLK = 9,//PD.9 Pin功能选择
GCR_GPDMFP_SPI3_MISO0 = 10,//PD.10 Pin功能选择
GCR_GPDMFP_SPI3_MOSI0 = 11,//PD.11 Pin功能选择
GCR_GPDMFP_SPI3_MISO1 = 12,//PD.12 Pin功能选择
GCR_GPDMFP_SPI3_MOSI1 = 13,//PD.13 Pin功能选择
GCR_GPDMFP_UART2_RX = 14,//PD.14 Pin功能选择
GCR_GPDMFP_UART2_TX = 15,//PD.15 Pin功能选择
GCR_GPDMFP_SCHMITT = 16,//PD[15:0]I/O史密特触发输入使能
}NU_GCR_GPDMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_GPDMFP_T Bits;
}NU_GCR_GPDMFP_T;
typedef enum
{
GCR_GPEMFP_PWM6 = 0,//PE.0 Pin功能选择
GCR_GPEMFP_PWM7 = 1,//PE.1 Pin功能选择
GCR_GPEMFP_PWM5 = 5,//PE.6 Pin功能选择
GCR_GPEMFP_SCHMITT = 16 //PE[15:0]I/O史密特触发输入使能
}NU_GCR_GPEMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_GPEMFP_T Bits;
}NU_GCR_GPEMFP_T;
typedef enum
{
GCR_ALTMFP_PB10_S01 = 0,//PB10_S01与GPB_MFP[10]决定GPB.10的功能
GCR_ALTMFP_PB9_S11 = 1,//PB9_S11与GPB_MFP[9]决定PB.9的功能
GCR_ALTMFP_PA7_S21 = 2,//PA7_S21与GPA_MFP[7]决定PA.7的功能
GCR_ALTMFP_PB14_S31 = 3,//PB14_S31与GPB_MFP[14]决定PB.14的功能
GCR_ALTMFP_PB11_PWM4 = 4,//PB11_PWM4与GPB_MFP[11]决定PB.11的功能
GCR_ALTMFP_PC0_I2SLRCLK = 5,//PC0_I2SLRCLK与GPC_MFP[0]决定PC.0的功能
GCR_ALTMFP_PC1_I2SBCLK = 6,//PC1_I2SBCLK与GPC_MFP[1 决定PC.1的功能
GCR_ALTMFP_PC2_I2SDI = 7,//PC2_I2SDI与GPC_MFP[2]决定PC.2的功能
GCR_ALTMFP_PC3_I2SDO = 8,//PC2_I2SDO与GPC_MFP[3]决定PC.3的功能
GCR_ALTMFP_PA15_I2SMCLK = 9,//PA15_I2SMCLK与GPA_MFP[15]决定PA.15的功能
GCR_ALTMFP_PB12_CLKO = 10,//PB12_CLKO与GPB_MFP[12]决定PB.12的功能
GCR_ALTMFP_EBI_EN = 11,
GCR_ALTMFP_EBI_MCLK_EN = 12, /* GPC8 */
GCR_ALTMFP_EBI_WRL_EN =13, /* GPB2 */
GCR_ALTMFP_EBI_WRH_EN = 14, /* GPB3 */
GCR_ALTMFP_EBI_HB_EN = 15
}NU_GCR_ALTMFP_ENUM;
typedef volatile union
{
NU_REG Regs;
GCR_ALTMFP_T Bits;
}NU_GCR_ALTMFP_T;
typedef struct
{
__IO NU_REG_BITs PDID;
__IO NU_GCR_RSTSRC_T RSTSRC;//系统管理器控制寄存器
__IO NU_GCR_IPRSTC1_T IPRSTC1;//IP复位控制寄存器1
__IO NU_GCR_IPRSTC2_T IPRSTC2;//IP复位控制寄存器2
__IO NU_GCR_CPR_T CPR;
__I NU_REG RESERVE0;
__IO NU_GCR_BODCR_T BODCR;//欠压检测控制寄存器
__IO NU_GCR_TEMPCR_T TEMPCR;//温度传感器控制寄存器
__I NU_REG RESERVE1;
__IO NU_REG_BITs PORCR;//上电复位控制寄存器
__I NU_REG RESERVE2[2];
__IO NU_GCR_GPAMFP_T GPAMFP;//多功能GPIOA控制寄存器
__IO NU_GCR_GPBMFP_T GPBMFP;//多功能GPIOB控制寄存器
__IO NU_GCR_GPCMFP_T GPCMFP;//多功能GPIOC控制寄存器
__IO NU_GCR_GPDMFP_T GPDMFP;//多功能GPIOD控制寄存器
__IO NU_GCR_GPEMFP_T GPEMFP;//多功能GPIOE控制寄存器
__I NU_REG RESERVE3[3];
__IO NU_GCR_ALTMFP_T ALTMFP;//可选多功能引脚控制寄存器
__I NU_REG RESERVE4[43];
__IO NU_REG_BITs REGLOCK;//寄存器锁定键地址寄存器
__I NU_REG RESERVE5[3];
__IO NU_REG_BITs RCADJ;//RC 校验控制寄存器
}NU_GCR_T;