STM32F0xx Standard Peripherals Firmware Library: stm32f0xx_it.c Source File

STM32F0xx Standard Peripherals Library

STM32F0xx_StdPeriph_Examples/I2S/I2S_DataExchangeInterrupt/stm32f0xx_it.c
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    I2S/I2S_DataExchangeInterrupt/stm32f0xx_it.c 
00004   * @author  MCD Application Team
00005   * @version V1.4.0
00006   * @date    24-July-2014
00007   * @brief   Main Interrupt Service Routines.
00008   *          This file provides template for all exceptions handler and 
00009   *          peripherals interrupt service routine.
00010   ******************************************************************************
00011   * @attention
00012   *
00013   * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
00014   *
00015   * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
00016   * You may not use this file except in compliance with the License.
00017   * You may obtain a copy of the License at:
00018   *
00019   *        http://www.st.com/software_license_agreement_liberty_v2
00020   *
00021   * Unless required by applicable law or agreed to in writing, software 
00022   * distributed under the License is distributed on an "AS IS" BASIS, 
00023   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00024   * See the License for the specific language governing permissions and
00025   * limitations under the License.
00026   *
00027   ******************************************************************************
00028   */
00029 
00030 /* Includes ------------------------------------------------------------------*/
00031 #include "stm32f0xx_it.h"
00032 
00033 /** @addtogroup STM32F0xx_StdPeriph_Examples
00034   * @{
00035   */
00036 
00037 /** @addtogroup I2S_DataExchangeInterrupt
00038   * @{
00039   */
00040 
00041 /* Private typedef -----------------------------------------------------------*/
00042 /* Private define ------------------------------------------------------------*/
00043 /* Private macro -------------------------------------------------------------*/
00044 /* Private variables ---------------------------------------------------------*/
00045 extern const uint16_t I2S_Buffer_Tx[32];
00046 extern __IO uint16_t TxIdx, RxIdx;
00047 extern uint16_t I2S_Buffer_Rx[32];
00048 
00049 /* Private function prototypes -----------------------------------------------*/
00050 /* Private functions ---------------------------------------------------------*/
00051 
00052 /******************************************************************************/
00053 /*            Cortex-M0 Processor Exceptions Handlers                         */
00054 /******************************************************************************/
00055 
00056 /**
00057   * @brief  This function handles NMI exception.
00058   * @param  None
00059   * @retval None
00060   */
00061 void NMI_Handler(void)
00062 {
00063 }
00064 
00065 /**
00066   * @brief  This function handles Hard Fault exception.
00067   * @param  None
00068   * @retval None
00069   */
00070 void HardFault_Handler(void)
00071 {
00072   /* Go to infinite loop when Hard Fault exception occurs */
00073   while (1)
00074   {
00075   }
00076 }
00077 
00078 /**
00079   * @brief  This function handles SVCall exception.
00080   * @param  None
00081   * @retval None
00082   */
00083 void SVC_Handler(void)
00084 {
00085 }
00086 
00087 /**
00088   * @brief  This function handles PendSVC exception.
00089   * @param  None
00090   * @retval None
00091   */
00092 void PendSV_Handler(void)
00093 {
00094 }
00095 
00096 /**
00097   * @brief  This function handles SysTick Handler.
00098   * @param  None
00099   * @retval None
00100   */
00101 void SysTick_Handler(void)
00102 {
00103 }
00104 
00105 /******************************************************************************/
00106 /*                 STM32F0xx Peripherals Interrupt Handlers                   */
00107 /*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */
00108 /*  available peripheral interrupt handler's name please refer to the startup */
00109 /*  file (startup_stm32f0xx.s).                                               */
00110 /******************************************************************************/
00111 /**
00112   * @brief  This function handles SPI1 global interrupt request
00113   * @param  None
00114   * @retval : None
00115   */
00116 void SPI1_IRQHandler(void)
00117 {
00118   uint32_t tmpreg = 0x00;
00119   tmpreg = SPI1->SR;
00120 #if defined (I2S_SLAVE_RECEIVER)
00121   if ((tmpreg&0x01)==0x01)
00122   {
00123     I2S_Buffer_Rx[RxIdx++] = SPI_I2S_ReceiveData16(SPI1);
00124     /* Disable the Interrupt when transfer is complete */
00125     if(RxIdx == 32)
00126     {
00127       /* Disable the I2S1 RXNE Interrupt */
00128       SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, DISABLE);
00129     }
00130   }
00131 #elif defined (I2S_MASTER_TRANSMITTER)
00132   if((tmpreg&0x02)==0x02)
00133   {
00134     SPI_I2S_SendData16(SPI1, I2S_Buffer_Tx[TxIdx++]);
00135     if(TxIdx == 32)
00136     {
00137       /* Disable the I2S1 TXE Interrupt */
00138       SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_TXE, DISABLE);
00139     }
00140   }
00141 #endif
00142 }
00143 /**
00144   * @brief  This function handles PPP interrupt request.
00145   * @param  None
00146   * @retval None
00147   */
00148 /*void PPP_IRQHandler(void)
00149 {
00150 }*/
00151 
00152 /**
00153   * @}
00154   */
00155 
00156 /**
00157   * @}
00158   */
00159 
00160 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
STM32L1xx Standard Peripherals Library: Footer

 

 

 For complete documentation on STM32 Microcontrollers visit www.st.com/STM32