Mercurial > ~darius > hgwebdir.cgi > stm32temp
comparison libs/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/USART/HyperTerminal_Interrupt/stm32f10x_it.c @ 0:c59513fd84fb
Initial commit of STM32 test code.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Mon, 03 Oct 2011 21:19:15 +1030 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c59513fd84fb |
---|---|
1 /** | |
2 ****************************************************************************** | |
3 * @file USART/HyperTerminal_Interrupt/stm32f10x_it.c | |
4 * @author MCD Application Team | |
5 * @version V3.5.0 | |
6 * @date 08-April-2011 | |
7 * @brief Main Interrupt Service Routines. | |
8 * This file provides template for all exceptions handler and peripherals | |
9 * interrupt service routine. | |
10 ****************************************************************************** | |
11 * @attention | |
12 * | |
13 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS | |
14 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE | |
15 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY | |
16 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING | |
17 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE | |
18 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. | |
19 * | |
20 * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> | |
21 ****************************************************************************** | |
22 */ | |
23 | |
24 /* Includes ------------------------------------------------------------------*/ | |
25 #include "stm32f10x_it.h" | |
26 #include "stm32_eval.h" | |
27 | |
28 /** @addtogroup STM32F10x_StdPeriph_Examples | |
29 * @{ | |
30 */ | |
31 | |
32 /** @addtogroup USART_HyperTerminal_Interrupt | |
33 * @{ | |
34 */ | |
35 | |
36 /* Private typedef -----------------------------------------------------------*/ | |
37 /* Private define ------------------------------------------------------------*/ | |
38 #ifdef USE_STM3210C_EVAL | |
39 #define USARTx_IRQHandler USART2_IRQHandler | |
40 #else | |
41 #define USARTx_IRQHandler USART1_IRQHandler | |
42 #endif | |
43 | |
44 #define TxBufferSize (countof(TxBuffer) - 1) | |
45 #define RxBufferSize 0x20 | |
46 | |
47 /* Private macro -------------------------------------------------------------*/ | |
48 #define countof(a) (sizeof(a) / sizeof(*(a))) | |
49 | |
50 /* Private variables ---------------------------------------------------------*/ | |
51 uint8_t TxBuffer[] = "\n\rUSART Hyperterminal Interrupts Example: USART-Hyperterminal\ | |
52 communication using Interrupt\n\r"; | |
53 uint8_t RxBuffer[RxBufferSize]; | |
54 uint8_t NbrOfDataToTransfer = TxBufferSize; | |
55 uint8_t NbrOfDataToRead = RxBufferSize; | |
56 uint8_t TxCounter = 0; | |
57 uint16_t RxCounter = 0; | |
58 | |
59 /* Private function prototypes -----------------------------------------------*/ | |
60 /* Private functions ---------------------------------------------------------*/ | |
61 | |
62 /******************************************************************************/ | |
63 /* Cortex-M3 Processor Exceptions Handlers */ | |
64 /******************************************************************************/ | |
65 | |
66 /** | |
67 * @brief This function handles NMI exception. | |
68 * @param None | |
69 * @retval None | |
70 */ | |
71 void NMI_Handler(void) | |
72 { | |
73 } | |
74 | |
75 /** | |
76 * @brief This function handles Hard Fault exception. | |
77 * @param None | |
78 * @retval None | |
79 */ | |
80 void HardFault_Handler(void) | |
81 { | |
82 /* Go to infinite loop when Hard Fault exception occurs */ | |
83 while (1) | |
84 { | |
85 } | |
86 } | |
87 | |
88 /** | |
89 * @brief This function handles Memory Manage exception. | |
90 * @param None | |
91 * @retval None | |
92 */ | |
93 void MemManage_Handler(void) | |
94 { | |
95 /* Go to infinite loop when Memory Manage exception occurs */ | |
96 while (1) | |
97 { | |
98 } | |
99 } | |
100 | |
101 /** | |
102 * @brief This function handles Bus Fault exception. | |
103 * @param None | |
104 * @retval None | |
105 */ | |
106 void BusFault_Handler(void) | |
107 { | |
108 /* Go to infinite loop when Bus Fault exception occurs */ | |
109 while (1) | |
110 { | |
111 } | |
112 } | |
113 | |
114 /** | |
115 * @brief This function handles Usage Fault exception. | |
116 * @param None | |
117 * @retval None | |
118 */ | |
119 void UsageFault_Handler(void) | |
120 { | |
121 /* Go to infinite loop when Usage Fault exception occurs */ | |
122 while (1) | |
123 { | |
124 } | |
125 } | |
126 | |
127 /** | |
128 * @brief This function handles SVCall exception. | |
129 * @param None | |
130 * @retval None | |
131 */ | |
132 void SVC_Handler(void) | |
133 { | |
134 } | |
135 | |
136 /** | |
137 * @brief This function handles Debug Monitor exception. | |
138 * @param None | |
139 * @retval None | |
140 */ | |
141 void DebugMon_Handler(void) | |
142 { | |
143 } | |
144 | |
145 /** | |
146 * @brief This function handles PendSV_Handler exception. | |
147 * @param None | |
148 * @retval None | |
149 */ | |
150 void PendSV_Handler(void) | |
151 { | |
152 } | |
153 | |
154 /** | |
155 * @brief This function handles SysTick Handler. | |
156 * @param None | |
157 * @retval None | |
158 */ | |
159 void SysTick_Handler(void) | |
160 { | |
161 } | |
162 | |
163 /******************************************************************************/ | |
164 /* STM32F10x Peripherals Interrupt Handlers */ | |
165 /******************************************************************************/ | |
166 | |
167 /** | |
168 * @brief This function handles USARTx global interrupt request. | |
169 * @param None | |
170 * @retval None | |
171 */ | |
172 void USARTx_IRQHandler(void) | |
173 { | |
174 if(USART_GetITStatus(EVAL_COM1, USART_IT_RXNE) != RESET) | |
175 { | |
176 /* Read one byte from the receive data register */ | |
177 RxBuffer[RxCounter++] = (USART_ReceiveData(EVAL_COM1) & 0x7F); | |
178 | |
179 if(RxCounter == NbrOfDataToRead) | |
180 { | |
181 /* Disable the EVAL_COM1 Receive interrupt */ | |
182 USART_ITConfig(EVAL_COM1, USART_IT_RXNE, DISABLE); | |
183 } | |
184 } | |
185 | |
186 if(USART_GetITStatus(EVAL_COM1, USART_IT_TXE) != RESET) | |
187 { | |
188 /* Write one byte to the transmit data register */ | |
189 USART_SendData(EVAL_COM1, TxBuffer[TxCounter++]); | |
190 | |
191 if(TxCounter == NbrOfDataToTransfer) | |
192 { | |
193 /* Disable the EVAL_COM1 Transmit interrupt */ | |
194 USART_ITConfig(EVAL_COM1, USART_IT_TXE, DISABLE); | |
195 } | |
196 } | |
197 } | |
198 | |
199 /******************************************************************************/ | |
200 /* STM32F10x Peripherals Interrupt Handlers */ | |
201 /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ | |
202 /* available peripheral interrupt handler's name please refer to the startup */ | |
203 /* file (startup_stm32f10x_xx.s). */ | |
204 /******************************************************************************/ | |
205 | |
206 /** | |
207 * @brief This function handles PPP interrupt request. | |
208 * @param None | |
209 * @retval None | |
210 */ | |
211 /*void PPP_IRQHandler(void) | |
212 { | |
213 }*/ | |
214 | |
215 /** | |
216 * @} | |
217 */ | |
218 | |
219 /** | |
220 * @} | |
221 */ | |
222 | |
223 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |