David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Committer:
dflet
Date:
Mon Jul 13 08:20:40 2015 +0000
Revision:
13:bf45f592c2b6
Parent:
12:7d75ba5deed1
Child:
14:90603ea1e85b
WIP commit 14 i2c not working correctly.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 //*****************************************************************************
dflet 0:50cedd586816 2 // main.c
dflet 0:50cedd586816 3 //
dflet 0:50cedd586816 4 // Reference code to demonstrate getting the current time using an NTP server.
dflet 0:50cedd586816 5 //
dflet 0:50cedd586816 6 // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:50cedd586816 7 //
dflet 0:50cedd586816 8 //
dflet 0:50cedd586816 9 // Redistribution and use in source and binary forms, with or without
dflet 0:50cedd586816 10 // modification, are permitted provided that the following conditions
dflet 0:50cedd586816 11 // are met:
dflet 0:50cedd586816 12 //
dflet 0:50cedd586816 13 // Redistributions of source code must retain the above copyright
dflet 0:50cedd586816 14 // notice, this list of conditions and the following disclaimer.
dflet 0:50cedd586816 15 //
dflet 0:50cedd586816 16 // Redistributions in binary form must reproduce the above copyright
dflet 0:50cedd586816 17 // notice, this list of conditions and the following disclaimer in the
dflet 0:50cedd586816 18 // documentation and/or other materials provided with the
dflet 0:50cedd586816 19 // distribution.
dflet 0:50cedd586816 20 //
dflet 0:50cedd586816 21 // Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:50cedd586816 22 // its contributors may be used to endorse or promote products derived
dflet 0:50cedd586816 23 // from this software without specific prior written permission.
dflet 0:50cedd586816 24 //
dflet 0:50cedd586816 25 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:50cedd586816 26 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:50cedd586816 27 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:50cedd586816 28 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:50cedd586816 29 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:50cedd586816 30 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:50cedd586816 31 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:50cedd586816 32 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:50cedd586816 33 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:50cedd586816 34 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:50cedd586816 35 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:50cedd586816 36 //
dflet 0:50cedd586816 37 //*****************************************************************************
dflet 0:50cedd586816 38
dflet 0:50cedd586816 39 //****************************************************************************
dflet 0:50cedd586816 40 //
dflet 0:50cedd586816 41 //! \addtogroup main
dflet 0:50cedd586816 42 //! @{
dflet 0:50cedd586816 43 //
dflet 0:50cedd586816 44 //****************************************************************************
dflet 0:50cedd586816 45
dflet 0:50cedd586816 46 #include "mbed.h"
dflet 0:50cedd586816 47
dflet 0:50cedd586816 48 // SimpleLink include
dflet 0:50cedd586816 49 #include "cc3100_simplelink.h"
dflet 0:50cedd586816 50 #include "cc3100.h"
dflet 0:50cedd586816 51
dflet 0:50cedd586816 52 #include "httpserverapp.h"
dflet 0:50cedd586816 53
dflet 4:c27adffcfec2 54 //#include "stm32f4xx_hal.h"
dflet 7:a069c1750fbc 55 #include "stm32f4xx_hal_rcc.h"
dflet 0:50cedd586816 56
dflet 0:50cedd586816 57 /* Free-RTOS includes */
dflet 0:50cedd586816 58 #include "osi.h"
dflet 0:50cedd586816 59
dflet 0:50cedd586816 60 #include "cli_uart.h"
dflet 0:50cedd586816 61 #include "app_config.h"
dflet 0:50cedd586816 62 #include "myBoardInit.h"
dflet 12:7d75ba5deed1 63 #include "camera_app.h"
dflet 0:50cedd586816 64
dflet 0:50cedd586816 65 using namespace mbed_cc3100;
dflet 0:50cedd586816 66
dflet 0:50cedd586816 67 static void SystemClock_Config(void);
dflet 4:c27adffcfec2 68
dflet 4:c27adffcfec2 69 void DCMI_IRQHandler(void);
dflet 4:c27adffcfec2 70 void DMA2_Stream1_IRQHandler(void);
dflet 0:50cedd586816 71
dflet 0:50cedd586816 72 /** System Clock Configuration
dflet 0:50cedd586816 73 */
dflet 0:50cedd586816 74 static void SystemClock_Config(void)
dflet 0:50cedd586816 75 {
dflet 0:50cedd586816 76
dflet 12:7d75ba5deed1 77 // SystemCoreClockUpdate();
dflet 12:7d75ba5deed1 78 /*
dflet 0:50cedd586816 79 RCC_OscInitTypeDef RCC_OscInitStruct;
dflet 0:50cedd586816 80 RCC_ClkInitTypeDef RCC_ClkInitStruct;
dflet 11:404bd8bb7fa6 81 // RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;//Used for ov7670 test
dflet 3:7643714ec664 82
dflet 0:50cedd586816 83 __PWR_CLK_ENABLE();
dflet 7:a069c1750fbc 84 // __GPIOH_CLK_ENABLE(); //Enable HSE Clock 8MHz
dflet 0:50cedd586816 85 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
dflet 0:50cedd586816 86
dflet 0:50cedd586816 87 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
dflet 0:50cedd586816 88 RCC_OscInitStruct.HSEState = RCC_HSE_ON;
dflet 0:50cedd586816 89 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
dflet 0:50cedd586816 90 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
dflet 0:50cedd586816 91 RCC_OscInitStruct.PLL.PLLM = 8;
dflet 0:50cedd586816 92 RCC_OscInitStruct.PLL.PLLN = 336;
dflet 0:50cedd586816 93 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
dflet 0:50cedd586816 94 RCC_OscInitStruct.PLL.PLLQ = 7;
dflet 0:50cedd586816 95 HAL_RCC_OscConfig(&RCC_OscInitStruct);
dflet 0:50cedd586816 96
dflet 0:50cedd586816 97 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1
dflet 0:50cedd586816 98 |RCC_CLOCKTYPE_PCLK2;
dflet 0:50cedd586816 99 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
dflet 0:50cedd586816 100 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
dflet 0:50cedd586816 101 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
dflet 0:50cedd586816 102 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
dflet 0:50cedd586816 103 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
dflet 0:50cedd586816 104
dflet 3:7643714ec664 105 //Used for ov7670 test
dflet 11:404bd8bb7fa6 106 // PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S;//|RCC_PERIPHCLK_I2S;
dflet 11:404bd8bb7fa6 107 // PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
dflet 11:404bd8bb7fa6 108 // PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
dflet 11:404bd8bb7fa6 109 // HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
dflet 12:7d75ba5deed1 110 */
dflet 7:a069c1750fbc 111 /* RCC_MCODIV_5 33.6MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 112 /* RCC_MCODIV_4 42MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 113 /* RCC_MCODIV_3 56MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 114 // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_4);
dflet 4:c27adffcfec2 115
dflet 7:a069c1750fbc 116 /* RCC_MCODIV_1 16MHz mco1 output on pin PA_8 (cam xclk) */
dflet 13:bf45f592c2b6 117 // HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
dflet 7:a069c1750fbc 118
dflet 7:a069c1750fbc 119 /* RCC_MCODIV_1 8MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 120 /* RCC_MCODIV_2 4MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 121 /* RCC_MCODIV_4 2MHz mco2 output on pin PC_9 (cam xclk) */
dflet 13:bf45f592c2b6 122 HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_HSE, RCC_MCODIV_1);
dflet 4:c27adffcfec2 123
dflet 3:7643714ec664 124 //Used for ov7670 test
dflet 7:a069c1750fbc 125 /* RCC_MCODIV_4 24MHz mco2 output on pin PC_9 (cam xclk) */
dflet 11:404bd8bb7fa6 126 // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_PLLI2SCLK, RCC_MCODIV_4);
dflet 0:50cedd586816 127
dflet 12:7d75ba5deed1 128 // HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
dflet 3:7643714ec664 129
dflet 12:7d75ba5deed1 130 // HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
dflet 4:c27adffcfec2 131
dflet 4:c27adffcfec2 132 /* STM32F405x/407x/415x/417x Revision Z devices: prefetch is supported */
dflet 4:c27adffcfec2 133 // if (HAL_GetREVID() == 0x1001)
dflet 4:c27adffcfec2 134 // {
dflet 4:c27adffcfec2 135 /* Enable the Flash prefetch */
dflet 4:c27adffcfec2 136 // __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
dflet 4:c27adffcfec2 137 // }
dflet 3:7643714ec664 138
dflet 0:50cedd586816 139 }
dflet 0:50cedd586816 140
dflet 1:1a80c1529aa3 141 /* Warning if pin changes are made below then the same changes have to be made in the following files.
dflet 0:50cedd586816 142 * httpserverapp.cpp
dflet 0:50cedd586816 143 * HttpCore.cpp
dflet 0:50cedd586816 144 * HttpSocket.cpp
dflet 0:50cedd586816 145 * HttpStatic.cpp
dflet 0:50cedd586816 146 * fPtr_func.cpp
dflet 0:50cedd586816 147 */
dflet 0:50cedd586816 148
dflet 0:50cedd586816 149 /* Off board leds */
dflet 0:50cedd586816 150 DigitalOut led1(PB_15);
dflet 0:50cedd586816 151 DigitalOut led2(PB_14);
dflet 9:b7c6e7303df5 152
dflet 0:50cedd586816 153 cc3100 _cc3100(NC, NC, PD_12, PD_13, PD_11, SPI(PB_5, PB_4, PB_3));//Seeed_Arch_Max irq, nHib, cs, mosi, miso, sck
dflet 0:50cedd586816 154
dflet 0:50cedd586816 155 void initLEDs(void);
dflet 0:50cedd586816 156 void toggleLed(int ind);
dflet 0:50cedd586816 157 static void DisplayBanner(char * AppName);
dflet 0:50cedd586816 158
dflet 0:50cedd586816 159 #define PRINT_BUF_LEN 128
dflet 0:50cedd586816 160 int8_t print_buf[PRINT_BUF_LEN];
dflet 0:50cedd586816 161
dflet 0:50cedd586816 162 //*****************************************************************************
dflet 0:50cedd586816 163 // LOCAL DEFINES
dflet 0:50cedd586816 164 //*****************************************************************************
dflet 0:50cedd586816 165 #define APP_NAME "WebSocket"
dflet 0:50cedd586816 166
dflet 0:50cedd586816 167 void initLEDs(void){
dflet 0:50cedd586816 168
dflet 0:50cedd586816 169 #if (THIS_BOARD == Seeed_Arch_Max)
dflet 0:50cedd586816 170 led1 = 0;
dflet 0:50cedd586816 171 led2 = 0;
dflet 0:50cedd586816 172 #endif
dflet 0:50cedd586816 173
dflet 0:50cedd586816 174 }
dflet 0:50cedd586816 175
dflet 0:50cedd586816 176 void toggleLed(int ind){
dflet 0:50cedd586816 177
dflet 0:50cedd586816 178 if(ind == 1){
dflet 0:50cedd586816 179 led1 = !led1;
dflet 0:50cedd586816 180 }
dflet 0:50cedd586816 181 if(ind == 2){
dflet 0:50cedd586816 182 led2 = !led2;
dflet 0:50cedd586816 183 }
dflet 0:50cedd586816 184
dflet 0:50cedd586816 185 }
dflet 0:50cedd586816 186
dflet 0:50cedd586816 187 //*****************************************************************************
dflet 0:50cedd586816 188 //
dflet 0:50cedd586816 189 //! Application startup display on UART
dflet 0:50cedd586816 190 //!
dflet 0:50cedd586816 191 //! \param none
dflet 0:50cedd586816 192 //!
dflet 0:50cedd586816 193 //! \return none
dflet 0:50cedd586816 194 //!
dflet 0:50cedd586816 195 //*****************************************************************************
dflet 0:50cedd586816 196
dflet 0:50cedd586816 197 //#ifndef NOTERM
dflet 0:50cedd586816 198 static void
dflet 0:50cedd586816 199 DisplayBanner(char * AppName)
dflet 0:50cedd586816 200 {
dflet 0:50cedd586816 201
dflet 0:50cedd586816 202 Report("\n\n\n\r");
dflet 0:50cedd586816 203 Report(" *************************************************\n\r");
dflet 0:50cedd586816 204 Report(" CC3100 %s Application \n\r", AppName);
dflet 0:50cedd586816 205 Report(" *************************************************\n\r");
dflet 0:50cedd586816 206 Report("\n\n\n\r");
dflet 0:50cedd586816 207 }
dflet 0:50cedd586816 208 //#endif
dflet 0:50cedd586816 209
dflet 0:50cedd586816 210 //****************************************************************************
dflet 0:50cedd586816 211 // MAIN FUNCTION
dflet 0:50cedd586816 212 //****************************************************************************
dflet 0:50cedd586816 213 int main(void) {
dflet 0:50cedd586816 214
dflet 12:7d75ba5deed1 215 SCB->SHCSR |= 0x00070000;
dflet 0:50cedd586816 216 int rv = 0;
dflet 3:7643714ec664 217
dflet 12:7d75ba5deed1 218 // HAL_Init();
dflet 4:c27adffcfec2 219
dflet 0:50cedd586816 220 SystemClock_Config();
dflet 12:7d75ba5deed1 221 // DMAConfig();
dflet 3:7643714ec664 222
dflet 0:50cedd586816 223 //
dflet 0:50cedd586816 224 // Configuring UART
dflet 0:50cedd586816 225 //
dflet 0:50cedd586816 226 CLI_Configure();
dflet 7:a069c1750fbc 227 initLEDs();
dflet 0:50cedd586816 228
dflet 4:c27adffcfec2 229 // toggleLed(1);
dflet 0:50cedd586816 230 //#ifndef NOTERM
dflet 0:50cedd586816 231
dflet 0:50cedd586816 232 //
dflet 0:50cedd586816 233 // Configuring UART
dflet 0:50cedd586816 234 //
dflet 0:50cedd586816 235 // CLI_Configure();
dflet 0:50cedd586816 236
dflet 0:50cedd586816 237 memset(print_buf, 0x00, PRINT_BUF_LEN);
dflet 0:50cedd586816 238 sprintf((char*) print_buf, " \r\nSystemCoreClock = %dMHz\r\n ", SystemCoreClock /1000000);
dflet 0:50cedd586816 239 rv = Uart_Write((uint8_t *) print_buf);
dflet 0:50cedd586816 240 if(rv < 0){
dflet 0:50cedd586816 241 while(1){
dflet 0:50cedd586816 242 toggleLed(1);
dflet 0:50cedd586816 243 wait(0.1);
dflet 0:50cedd586816 244 }
dflet 0:50cedd586816 245 }
dflet 0:50cedd586816 246
dflet 0:50cedd586816 247 //
dflet 0:50cedd586816 248 // Display Application Banner
dflet 0:50cedd586816 249 //
dflet 0:50cedd586816 250 DisplayBanner(APP_NAME);
dflet 0:50cedd586816 251
dflet 0:50cedd586816 252 //#endif
dflet 0:50cedd586816 253
dflet 0:50cedd586816 254 //
dflet 0:50cedd586816 255 // Start the SimpleLink Host
dflet 0:50cedd586816 256 //
dflet 0:50cedd586816 257 VStartSimpleLinkSpawnTask(SPAWN_TASK_PRIORITY);
dflet 0:50cedd586816 258 //
dflet 0:50cedd586816 259 // Start the HttpServer Task
dflet 0:50cedd586816 260 //
dflet 0:50cedd586816 261 //
dflet 0:50cedd586816 262
dflet 0:50cedd586816 263 osi_TaskCreate(HttpServerAppTask,
dflet 0:50cedd586816 264 "WebSocketApp",
dflet 0:50cedd586816 265 OSI_STACK_SIZE,
dflet 0:50cedd586816 266 NULL,
dflet 0:50cedd586816 267 HTTP_SERVER_APP_TASK_PRIORITY,
dflet 0:50cedd586816 268 NULL );
dflet 0:50cedd586816 269
dflet 0:50cedd586816 270 Uart_Write((uint8_t*)"HttpServerApp Initialized \n\r");
dflet 0:50cedd586816 271
dflet 0:50cedd586816 272 //
dflet 0:50cedd586816 273 // Start the task scheduler
dflet 0:50cedd586816 274 //
dflet 0:50cedd586816 275 osi_start();
dflet 0:50cedd586816 276
dflet 0:50cedd586816 277 return 0;
dflet 0:50cedd586816 278 }
dflet 0:50cedd586816 279
dflet 4:c27adffcfec2 280 /**
dflet 4:c27adffcfec2 281 * @brief This function handles Hard Fault exception.
dflet 4:c27adffcfec2 282 * @param None
dflet 4:c27adffcfec2 283 * @retval None
dflet 4:c27adffcfec2 284 */
dflet 4:c27adffcfec2 285 extern "C" void HardFault_Handler(void)
dflet 4:c27adffcfec2 286 {
dflet 4:c27adffcfec2 287 /* Go to infinite loop when Hard Fault exception occurs */
dflet 12:7d75ba5deed1 288 Uart_Write((uint8_t*)"\n\rHardFault_Handler \n\r");
dflet 5:75fcfdb7cae7 289 printf("Hard Fault Register SCB->HSFR 0x%X \r\n",SCB->HFSR);
dflet 5:75fcfdb7cae7 290 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 291 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 5:75fcfdb7cae7 292 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 293 Uart_Write((uint8_t*)"HardFault_Handler \n\r");
dflet 4:c27adffcfec2 294 while (1)
dflet 4:c27adffcfec2 295 {
dflet 4:c27adffcfec2 296 }
dflet 4:c27adffcfec2 297 }
dflet 4:c27adffcfec2 298
dflet 4:c27adffcfec2 299 /**
dflet 4:c27adffcfec2 300 * @brief This function handles Memory Manage exception.
dflet 4:c27adffcfec2 301 * @param None
dflet 4:c27adffcfec2 302 * @retval None
dflet 4:c27adffcfec2 303 */
dflet 4:c27adffcfec2 304 extern "C" void MemManage_Handler(void)
dflet 12:7d75ba5deed1 305 {
dflet 12:7d75ba5deed1 306 Uart_Write((uint8_t*)"\n\rMemManage_Handler \n\r");
dflet 12:7d75ba5deed1 307 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 308 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 12:7d75ba5deed1 309 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 310 Uart_Write((uint8_t*)"MemManage_Handler \n\r");
dflet 4:c27adffcfec2 311 /* Go to infinite loop when Memory Manage exception occurs */
dflet 4:c27adffcfec2 312 while (1)
dflet 4:c27adffcfec2 313 {
dflet 4:c27adffcfec2 314 }
dflet 4:c27adffcfec2 315 }
dflet 4:c27adffcfec2 316
dflet 4:c27adffcfec2 317 /**
dflet 4:c27adffcfec2 318 * @brief This function handles Bus Fault exception.
dflet 4:c27adffcfec2 319 * @param None
dflet 4:c27adffcfec2 320 * @retval None
dflet 4:c27adffcfec2 321 */
dflet 4:c27adffcfec2 322 extern "C" void BusFault_Handler(void)
dflet 4:c27adffcfec2 323 {
dflet 12:7d75ba5deed1 324 Uart_Write((uint8_t*)"\n\rBusFault_Handler \n\r");
dflet 12:7d75ba5deed1 325 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 326 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 12:7d75ba5deed1 327 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 328 Uart_Write((uint8_t*)"BusFault_Handler \n\r");
dflet 4:c27adffcfec2 329 /* Go to infinite loop when Bus Fault exception occurs */
dflet 4:c27adffcfec2 330 while (1)
dflet 4:c27adffcfec2 331 {
dflet 4:c27adffcfec2 332 }
dflet 4:c27adffcfec2 333 }
dflet 4:c27adffcfec2 334
dflet 4:c27adffcfec2 335 /**
dflet 4:c27adffcfec2 336 * @brief This function handles Usage Fault exception.
dflet 4:c27adffcfec2 337 * @param None
dflet 4:c27adffcfec2 338 * @retval None
dflet 4:c27adffcfec2 339 */
dflet 4:c27adffcfec2 340 extern "C" void UsageFault_Handler(void)
dflet 4:c27adffcfec2 341 {
dflet 4:c27adffcfec2 342 Uart_Write((uint8_t*)"UsageFault_Handler \n\r");
dflet 4:c27adffcfec2 343 /* Go to infinite loop when Usage Fault exception occurs */
dflet 4:c27adffcfec2 344 while (1)
dflet 4:c27adffcfec2 345 {
dflet 4:c27adffcfec2 346 }
dflet 4:c27adffcfec2 347 }
dflet 4:c27adffcfec2 348
dflet 4:c27adffcfec2 349 /**
dflet 4:c27adffcfec2 350 * @brief This function handles SVCall exception.
dflet 4:c27adffcfec2 351 * @param None
dflet 4:c27adffcfec2 352 * @retval None
dflet 4:c27adffcfec2 353 */
dflet 4:c27adffcfec2 354 /*
dflet 4:c27adffcfec2 355 extern "C" void SVC_Handler(void)
dflet 4:c27adffcfec2 356 {
dflet 4:c27adffcfec2 357 Uart_Write((uint8_t*)"SVC_Handler \n\r");
dflet 4:c27adffcfec2 358 }
dflet 4:c27adffcfec2 359 */
dflet 4:c27adffcfec2 360 /**
dflet 4:c27adffcfec2 361 * @brief This function handles Debug Monitor exception.
dflet 4:c27adffcfec2 362 * @param None
dflet 4:c27adffcfec2 363 * @retval None
dflet 4:c27adffcfec2 364 */
dflet 4:c27adffcfec2 365 extern "C" void DebugMon_Handler(void)
dflet 4:c27adffcfec2 366 {
dflet 4:c27adffcfec2 367 Uart_Write((uint8_t*)"DebugMon_Handler \n\r");
dflet 4:c27adffcfec2 368 }
dflet 4:c27adffcfec2 369
dflet 4:c27adffcfec2 370 /**
dflet 4:c27adffcfec2 371 * @brief This function handles PendSVC exception.
dflet 4:c27adffcfec2 372 * @param None
dflet 4:c27adffcfec2 373 * @retval None
dflet 4:c27adffcfec2 374 */
dflet 4:c27adffcfec2 375 /*
dflet 4:c27adffcfec2 376 extern "C" void PendSV_Handler(void)
dflet 4:c27adffcfec2 377 {
dflet 4:c27adffcfec2 378 Uart_Write((uint8_t*)"PendSV_Handler \n\r");
dflet 4:c27adffcfec2 379 }
dflet 4:c27adffcfec2 380 */
dflet 4:c27adffcfec2 381 /**
dflet 4:c27adffcfec2 382 * @brief This function handles SysTick Handler.
dflet 4:c27adffcfec2 383 * @param None
dflet 4:c27adffcfec2 384 * @retval None
dflet 4:c27adffcfec2 385 */
dflet 4:c27adffcfec2 386 /*
dflet 4:c27adffcfec2 387 extern "C" void SysTick_Handler(void)
dflet 4:c27adffcfec2 388 {
dflet 4:c27adffcfec2 389 Uart_Write((uint8_t*)"SysTick_Handler \n\r");
dflet 4:c27adffcfec2 390 HAL_IncTick();
dflet 4:c27adffcfec2 391 }
dflet 4:c27adffcfec2 392 */
dflet 4:c27adffcfec2 393 /**
dflet 4:c27adffcfec2 394 * @brief DMA interrupt handler.
dflet 4:c27adffcfec2 395 * @param None
dflet 4:c27adffcfec2 396 * @retval None
dflet 4:c27adffcfec2 397 */
dflet 11:404bd8bb7fa6 398 /*
dflet 4:c27adffcfec2 399 void DMA2_Stream1_IRQHandler(void)
dflet 4:c27adffcfec2 400 {
dflet 5:75fcfdb7cae7 401 DMA_HandleTypeDef hdma_dcmi;
dflet 4:c27adffcfec2 402 Uart_Write((uint8_t*)"DMA2_Stream1_IRQHandler \n\r");
dflet 4:c27adffcfec2 403 HAL_DMA_IRQHandler(&hdma_dcmi);
dflet 4:c27adffcfec2 404 }
dflet 11:404bd8bb7fa6 405 */
dflet 4:c27adffcfec2 406 /**
dflet 4:c27adffcfec2 407 * @brief DCMI interrupt handler.
dflet 4:c27adffcfec2 408 * @param None
dflet 4:c27adffcfec2 409 * @retval None
dflet 4:c27adffcfec2 410 */
dflet 11:404bd8bb7fa6 411 /*
dflet 4:c27adffcfec2 412 void DCMI_IRQHandler(void)
dflet 4:c27adffcfec2 413 {
dflet 5:75fcfdb7cae7 414 DCMI_HandleTypeDef hdcmi;
dflet 4:c27adffcfec2 415 Uart_Write((uint8_t*)"DCMI_IRQHandler \n\r");
dflet 4:c27adffcfec2 416 HAL_DCMI_IRQHandler(&hdcmi);
dflet 4:c27adffcfec2 417 }
dflet 11:404bd8bb7fa6 418 */
dflet 0:50cedd586816 419 //*****************************************************************************
dflet 0:50cedd586816 420 //
dflet 0:50cedd586816 421 // Close the Doxygen group.
dflet 0:50cedd586816 422 //! @}
dflet 0:50cedd586816 423 //
dflet 0:50cedd586816 424 //*****************************************************************************
dflet 0:50cedd586816 425