Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Committer:
dflet
Date:
Tue Aug 25 22:03:00 2015 +0000
Revision:
14:90603ea1e85b
Parent:
13:bf45f592c2b6
Child:
15:5433f9d94cd7
I2C now works. 2 Cams added only the ov2640 works for now, many changes everywhere in the cam app. Still filled with debug.

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 14:90603ea1e85b 67 extern DCMI_HandleTypeDef hdcmi;
dflet 14:90603ea1e85b 68 extern DMA_HandleTypeDef hdma_dcmi;
dflet 4:c27adffcfec2 69
dflet 4:c27adffcfec2 70 void DCMI_IRQHandler(void);
dflet 4:c27adffcfec2 71 void DMA2_Stream1_IRQHandler(void);
dflet 0:50cedd586816 72
dflet 1:1a80c1529aa3 73 /* Warning if pin changes are made below then the same changes have to be made in the following files.
dflet 0:50cedd586816 74 * httpserverapp.cpp
dflet 0:50cedd586816 75 * HttpCore.cpp
dflet 0:50cedd586816 76 * HttpSocket.cpp
dflet 0:50cedd586816 77 * HttpStatic.cpp
dflet 0:50cedd586816 78 * fPtr_func.cpp
dflet 0:50cedd586816 79 */
dflet 0:50cedd586816 80
dflet 0:50cedd586816 81 /* Off board leds */
dflet 0:50cedd586816 82 DigitalOut led1(PB_15);
dflet 0:50cedd586816 83 DigitalOut led2(PB_14);
dflet 14:90603ea1e85b 84 //Serial pc(USBTX, USBRX);
dflet 0:50cedd586816 85 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 86
dflet 14:90603ea1e85b 87 static void Start_MCO1(void);
dflet 0:50cedd586816 88 void initLEDs(void);
dflet 0:50cedd586816 89 void toggleLed(int ind);
dflet 0:50cedd586816 90 static void DisplayBanner(char * AppName);
dflet 0:50cedd586816 91
dflet 0:50cedd586816 92 #define PRINT_BUF_LEN 128
dflet 0:50cedd586816 93 int8_t print_buf[PRINT_BUF_LEN];
dflet 0:50cedd586816 94
dflet 0:50cedd586816 95 //*****************************************************************************
dflet 0:50cedd586816 96 // LOCAL DEFINES
dflet 0:50cedd586816 97 //*****************************************************************************
dflet 0:50cedd586816 98 #define APP_NAME "WebSocket"
dflet 0:50cedd586816 99
dflet 0:50cedd586816 100 void initLEDs(void){
dflet 0:50cedd586816 101
dflet 0:50cedd586816 102 #if (THIS_BOARD == Seeed_Arch_Max)
dflet 0:50cedd586816 103 led1 = 0;
dflet 0:50cedd586816 104 led2 = 0;
dflet 0:50cedd586816 105 #endif
dflet 0:50cedd586816 106
dflet 0:50cedd586816 107 }
dflet 0:50cedd586816 108
dflet 14:90603ea1e85b 109 static void Start_MCO1()
dflet 14:90603ea1e85b 110 {
dflet 14:90603ea1e85b 111
dflet 14:90603ea1e85b 112 GPIO_InitTypeDef GPIO_InitStruct;
dflet 14:90603ea1e85b 113 __GPIOA_CLK_ENABLE();
dflet 14:90603ea1e85b 114
dflet 14:90603ea1e85b 115 /*Configure GPIO pin : GPIO_AF0_MCO PA8 */
dflet 14:90603ea1e85b 116 GPIO_InitStruct.Pin = GPIO_PIN_8;
dflet 14:90603ea1e85b 117 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
dflet 14:90603ea1e85b 118 GPIO_InitStruct.Pull = GPIO_PULLUP;
dflet 14:90603ea1e85b 119 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
dflet 14:90603ea1e85b 120 GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
dflet 14:90603ea1e85b 121 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
dflet 14:90603ea1e85b 122
dflet 14:90603ea1e85b 123 #if defined OV5642_CAM || defined OV2640_CAM
dflet 14:90603ea1e85b 124 /* MCO1 output 16MHz */
dflet 14:90603ea1e85b 125 HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_1);
dflet 14:90603ea1e85b 126 #else
dflet 14:90603ea1e85b 127 /* MCO1 output 8MHz */
dflet 14:90603ea1e85b 128 HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_2);
dflet 14:90603ea1e85b 129 #endif
dflet 14:90603ea1e85b 130 wait_ms(500);
dflet 14:90603ea1e85b 131 }
dflet 14:90603ea1e85b 132
dflet 0:50cedd586816 133 void toggleLed(int ind){
dflet 0:50cedd586816 134
dflet 0:50cedd586816 135 if(ind == 1){
dflet 0:50cedd586816 136 led1 = !led1;
dflet 0:50cedd586816 137 }
dflet 0:50cedd586816 138 if(ind == 2){
dflet 0:50cedd586816 139 led2 = !led2;
dflet 0:50cedd586816 140 }
dflet 0:50cedd586816 141
dflet 0:50cedd586816 142 }
dflet 0:50cedd586816 143
dflet 0:50cedd586816 144 //*****************************************************************************
dflet 0:50cedd586816 145 //
dflet 0:50cedd586816 146 //! Application startup display on UART
dflet 0:50cedd586816 147 //!
dflet 0:50cedd586816 148 //! \param none
dflet 0:50cedd586816 149 //!
dflet 0:50cedd586816 150 //! \return none
dflet 0:50cedd586816 151 //!
dflet 0:50cedd586816 152 //*****************************************************************************
dflet 0:50cedd586816 153
dflet 0:50cedd586816 154 //#ifndef NOTERM
dflet 0:50cedd586816 155 static void
dflet 0:50cedd586816 156 DisplayBanner(char * AppName)
dflet 0:50cedd586816 157 {
dflet 0:50cedd586816 158
dflet 0:50cedd586816 159 Report("\n\n\n\r");
dflet 0:50cedd586816 160 Report(" *************************************************\n\r");
dflet 0:50cedd586816 161 Report(" CC3100 %s Application \n\r", AppName);
dflet 0:50cedd586816 162 Report(" *************************************************\n\r");
dflet 0:50cedd586816 163 Report("\n\n\n\r");
dflet 0:50cedd586816 164 }
dflet 0:50cedd586816 165 //#endif
dflet 0:50cedd586816 166
dflet 0:50cedd586816 167 //****************************************************************************
dflet 0:50cedd586816 168 // MAIN FUNCTION
dflet 0:50cedd586816 169 //****************************************************************************
dflet 0:50cedd586816 170 int main(void) {
dflet 0:50cedd586816 171
dflet 12:7d75ba5deed1 172 SCB->SHCSR |= 0x00070000;
dflet 0:50cedd586816 173 int rv = 0;
dflet 3:7643714ec664 174
dflet 0:50cedd586816 175 //
dflet 0:50cedd586816 176 // Configuring UART
dflet 0:50cedd586816 177 //
dflet 0:50cedd586816 178 CLI_Configure();
dflet 14:90603ea1e85b 179
dflet 14:90603ea1e85b 180 #if defined OV5642_CAM
dflet 14:90603ea1e85b 181 Uart_Write((uint8_t*)"\n\rOV5642 Camera \n\r");
dflet 14:90603ea1e85b 182 #elif defined OV2640_CAM
dflet 14:90603ea1e85b 183 Uart_Write((uint8_t*)"\n\rOV2640 Camera \n\r");
dflet 14:90603ea1e85b 184 #elif defined MT9D111_CAM
dflet 14:90603ea1e85b 185 Uart_Write((uint8_t*)"\n\rMT9D111 Camera \n\r");
dflet 14:90603ea1e85b 186 #endif
dflet 14:90603ea1e85b 187
dflet 14:90603ea1e85b 188 /* Start Camera Master Clock */
dflet 14:90603ea1e85b 189 Start_MCO1();
dflet 14:90603ea1e85b 190
dflet 14:90603ea1e85b 191
dflet 14:90603ea1e85b 192
dflet 7:a069c1750fbc 193 initLEDs();
dflet 0:50cedd586816 194
dflet 4:c27adffcfec2 195 // toggleLed(1);
dflet 0:50cedd586816 196 //#ifndef NOTERM
dflet 0:50cedd586816 197
dflet 0:50cedd586816 198 memset(print_buf, 0x00, PRINT_BUF_LEN);
dflet 0:50cedd586816 199 sprintf((char*) print_buf, " \r\nSystemCoreClock = %dMHz\r\n ", SystemCoreClock /1000000);
dflet 0:50cedd586816 200 rv = Uart_Write((uint8_t *) print_buf);
dflet 0:50cedd586816 201 if(rv < 0){
dflet 0:50cedd586816 202 while(1){
dflet 0:50cedd586816 203 toggleLed(1);
dflet 0:50cedd586816 204 wait(0.1);
dflet 0:50cedd586816 205 }
dflet 0:50cedd586816 206 }
dflet 0:50cedd586816 207
dflet 0:50cedd586816 208 //
dflet 0:50cedd586816 209 // Display Application Banner
dflet 0:50cedd586816 210 //
dflet 0:50cedd586816 211 DisplayBanner(APP_NAME);
dflet 0:50cedd586816 212
dflet 0:50cedd586816 213 //#endif
dflet 0:50cedd586816 214
dflet 0:50cedd586816 215 //
dflet 0:50cedd586816 216 // Start the SimpleLink Host
dflet 0:50cedd586816 217 //
dflet 0:50cedd586816 218 VStartSimpleLinkSpawnTask(SPAWN_TASK_PRIORITY);
dflet 0:50cedd586816 219 //
dflet 0:50cedd586816 220 // Start the HttpServer Task
dflet 0:50cedd586816 221 //
dflet 0:50cedd586816 222 //
dflet 0:50cedd586816 223
dflet 0:50cedd586816 224 osi_TaskCreate(HttpServerAppTask,
dflet 0:50cedd586816 225 "WebSocketApp",
dflet 0:50cedd586816 226 OSI_STACK_SIZE,
dflet 0:50cedd586816 227 NULL,
dflet 0:50cedd586816 228 HTTP_SERVER_APP_TASK_PRIORITY,
dflet 0:50cedd586816 229 NULL );
dflet 0:50cedd586816 230
dflet 14:90603ea1e85b 231 Uart_Write((uint8_t*)"HttpServerApp Initializing \n\r");
dflet 0:50cedd586816 232
dflet 0:50cedd586816 233 //
dflet 0:50cedd586816 234 // Start the task scheduler
dflet 0:50cedd586816 235 //
dflet 0:50cedd586816 236 osi_start();
dflet 0:50cedd586816 237
dflet 0:50cedd586816 238 return 0;
dflet 0:50cedd586816 239 }
dflet 0:50cedd586816 240
dflet 4:c27adffcfec2 241 /**
dflet 4:c27adffcfec2 242 * @brief This function handles Hard Fault exception.
dflet 4:c27adffcfec2 243 * @param None
dflet 4:c27adffcfec2 244 * @retval None
dflet 4:c27adffcfec2 245 */
dflet 4:c27adffcfec2 246 extern "C" void HardFault_Handler(void)
dflet 4:c27adffcfec2 247 {
dflet 4:c27adffcfec2 248 /* Go to infinite loop when Hard Fault exception occurs */
dflet 12:7d75ba5deed1 249 Uart_Write((uint8_t*)"\n\rHardFault_Handler \n\r");
dflet 5:75fcfdb7cae7 250 printf("Hard Fault Register SCB->HSFR 0x%X \r\n",SCB->HFSR);
dflet 5:75fcfdb7cae7 251 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 252 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 5:75fcfdb7cae7 253 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 254 Uart_Write((uint8_t*)"HardFault_Handler \n\r");
dflet 4:c27adffcfec2 255 while (1)
dflet 4:c27adffcfec2 256 {
dflet 4:c27adffcfec2 257 }
dflet 4:c27adffcfec2 258 }
dflet 4:c27adffcfec2 259
dflet 4:c27adffcfec2 260 /**
dflet 4:c27adffcfec2 261 * @brief This function handles Memory Manage exception.
dflet 4:c27adffcfec2 262 * @param None
dflet 4:c27adffcfec2 263 * @retval None
dflet 4:c27adffcfec2 264 */
dflet 4:c27adffcfec2 265 extern "C" void MemManage_Handler(void)
dflet 12:7d75ba5deed1 266 {
dflet 12:7d75ba5deed1 267 Uart_Write((uint8_t*)"\n\rMemManage_Handler \n\r");
dflet 12:7d75ba5deed1 268 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 269 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 12:7d75ba5deed1 270 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 271 Uart_Write((uint8_t*)"MemManage_Handler \n\r");
dflet 4:c27adffcfec2 272 /* Go to infinite loop when Memory Manage exception occurs */
dflet 4:c27adffcfec2 273 while (1)
dflet 4:c27adffcfec2 274 {
dflet 4:c27adffcfec2 275 }
dflet 4:c27adffcfec2 276 }
dflet 4:c27adffcfec2 277
dflet 4:c27adffcfec2 278 /**
dflet 4:c27adffcfec2 279 * @brief This function handles Bus Fault exception.
dflet 4:c27adffcfec2 280 * @param None
dflet 4:c27adffcfec2 281 * @retval None
dflet 4:c27adffcfec2 282 */
dflet 4:c27adffcfec2 283 extern "C" void BusFault_Handler(void)
dflet 4:c27adffcfec2 284 {
dflet 12:7d75ba5deed1 285 Uart_Write((uint8_t*)"\n\rBusFault_Handler \n\r");
dflet 12:7d75ba5deed1 286 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 12:7d75ba5deed1 287 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 12:7d75ba5deed1 288 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 4:c27adffcfec2 289 Uart_Write((uint8_t*)"BusFault_Handler \n\r");
dflet 4:c27adffcfec2 290 /* Go to infinite loop when Bus Fault exception occurs */
dflet 4:c27adffcfec2 291 while (1)
dflet 4:c27adffcfec2 292 {
dflet 4:c27adffcfec2 293 }
dflet 4:c27adffcfec2 294 }
dflet 4:c27adffcfec2 295
dflet 4:c27adffcfec2 296 /**
dflet 4:c27adffcfec2 297 * @brief This function handles Usage Fault exception.
dflet 4:c27adffcfec2 298 * @param None
dflet 4:c27adffcfec2 299 * @retval None
dflet 4:c27adffcfec2 300 */
dflet 4:c27adffcfec2 301 extern "C" void UsageFault_Handler(void)
dflet 4:c27adffcfec2 302 {
dflet 4:c27adffcfec2 303 Uart_Write((uint8_t*)"UsageFault_Handler \n\r");
dflet 4:c27adffcfec2 304 /* Go to infinite loop when Usage Fault exception occurs */
dflet 4:c27adffcfec2 305 while (1)
dflet 4:c27adffcfec2 306 {
dflet 4:c27adffcfec2 307 }
dflet 4:c27adffcfec2 308 }
dflet 4:c27adffcfec2 309
dflet 4:c27adffcfec2 310 /**
dflet 4:c27adffcfec2 311 * @brief This function handles SVCall exception.
dflet 4:c27adffcfec2 312 * @param None
dflet 4:c27adffcfec2 313 * @retval None
dflet 4:c27adffcfec2 314 */
dflet 4:c27adffcfec2 315 /*
dflet 4:c27adffcfec2 316 extern "C" void SVC_Handler(void)
dflet 4:c27adffcfec2 317 {
dflet 4:c27adffcfec2 318 Uart_Write((uint8_t*)"SVC_Handler \n\r");
dflet 4:c27adffcfec2 319 }
dflet 4:c27adffcfec2 320 */
dflet 4:c27adffcfec2 321 /**
dflet 4:c27adffcfec2 322 * @brief This function handles Debug Monitor exception.
dflet 4:c27adffcfec2 323 * @param None
dflet 4:c27adffcfec2 324 * @retval None
dflet 4:c27adffcfec2 325 */
dflet 4:c27adffcfec2 326 extern "C" void DebugMon_Handler(void)
dflet 4:c27adffcfec2 327 {
dflet 4:c27adffcfec2 328 Uart_Write((uint8_t*)"DebugMon_Handler \n\r");
dflet 4:c27adffcfec2 329 }
dflet 4:c27adffcfec2 330
dflet 4:c27adffcfec2 331 /**
dflet 4:c27adffcfec2 332 * @brief This function handles PendSVC exception.
dflet 4:c27adffcfec2 333 * @param None
dflet 4:c27adffcfec2 334 * @retval None
dflet 4:c27adffcfec2 335 */
dflet 4:c27adffcfec2 336 /*
dflet 4:c27adffcfec2 337 extern "C" void PendSV_Handler(void)
dflet 4:c27adffcfec2 338 {
dflet 4:c27adffcfec2 339 Uart_Write((uint8_t*)"PendSV_Handler \n\r");
dflet 4:c27adffcfec2 340 }
dflet 4:c27adffcfec2 341 */
dflet 4:c27adffcfec2 342 /**
dflet 4:c27adffcfec2 343 * @brief This function handles SysTick Handler.
dflet 4:c27adffcfec2 344 * @param None
dflet 4:c27adffcfec2 345 * @retval None
dflet 4:c27adffcfec2 346 */
dflet 4:c27adffcfec2 347 /*
dflet 4:c27adffcfec2 348 extern "C" void SysTick_Handler(void)
dflet 4:c27adffcfec2 349 {
dflet 4:c27adffcfec2 350 Uart_Write((uint8_t*)"SysTick_Handler \n\r");
dflet 4:c27adffcfec2 351 HAL_IncTick();
dflet 4:c27adffcfec2 352 }
dflet 4:c27adffcfec2 353 */
dflet 4:c27adffcfec2 354 /**
dflet 4:c27adffcfec2 355 * @brief DMA interrupt handler.
dflet 4:c27adffcfec2 356 * @param None
dflet 4:c27adffcfec2 357 * @retval None
dflet 4:c27adffcfec2 358 */
dflet 14:90603ea1e85b 359 /*
dflet 4:c27adffcfec2 360 void DMA2_Stream1_IRQHandler(void)
dflet 4:c27adffcfec2 361 {
dflet 4:c27adffcfec2 362 Uart_Write((uint8_t*)"DMA2_Stream1_IRQHandler \n\r");
dflet 4:c27adffcfec2 363 HAL_DMA_IRQHandler(&hdma_dcmi);
dflet 4:c27adffcfec2 364 }
dflet 11:404bd8bb7fa6 365 */
dflet 4:c27adffcfec2 366 /**
dflet 4:c27adffcfec2 367 * @brief DCMI interrupt handler.
dflet 4:c27adffcfec2 368 * @param None
dflet 4:c27adffcfec2 369 * @retval None
dflet 14:90603ea1e85b 370 */
dflet 14:90603ea1e85b 371 /*
dflet 4:c27adffcfec2 372 void DCMI_IRQHandler(void)
dflet 4:c27adffcfec2 373 {
dflet 4:c27adffcfec2 374 Uart_Write((uint8_t*)"DCMI_IRQHandler \n\r");
dflet 4:c27adffcfec2 375 HAL_DCMI_IRQHandler(&hdcmi);
dflet 4:c27adffcfec2 376 }
dflet 11:404bd8bb7fa6 377 */
dflet 0:50cedd586816 378 //*****************************************************************************
dflet 0:50cedd586816 379 //
dflet 0:50cedd586816 380 // Close the Doxygen group.
dflet 0:50cedd586816 381 //! @}
dflet 0:50cedd586816 382 //
dflet 0:50cedd586816 383 //*****************************************************************************
dflet 0:50cedd586816 384
dflet 14:90603ea1e85b 385
dflet 14:90603ea1e85b 386
dflet 14:90603ea1e85b 387