Example #1
0
//----初始化键盘硬件-----------------------------------------------------------
//功能: 如题,初始化后才能扫描键盘
//参数: 无
//返回: 无
//----------------------------------------------------------------------------
bool_t key_hard_init(void)
{
    GPIO_PowerOn(CN_GPIO_C);
    GPIO_CfgPinFunc(CN_GPIO_C,10,CN_GPIO_MODE_IN_PULLUP);
    GPIO_CfgPinFunc(CN_GPIO_C,11,CN_GPIO_MODE_IN_PULLUP);
    GPIO_CfgPinFunc(CN_GPIO_C,12,CN_GPIO_MODE_IN_PULLUP);
    GPIO_CfgPinFunc(CN_GPIO_C,13,CN_GPIO_MODE_IN_PULLUP);
    return true;
}
Example #2
0
void led_init(void)
{
    GPIO_PowerOn(CN_GPIO_C);
    GPIO_CfgPinFunc(CN_GPIO_C, 6, CN_GPIO_MODE_GPIO_OUT_PP_2Mhz);
    GPIO_CfgPinFunc(CN_GPIO_C, 4, CN_GPIO_MODE_GPIO_OUT_PP_2Mhz);
    GPIO_CfgPinFunc(CN_GPIO_C, 8, CN_GPIO_MODE_GPIO_OUT_PP_2Mhz);
    GPIO_CfgPinFunc(CN_GPIO_C, 9, CN_GPIO_MODE_GPIO_OUT_PP_2Mhz);

    evtt_led = Djy_EvttRegist(EN_CORRELATIVE, CN_PRIO_RRS, 0, 1,
                                led_flash, NULL,1000, "hello led");
    if (evtt_led != CN_EVTT_ID_INVALID)
    {
        event_led = Djy_EventPop(evtt_led, NULL, 0, NULL, 0, 0);
    }
}
Example #3
0
// =============================================================================
// 功能: 设置对应UART的IO口,包括时钟和IO配置
// 参数: SerialNo,串口号
// 返回: 无
// =============================================================================
static void __UART_GpioConfig(u8 SerialNo)
{
    GPIO_PowerOn(1);
    switch(SerialNo)
    {
    case CN_UART0:
        SIM->SCGC4 |= SIM_SCGC4_UART0_MASK;
        PORT_MuxConfig(PORT_PORT_A,PORT_PIN(1),PORT_PINMUX_ALT2);
        PORT_MuxConfig(PORT_PORT_A,PORT_PIN(2),PORT_PINMUX_ALT2);
        break;
    case CN_UART1:
        SIM->SCGC4 |= SIM_SCGC4_UART1_MASK;
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(0),PORT_PINMUX_ALT3);
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(1),PORT_PINMUX_ALT3);
        break;
    case CN_UART2:
        SIM->SCGC4 |= SIM_SCGC4_UART2_MASK;
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(16),PORT_PINMUX_ALT3);
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(17),PORT_PINMUX_ALT3);
        break;
    case CN_UART3:
        SIM->SCGC4 |= SIM_SCGC4_UART3_MASK;
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(4),PORT_PINMUX_ALT3);
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(5),PORT_PINMUX_ALT3);
        break;
    case CN_UART4:
        SIM->SCGC1 |= SIM_SCGC1_UART4_MASK;
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(24),PORT_PINMUX_ALT3);
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(25),PORT_PINMUX_ALT3);
        break;
    case CN_UART5:
        SIM->SCGC1 |= SIM_SCGC1_UART5_MASK;
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(8),PORT_PINMUX_ALT3);
        PORT_MuxConfig(PORT_PORT_E,PORT_PIN(9),PORT_PINMUX_ALT3);
        break;
    default:
        break;
    }
}
Example #4
0
/*---------------------------------------------------------------------------
功能:    lcd 初始化
---------------------------------------------------------------------------*/
void __lcd_ili9325_init(void)
{
    GPIO_PowerOn(CN_GPIO_F);
    GPIO_PowerOn(CN_GPIO_G);
    GPIO_CfgPinFunc(CN_GPIO_F,10,CN_GPIO_MODE_GPIO_OUT_OD_2Mhz);
    GPIO_CfgPinFunc(CN_GPIO_G,8,CN_GPIO_MODE_GPIO_OUT_PP_2Mhz);
    lcd_backlight_off();
    lcd_reset();

    Djy_DelayUs(100000);

    if( __ili9325_read_reg() != 0x9325)
    {
        return;
    }

    __ili9325_write_reg(0x0000, 0x0001);            //Start internal OSC
    __ili9325_write_reg(0x0001, 0x0000);            // set SS=0 and SM=0  S1---S720
    __ili9325_write_reg(0x0002, 0x0700);            // set 1 line inversion
    __ili9325_write_reg(0x0003, 0x1030);            // set GRAM write direction and BGR=1.
    __ili9325_write_reg(0x0004, 0x0000);            // Resize register
    __ili9325_write_reg(0x0008, 0x0207);            // set the back porch and front porch
    __ili9325_write_reg(0x0009, 0x0000);            // set non-display area refresh cycle ISC[3:0]
    __ili9325_write_reg(0x000a, 0x0000);            // FMARK function
    __ili9325_write_reg(0x000c, 0x0000);            // RGB interface setting
    __ili9325_write_reg(0x000d, 0x0000);            // Frame marker Position
    __ili9325_write_reg(0x000f, 0x0000);            // RGB interface polarity
    //-------------power on sequence------------
    __ili9325_write_reg(0x0010, 0x0000);            // SAP, BT[3:0], AP, DSTB, SLP, STB
    __ili9325_write_reg(0x0011, 0x0007);            // DC1[2:0], DC0[2:0], VC[2:0]
    __ili9325_write_reg(0x0012, 0x0000);                                                            // VREG1OUT voltage
    __ili9325_write_reg(0x0013, 0x0000);                                                            // VDV[4:0] for VCOM amplitude

    Djy_DelayUs(5000);

    __ili9325_write_reg(0x0010, 0x1690);                                                            // SAP, BT[3:0], AP, DSTB, SLP, STB
    __ili9325_write_reg(0x0011, 0x0227);                                                            // R11H=0x0221 at VCI=3.3V, DC1[2:0], DC0[2:0], VC[2:0]

    Djy_DelayUs(5000);

    __ili9325_write_reg(0x0012, 0x001d);                                                            // External reference voltage= Vci;001d

    Djy_DelayUs(5000);

    __ili9325_write_reg(0x0013, 0x0800);                                                            // R13H=1D00 when R12H=009D;VDV[4:0] for VCOM amplitude
    __ili9325_write_reg(0x0029, 0x0014);                                                            // R29H=0013 when R12H=009D;VCM[5:0] for VCOMH
    __ili9325_write_reg(0x002b, 0x000B);                                                            // Frame Rate = 96Hz

    Djy_DelayUs(5000);

    __ili9325_write_reg(0x0020, 0x0000);                                                            // GRAM horizontal Address
    __ili9325_write_reg(0x0021, 0x0000);                                                            // GRAM Vertical Address
    // ----------- Adjust the Gamma Curve ----------
    __ili9325_write_reg(0x0030, 0x0007);
    __ili9325_write_reg(0x0031, 0x0707);
    __ili9325_write_reg(0x0032, 0x0006);
    __ili9325_write_reg(0x0035, 0x0704);
    __ili9325_write_reg(0x0036, 0x1F04);
    __ili9325_write_reg(0x0037, 0x0004);
    __ili9325_write_reg(0x0038, 0x0000);
    __ili9325_write_reg(0x0039, 0x0706);
    __ili9325_write_reg(0x003c, 0x0701);
    __ili9325_write_reg(0x003d, 0x000F);
    // ------------------ Set GRAM area ---------------
    __ili9325_write_reg(0x0050, 0x0000);            // Horizontal GRAM Start Address
    __ili9325_write_reg(0x0051,    239);                // Horizontal GRAM End Address
    __ili9325_write_reg(0x0052, 0x0000);            // Vertical GRAM Start Address
    __ili9325_write_reg(0x0053,    319);                // Vertical GRAM Start Address
    __ili9325_write_reg(0x0060, 0x2700);            // GS=0 320 line
    __ili9325_write_reg(0x0061, 0x0001);            // NDL,VLE(滚屏允许), REV(灰度翻转)
    __ili9325_write_reg(0x006a, 0x0000);            // set scrolling line
    // -------------- Partial Display Control ---------
    __ili9325_write_reg(0x0080, 0x0000);
    __ili9325_write_reg(0x0081, 0x0000);
    __ili9325_write_reg(0x0082, 0x0000);
    __ili9325_write_reg(0x0083, 0x0000);
    __ili9325_write_reg(0x0084, 0x0000);
    __ili9325_write_reg(0x0085, 0x0000);
    // -------------- Panel Control -------------------
    __ili9325_write_reg(0x0090, 0x0010);
    __ili9325_write_reg(0x0092, 0x0000);
    __ili9325_write_reg(0x0093, 0x0003);
    __ili9325_write_reg(0x0095, 0x0110);
    __ili9325_write_reg(0x0097, 0x0000);
    __ili9325_write_reg(0x0098, 0x0000);

    // Set GRAM write direction and BGR = 1
    // I/D=11 (Horizontal : increment, Vertical : increment)
    // AM=0 (address is updated in Horizontal writing direction)
    __ili9325_write_reg(0x0003, 0x1030);

    __ili9325_write_reg(0x0007, 0x0173);                        // 262K color and display ON

    lcd_backlight_on();
}
Example #5
0
File: SRAM.c Project: Mars-Wu/djyos
void SRAM_GPIO_Init(void)
{
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE );

    GPIO_PowerOn(CN_GPIO_D);
    GPIO_PowerOn(CN_GPIO_E);
    GPIO_PowerOn(CN_GPIO_F);
    GPIO_PowerOn(CN_GPIO_G);

    GPIO_CfgPinFunc(CN_GPIO_D, 14, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d0
    GPIO_CfgPinFunc(CN_GPIO_D, 15, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d1
    GPIO_CfgPinFunc(CN_GPIO_D, 0, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d2
    GPIO_CfgPinFunc(CN_GPIO_D, 1, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d3
    GPIO_CfgPinFunc(CN_GPIO_E, 7, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d4
    GPIO_CfgPinFunc(CN_GPIO_E, 8, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d5
    GPIO_CfgPinFunc(CN_GPIO_E, 9, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d6
    GPIO_CfgPinFunc(CN_GPIO_E, 10, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d7
    GPIO_CfgPinFunc(CN_GPIO_E, 11, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d8
    GPIO_CfgPinFunc(CN_GPIO_E, 12, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d9
    GPIO_CfgPinFunc(CN_GPIO_E, 13, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d10
    GPIO_CfgPinFunc(CN_GPIO_E, 14, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d11
    GPIO_CfgPinFunc(CN_GPIO_E, 15, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d12
    GPIO_CfgPinFunc(CN_GPIO_D, 8, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d13
    GPIO_CfgPinFunc(CN_GPIO_D, 9, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //d14
    GPIO_CfgPinFunc(CN_GPIO_D, 10, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //d15

    GPIO_CfgPinFunc(CN_GPIO_F, 0, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a0
    GPIO_CfgPinFunc(CN_GPIO_F, 1, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a1
    GPIO_CfgPinFunc(CN_GPIO_F, 2, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a2
    GPIO_CfgPinFunc(CN_GPIO_F, 3, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a3
    GPIO_CfgPinFunc(CN_GPIO_F, 4, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a4
    GPIO_CfgPinFunc(CN_GPIO_F, 5, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a5
    GPIO_CfgPinFunc(CN_GPIO_F, 12, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a6
    GPIO_CfgPinFunc(CN_GPIO_F, 13, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a7
    GPIO_CfgPinFunc(CN_GPIO_F, 14, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a8
    GPIO_CfgPinFunc(CN_GPIO_F, 15, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a9
    GPIO_CfgPinFunc(CN_GPIO_G, 0, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a10
    GPIO_CfgPinFunc(CN_GPIO_G, 1, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a11
    GPIO_CfgPinFunc(CN_GPIO_G, 2, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a12
    GPIO_CfgPinFunc(CN_GPIO_G, 3, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a13
    GPIO_CfgPinFunc(CN_GPIO_G, 4, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a14
    GPIO_CfgPinFunc(CN_GPIO_G, 5, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a15
    GPIO_CfgPinFunc(CN_GPIO_D, 11, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a16
    GPIO_CfgPinFunc(CN_GPIO_D, 12, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a17
    GPIO_CfgPinFunc(CN_GPIO_D, 13, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //a18
    GPIO_CfgPinFunc(CN_GPIO_E, 3, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a19
    GPIO_CfgPinFunc(CN_GPIO_E, 4, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a20
    GPIO_CfgPinFunc(CN_GPIO_E, 5, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //a21

    GPIO_CfgPinFunc(CN_GPIO_D, 5, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //we
    GPIO_CfgPinFunc(CN_GPIO_D, 4, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //re
    GPIO_CfgPinFunc(CN_GPIO_D, 7, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //cs1 for sram
    GPIO_CfgPinFunc(CN_GPIO_G, 9, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //cs2 for nand
    GPIO_CfgPinFunc(CN_GPIO_G, 10, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //cs3 for lcd
    GPIO_CfgPinFunc(CN_GPIO_G, 12, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);   //cs4 for dm9000a


    GPIO_CfgPinFunc(CN_GPIO_E, 0, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //lb
    GPIO_CfgPinFunc(CN_GPIO_E, 1, CN_GPIO_MODE_PERI_OUT_PP_50Mhz);    //ub

}