/** ****************************************************************************** * @file Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c * @author MCD Application Team * @version V3.4.0 * @date 10/15/2010 * @brief Main Interrupt Service Routines. * This file provides template for all exceptions handler and * peripherals interrupt service routine. ****************************************************************************** * @copy * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2010 STMicroelectronics

*/ /* Includes ------------------------------------------------------------------*/ #include /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /******************************************************************************/ /* Cortex-M3 Processor Exceptions Handlers */ /******************************************************************************/ /** * @brief This function handles NMI exception. * @param None * @retval None */ void NMI_Handler(void) { } /** * @brief This function handles Hard Fault exception. * @param None * @retval None */ void HardFault_Handler(void) { /* Go to infinite loop when Hard Fault exception occurs */ #ifdef USE_RUNNING_MAKE printf("\r\n[HFH]F=%d,L=%d",g_usFileID,g_ulFileLine); #endif while (1) { } } /** * @brief This function handles Memory Manage exception. * @param None * @retval None */ void MemManage_Handler(void) { /* Go to infinite loop when Memory Manage exception occurs */ #ifdef USE_RUNNING_MAKE printf("\r\n[MMH]F=%d,L=%d",g_usFileID,g_ulFileLine); #endif while (1) { } } /** * @brief This function handles Bus Fault exception. * @param None * @retval None */ void BusFault_Handler(void) { /* Go to infinite loop when Bus Fault exception occurs */ #ifdef USE_RUNNING_MAKE printf("\r\n[BFH]F=%d,L=%d",g_usFileID,g_ulFileLine); #endif while (1) { } } /** * @brief This function handles Usage Fault exception. * @param None * @retval None */ void UsageFault_Handler(void) { /* Go to infinite loop when Usage Fault exception occurs */ #ifdef USE_RUNNING_MAKE printf("\r\n[UFH]F=%d,L=%d",g_usFileID,g_ulFileLine); #endif while (1) { } } /** * @brief This function handles SVCall exception. * @param None * @retval None */ //void SVC_Handler(void) //{ //} /** * @brief This function handles Debug Monitor exception. * @param None * @retval None */ void DebugMon_Handler(void) { } /** * @brief This function handles SysTick Handler. * @param None * @retval None */ //static int siSecCt=0; //void SysTick_Handler(void) //{ // //sutSysMsg.Tick10ms=1; // if(++siSecCt>=50){ // siSecCt=0; // //sutSysMsg.Tick500ms=1; // } // //} //void UART1RxTxISRHandler(void) //{ // __IO unsigned long temp; // __IO unsigned char uart_data; // if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){ // uart_data=USART_ReceiveData(USART1); // USART_SendData(USART1,uart_data); // // } // if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET) // { // assert_param(IS_USART_CLEAR_FLAG(USART_FLAG_ORE)); // USART_ReceiveData(USART1); // // USART_ClearFlag(USART1,USART_FLAG_ORE); // // } //} /******************************************************************************* * Function Name : USART1_IRQHandler * Description : This function handles USART1 global interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void USART1_IRQHandler(void) { UART1RxTxISRHandler(); } /******************************************************************************* * Function Name : USART2_IRQHandler * Description : This function handles USART1 global interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void USART2_IRQHandler(void) { UART2RxTxISRHandler(); /* Call uC/OS-II's OSTimeTick() */ } /******************************************************************************* * Function Name : USART3_IRQHandler * Description : This function handles USART1 global interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void USART3_IRQHandler(void) { UART3RxTxISRHandler(); } //void DMA1_Channel7_IRQHandler(void) //{ // USART2_SendOK_IQ(); //} //void DMA1_Channel4_IRQHandler(void) //{ // USART1_SendOK_IQ(); //} /******************************************************************************/ /* STM32F10x Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f10x_xx.s). */ /******************************************************************************/ /** * @brief This function handles PPP interrupt request. * @param None * @retval None */ /*void PPP_IRQHandler(void) { }*/ /** * @} */ /******************************************************************************* * Function Name : RTC_IRQHandler * Description : This function handles RTC global interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ //void RTC_IRQHandler(void) //{ // if (RTC_GetITStatus(RTC_IT_SEC) != RESET) // { // RTC_ClearITPendingBit(RTC_IT_SEC); //判断中断标志位是否被置位 // RTC_WaitForLastTask(); //等待上一次配置完成 // //如果加了下面,当关掉主机电源后,计数跑到24:00:00时会被清0,且会停止计数(没掉电是没问题的) //// if (RTC_GetCounter() > 86398) //走到23:59:59秒时清零, 86400=24*60*60 //// { //// RTC_SetCounter(0x0); //// RTC_WaitForLastTask(); //等待上一次配置完成 //// } // } //} void RTCAlarm_IRQHandler(void) { if (RTC_GetITStatus(RTC_IT_SEC) != RESET){ RTC_ClearITPendingBit(RTC_IT_SEC); } if(RTC_GetITStatus(RTC_IT_ALR) != RESET) { SlwTrace(INF,"time coming\r\n",1); /* Set the RTC alarm flag */ g_bRTCAlarm = 1; /* Clear EXTI line17 pending bit */ EXTI_ClearITPendingBit(EXTI_Line17); /* Check if the Wake-Up flag is set */ if(PWR_GetFlagStatus(PWR_FLAG_WU) != RESET) { /* Clear Wake Up flag */ PWR_ClearFlag(PWR_FLAG_WU); } /* Wait until last write operation on RTC registers has finished */ RTC_WaitForLastTask(); /* Clear RTC Alarm interrupt pending bit */ RTC_ClearITPendingBit(RTC_IT_ALR); /* Wait until last write operation on RTC registers has finished */ RTC_WaitForLastTask(); } } void PVD_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line16)!=RESET) { printf("电量低..........\r\n"); //LED1(ON); // Sleeping(); SleepMethod2(); } EXTI_ClearITPendingBit(EXTI_Line16); //????????? } /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/