2812的IO口控制--LED点亮

来源:互联网 发布:女狙击手 知乎 编辑:程序博客网 时间:2024/06/07 00:56

复用控制寄存器 --- GPxMUX                   (0---数字IO,1---专用外设功能)

方向控制寄存器 --- GPxDIR                    (0---输入,1---输出)

量化控制寄存器 --- GPxQUAL                 (0---无量化,1---量化范围0x00--0xff)

I/O数据寄存器 --- GPxDAT                   (0---输出--引脚置低,1---输出--引脚置高)

I/O置位寄存器 --- GPxSET                   (0---无变化,1---引脚置为高)

I/O清零寄存器 --- GPxCLEAR              (0---无变化,1---引脚置为低)

单独触发寄存器 --- GPxTOGGLE            (0---无变化,1---引脚置电平跳变一次)

 

//IO口初始化

void InitGpio(void)
{

 EALLOW;                        // Enable EALLOW protected register access


//--- Group A pins    
 GpioMuxRegs.GPADIR.all=0x0000;     //若设为数字I/O,可配置为输入(0)/输出(1)
 GpioMuxRegs.GPAQUAL.all=0x0000; // 0x00--无量化,0xff--510个SYSCLKOUT周期量化过程


//---选择引脚作为专用外设或通用I/O
 GpioMuxRegs.GPAMUX.bit.C3TRIP_GPIOA15  = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.C2TRIP_GPIOA14  = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.C1TRIP_GPIOA13  = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.TCLKINA_GPIOA12 = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.TDIRA_GPIOA11   = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.CAP3QI1_GPIOA10 = 0; // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9   = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.CAP1Q1_GPIOA8   = 1;  // 1: select periph 
 GpioMuxRegs.GPAMUX.bit.T2PWM_GPIOA7    = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6    = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM6_GPIOA5     = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM5_GPIOA4     = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM4_GPIOA3     = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2     = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM2_GPIOA1     = 0;  // 0: select GPIO 
 GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0     = 1;  // 1: select periph

 EDIS;       // Disable EALLOW protected register access

}