STM32F0xx Standard Peripherals Firmware 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>© 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****/