Пример #1
0
/**
  * @brief  This function handles the LVD Output interrupt request.
  * @param  None
  * @retval None
  */
void LVD_IRQHandler(void)
{
    if(EXTI_GetIntBitState(EXTI_LINE16) != RESET)
    {
        GPIO_WriteBit(LED1_GPIO_PORT, LED1_PIN,
                     (BitState)((1-GPIO_ReadOutputBit(LED1_GPIO_PORT, LED1_PIN))));
        EXTI_ClearIntBitState(EXTI_LINE16);
    }
}
Пример #2
0
void EXTI4_15_IRQHandler(void)
{
    if (EXTI_GetIntBitState(CHARGING_EXTILINE) != RESET) {
        if (check_charging() == CHARGING && get_charger_plug_flag() == CHARGER_UNPLUGGED) {
            set_charger_plug_flag();
            reboot_system(SUCCESS);
        }
        EXTI_ClearIntBitState(CHARGING_EXTILINE);
    }
}
Пример #3
0
/**
  * @brief  Configure the selected EXTI line.
  * @param  None
  * @retval None
  */
void EXTI_Configuration(void)
{
    EXTI_InitPara EXTI_InitStructure;
    
    /* Configure EXTI Line16(LVD Output) to generate an interrupt on rising and falling edges */
    EXTI_ClearIntBitState(EXTI_LINE16);
    EXTI_InitStructure.EXTI_LINE = EXTI_LINE16;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
    EXTI_InitStructure.EXTI_LINEEnable = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
}
Пример #4
0
/**
  * @brief  This function handles EXTI4_15 interrupt request.
  * @param  None
  * @retval None
  */
void EXTI4_15_IRQHandler(void)
{
    /* Get the button interrupt bit state */
    if(EXTI_GetIntBitState(EXTI_LINE7) != RESET)
    {
        ByteNumber = 2;
        CEC_SendData(0x12);
        SendBuffer = TransmitBuffer1;
        CEC_StartOfMessage();
        EXTI_ClearIntBitState(EXTI_LINE7);
    }
    /* Get the button interrupt bit state */
    else if(EXTI_GetIntBitState(EXTI_LINE13) != RESET)
    {
        ByteNumber = 2;
        CEC_SendData(0x12);
        SendBuffer = TransmitBuffer2;
        CEC_StartOfMessage();
        EXTI_ClearIntBitState(EXTI_LINE13);
    }
}
Пример #5
0
void exti_charging_deinit()
{
    EXTI_InitPara   EXTI_InitStructure;
    RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_CFG, ENABLE);
    /* Connect key EXTI Line to key GPIO Pin */
    SYSCFG_EXTILine_Config(CHARGING_EXTI_GPIO, CHARGING_EXTI_PIN);
    /* Configure increase key EXTI line */
    EXTI_InitStructure.EXTI_LINE = CHARGING_EXTILINE;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LINEEnable = DISABLE;
    EXTI_Init(&EXTI_InitStructure);
    EXTI_ClearIntBitState(CHARGING_EXTILINE);
}
Пример #6
0
void exti_charging_init()
{
    NVIC_InitPara   NVIC_InitStructure;
    EXTI_InitPara   EXTI_InitStructure;

    RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_CFG, ENABLE);
    /* Connect key EXTI Line to key GPIO Pin */
    SYSCFG_EXTILine_Config(CHARGING_EXTI_GPIO, CHARGING_EXTI_PIN);

    /* Configure increase key EXTI line */
    EXTI_ClearIntBitState(CHARGING_EXTILINE);
    EXTI_InitStructure.EXTI_LINE = CHARGING_EXTILINE;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LINEEnable = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
    EXTI_ClearIntBitState(CHARGING_EXTILINE);

    NVIC_InitStructure.NVIC_IRQ = CHARGING_EXTI_IRQ;			//使能按键所在的外部中断通道
    NVIC_InitStructure.NVIC_IRQPreemptPriority = 0x01;	//抢占优先级1
    NVIC_InitStructure.NVIC_IRQSubPriority = 0x00;					//子优先级1
    NVIC_InitStructure.NVIC_IRQEnable = ENABLE;								//使能外部中断通道
    NVIC_Init(&NVIC_InitStructure);  	  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
}
Пример #7
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{  
    /* Configure the USART peripheral ----------------------------------------*/
    USART_InitStructure.USART_BRR = 115200;
    USART_InitStructure.USART_WL = USART_WL_8B;
    USART_InitStructure.USART_STBits = USART_STBITS_1;
    USART_InitStructure.USART_Parity = USART_PARITY_RESET;
    USART_InitStructure.USART_HardwareFlowControl = USART_HARDWAREFLOWCONTROL_NONE ;
    USART_InitStructure.USART_RxorTx = USART_RXORTX_RX | USART_RXORTX_TX; 
    GD_EVAL_COMInit(&USART_InitStructure);

    printf("\n\r  *********************** RTC Calendar Demo ***********************\n\r");

    /* Check if RTC has aready been configured */
    if (RTC->BKP0R != BKP_VALUE)
    {
        RTC_PreConfiguration();

        RTC_Setup(); 

    }
    else
    {
        /* Detect the reset source */
        if (RCC_GetBitState(RCC_FLAG_POPDRST) != RESET)
        {
            printf("\r\n Power On Reset Occurred....\n\r");
        }
        else if (RCC_GetBitState(RCC_FLAG_EPRST) != RESET)
        {
            printf("\r\n External Reset Occurred....\n\r");
        }

        printf("\n\r No Need To Configure RTC....\n\r");

        #ifdef RTC_CLOCK_SOURCE_LSI
            RCC_LSI_Enable(ENABLE);
        #endif 

        RTC_WaitRSF_ToSetAgain();
        RTC_ClearBitState(RTC_STR_AF);
        EXTI_ClearIntBitState(EXTI_LINE17);

        RTC_ShowTime();
        RTC_ShowAlarm();
    }
    
    RCC_ClearBitState();

    /* LED1 GPIO Initialization */
    RCC_AHBPeriphClock_Enable(LED1_GPIO_CLK, ENABLE);
    GPIO_InitStructure.GPIO_Pin = LED1_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
    
    LED1_GPIO_PORT->BOR = LED1_PIN;

    /* LED2 GPIO Initialization */
    RCC_AHBPeriphClock_Enable(LED2_GPIO_CLK, ENABLE);
    GPIO_InitStructure.GPIO_Pin = LED2_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);
    
    LED2_GPIO_PORT->BOR = LED2_PIN;

    /* RTC ALARM Interrupt Configuration */
    EXTI_ClearIntBitState(EXTI_LINE17);
    EXTI_InitStructure.EXTI_LINE = EXTI_LINE17;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LINEEnable = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

    NVIC_InitStructure.NVIC_IRQ = RTC_IRQn;
    NVIC_InitStructure.NVIC_IRQPreemptPriority = 0;
    NVIC_InitStructure.NVIC_IRQSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQEnable = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    while (1)
    {
    }
}