Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Driver/main.h@15:2860c960d2ff, 2018-07-25 (annotated)
- Committer:
- fahadmirza
- Date:
- Wed Jul 25 17:38:48 2018 +0000
- Revision:
- 15:2860c960d2ff
- Parent:
- 14:05245fe1a7a0
- Child:
- 22:5b77cf59d630
Cleanup; SENSOR_ON is false;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fahadmirza | 5:53302861bfea | 1 | /* |
| fahadmirza | 5:53302861bfea | 2 | _ _ _____ _______ |
| fahadmirza | 5:53302861bfea | 3 | | | | | |_ _| |__ __| |
| fahadmirza | 5:53302861bfea | 4 | | |__| | __ ___ __ | | ___ | | |
| fahadmirza | 5:53302861bfea | 5 | | __ |/ _` \ \/ / | | / _ \| | |
| fahadmirza | 5:53302861bfea | 6 | | | | | (_| |> < _| || (_) | | |
| fahadmirza | 5:53302861bfea | 7 | |_| |_|\__,_/_/\_\_____\___/|_| |
| fahadmirza | 5:53302861bfea | 8 | (C)2017 HaxIoT |
| fahadmirza | 5:53302861bfea | 9 | |
| fahadmirza | 5:53302861bfea | 10 | Description: contains hardware configuration Macros and Constants |
| fahadmirza | 5:53302861bfea | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project |
| fahadmirza | 5:53302861bfea | 12 | */ |
| fahadmirza | 5:53302861bfea | 13 | /******************************************************************************* |
| fahadmirza | 5:53302861bfea | 14 | * @File Name : main.h |
| fahadmirza | 5:53302861bfea | 15 | * @Author : Fahad Mirza |
| fahadmirza | 15:2860c960d2ff | 16 | * @Modified : 04 July, 2018 |
| fahadmirza | 5:53302861bfea | 17 | * @Description : Header file for main.c |
| fahadmirza | 15:2860c960d2ff | 18 | ****************************************************************************** |
| fahadmirza | 15:2860c960d2ff | 19 | * @attention |
| fahadmirza | 15:2860c960d2ff | 20 | * |
| fahadmirza | 15:2860c960d2ff | 21 | * <h2><center>© COPYRIGHT(c) 2017 Haxiot</center></h2> |
| fahadmirza | 15:2860c960d2ff | 22 | * |
| fahadmirza | 15:2860c960d2ff | 23 | * Redistribution and use in source and binary forms, with or without modification, |
| fahadmirza | 15:2860c960d2ff | 24 | * are permitted provided that the following conditions are met: |
| fahadmirza | 15:2860c960d2ff | 25 | * 1. Redistributions of source code must retain the above copyright notice, |
| fahadmirza | 15:2860c960d2ff | 26 | * this list of conditions and the following disclaimer. |
| fahadmirza | 15:2860c960d2ff | 27 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
| fahadmirza | 15:2860c960d2ff | 28 | * this list of conditions and the following disclaimer in the documentation |
| fahadmirza | 15:2860c960d2ff | 29 | * and/or other materials provided with the distribution. |
| fahadmirza | 15:2860c960d2ff | 30 | * 3. Neither the name of Haxiot nor the names of its contributors |
| fahadmirza | 15:2860c960d2ff | 31 | * may be used to endorse or promote products derived from this software |
| fahadmirza | 15:2860c960d2ff | 32 | * without specific prior written permission. |
| fahadmirza | 15:2860c960d2ff | 33 | * |
| fahadmirza | 15:2860c960d2ff | 34 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| fahadmirza | 15:2860c960d2ff | 35 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| fahadmirza | 15:2860c960d2ff | 36 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| fahadmirza | 15:2860c960d2ff | 37 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| fahadmirza | 15:2860c960d2ff | 38 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| fahadmirza | 15:2860c960d2ff | 39 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| fahadmirza | 15:2860c960d2ff | 40 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| fahadmirza | 15:2860c960d2ff | 41 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| fahadmirza | 15:2860c960d2ff | 42 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| fahadmirza | 15:2860c960d2ff | 43 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| fahadmirza | 15:2860c960d2ff | 44 | * |
| fahadmirza | 15:2860c960d2ff | 45 | ****************************************************************************** |
| fahadmirza | 15:2860c960d2ff | 46 | */ |
| fahadmirza | 15:2860c960d2ff | 47 | |
| fahadmirza | 5:53302861bfea | 48 | #ifndef MAIN_H_ |
| fahadmirza | 5:53302861bfea | 49 | #define MAIN_H_ |
| fahadmirza | 5:53302861bfea | 50 | |
| fahadmirza | 15:2860c960d2ff | 51 | #ifdef __cplusplus |
| fahadmirza | 15:2860c960d2ff | 52 | extern "C" { |
| fahadmirza | 15:2860c960d2ff | 53 | #endif |
| fahadmirza | 15:2860c960d2ff | 54 | |
| fahadmirza | 5:53302861bfea | 55 | #include "hw.h" |
| fahadmirza | 5:53302861bfea | 56 | #include "debug.h" |
| fahadmirza | 5:53302861bfea | 57 | #include "delay.h" |
| fahadmirza | 5:53302861bfea | 58 | #include "low_power_manager.h" |
| fahadmirza | 5:53302861bfea | 59 | |
| fahadmirza | 5:53302861bfea | 60 | /* Macros --------------------------------------------------------------------*/ |
| fahadmirza | 5:53302861bfea | 61 | #define ENABLE_FAST_WAKEUP |
| fahadmirza | 5:53302861bfea | 62 | |
| fahadmirza | 5:53302861bfea | 63 | /* Variables -----------------------------------------------------------------*/ |
| fahadmirza | 5:53302861bfea | 64 | //Flag to indicate if the MCU is Initialized |
| fahadmirza | 5:53302861bfea | 65 | static bool McuInitialized = false; |
| fahadmirza | 5:53302861bfea | 66 | |
| fahadmirza | 14:05245fe1a7a0 | 67 | // Mbed specific declaration |
| fahadmirza | 14:05245fe1a7a0 | 68 | AnalogIn temperatureSensor(A0); |
| fahadmirza | 14:05245fe1a7a0 | 69 | DigitalOut nucleoLED(LED1); |
| fahadmirza | 14:05245fe1a7a0 | 70 | DigitalIn slideSwitch(D12); |
| fahadmirza | 14:05245fe1a7a0 | 71 | DigitalOut blueLED(D11); |
| fahadmirza | 14:05245fe1a7a0 | 72 | DigitalOut redLED(D10); |
| fahadmirza | 14:05245fe1a7a0 | 73 | DigitalOut greenLED(D9); |
| fahadmirza | 14:05245fe1a7a0 | 74 | |
| fahadmirza | 5:53302861bfea | 75 | |
| fahadmirza | 5:53302861bfea | 76 | |
| fahadmirza | 5:53302861bfea | 77 | /****************************************************************************** |
| fahadmirza | 15:2860c960d2ff | 78 | * @Brief : System Clock Configuration |
| fahadmirza | 5:53302861bfea | 79 | * The system Clock is configured as follow : |
| fahadmirza | 5:53302861bfea | 80 | * System Clock source = PLL (HSI) |
| fahadmirza | 5:53302861bfea | 81 | * SYSCLK(Hz) = 32000000 |
| fahadmirza | 5:53302861bfea | 82 | * HCLK(Hz) = 32000000 |
| fahadmirza | 5:53302861bfea | 83 | * AHB Prescaler = 1 |
| fahadmirza | 5:53302861bfea | 84 | * APB1 Prescaler = 1 |
| fahadmirza | 5:53302861bfea | 85 | * APB2 Prescaler = 1 |
| fahadmirza | 5:53302861bfea | 86 | * HSI Frequency(Hz) = 16000000 |
| fahadmirza | 5:53302861bfea | 87 | * PLLMUL = 6 |
| fahadmirza | 5:53302861bfea | 88 | * PLLDIV = 3 |
| fahadmirza | 5:53302861bfea | 89 | * Flash Latency(WS) = 1 |
| fahadmirza | 15:2860c960d2ff | 90 | * @Return: None |
| fahadmirza | 15:2860c960d2ff | 91 | * @Note : This function enables all the clock necessary for the demo |
| fahadmirza | 5:53302861bfea | 92 | * including UARTs |
| fahadmirza | 5:53302861bfea | 93 | ******************************************************************************/ |
| fahadmirza | 5:53302861bfea | 94 | void SystemClock_Config(void) |
| fahadmirza | 5:53302861bfea | 95 | { |
| fahadmirza | 5:53302861bfea | 96 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
| fahadmirza | 5:53302861bfea | 97 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
| fahadmirza | 5:53302861bfea | 98 | |
| fahadmirza | 5:53302861bfea | 99 | // Enable HSI48 Oscillator for RNG analog part |
| fahadmirza | 5:53302861bfea | 100 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48; |
| fahadmirza | 5:53302861bfea | 101 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; |
| fahadmirza | 5:53302861bfea | 102 | RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; |
| fahadmirza | 5:53302861bfea | 103 | if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
| fahadmirza | 5:53302861bfea | 104 | { |
| fahadmirza | 5:53302861bfea | 105 | // Initialization Error |
| fahadmirza | 5:53302861bfea | 106 | Error_Handler(); |
| fahadmirza | 5:53302861bfea | 107 | } |
| fahadmirza | 5:53302861bfea | 108 | |
| fahadmirza | 5:53302861bfea | 109 | // Set Voltage scale1 as MCU will run at 32MHz |
| fahadmirza | 5:53302861bfea | 110 | __HAL_RCC_PWR_CLK_ENABLE(); |
| fahadmirza | 5:53302861bfea | 111 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); |
| fahadmirza | 5:53302861bfea | 112 | |
| fahadmirza | 5:53302861bfea | 113 | // Poll VOSF bit of in PWR_CSR. Wait until it is reset to 0 |
| fahadmirza | 5:53302861bfea | 114 | while (__HAL_PWR_GET_FLAG(PWR_FLAG_VOS) != RESET) {}; |
| fahadmirza | 5:53302861bfea | 115 | |
| fahadmirza | 5:53302861bfea | 116 | // Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers |
| fahadmirza | 5:53302861bfea | 117 | RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); |
| fahadmirza | 5:53302861bfea | 118 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| fahadmirza | 5:53302861bfea | 119 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
| fahadmirza | 5:53302861bfea | 120 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; |
| fahadmirza | 5:53302861bfea | 121 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
| fahadmirza | 5:53302861bfea | 122 | if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) |
| fahadmirza | 5:53302861bfea | 123 | { |
| fahadmirza | 5:53302861bfea | 124 | Error_Handler(); |
| fahadmirza | 5:53302861bfea | 125 | } |
| fahadmirza | 5:53302861bfea | 126 | |
| fahadmirza | 5:53302861bfea | 127 | HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); |
| fahadmirza | 5:53302861bfea | 128 | HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); |
| fahadmirza | 5:53302861bfea | 129 | |
| fahadmirza | 5:53302861bfea | 130 | // SysTick_IRQn interrupt configuration |
| fahadmirza | 5:53302861bfea | 131 | HAL_NVIC_SetPriority(SysTick_IRQn, 1, 0); |
| fahadmirza | 5:53302861bfea | 132 | } |
| fahadmirza | 5:53302861bfea | 133 | |
| fahadmirza | 5:53302861bfea | 134 | /****************************************************************************** |
| fahadmirza | 5:53302861bfea | 135 | * @Brief : Set all pin as analog |
| fahadmirza | 15:2860c960d2ff | 136 | * @Param : None |
| fahadmirza | 15:2860c960d2ff | 137 | * @Return: None |
| fahadmirza | 5:53302861bfea | 138 | ******************************************************************************/ |
| fahadmirza | 5:53302861bfea | 139 | void HW_GpioInit(void) |
| fahadmirza | 5:53302861bfea | 140 | { |
| fahadmirza | 5:53302861bfea | 141 | GPIO_InitTypeDef GPIO_InitStruct; |
| fahadmirza | 5:53302861bfea | 142 | |
| fahadmirza | 5:53302861bfea | 143 | // STM32L0 Gpios are all configured as analog input at Reset |
| fahadmirza | 5:53302861bfea | 144 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
| fahadmirza | 5:53302861bfea | 145 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
| fahadmirza | 5:53302861bfea | 146 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
| fahadmirza | 5:53302861bfea | 147 | |
| fahadmirza | 5:53302861bfea | 148 | /*GPIOC*/ |
| fahadmirza | 5:53302861bfea | 149 | GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 |
| fahadmirza | 5:53302861bfea | 150 | |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7 |
| fahadmirza | 5:53302861bfea | 151 | |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_12; |
| fahadmirza | 5:53302861bfea | 152 | GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; |
| fahadmirza | 5:53302861bfea | 153 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| fahadmirza | 5:53302861bfea | 154 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
| fahadmirza | 5:53302861bfea | 155 | |
| fahadmirza | 5:53302861bfea | 156 | /*GPIOA*/ |
| fahadmirza | 5:53302861bfea | 157 | GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_6 |
| fahadmirza | 5:53302861bfea | 158 | |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 |
| fahadmirza | 5:53302861bfea | 159 | |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15; |
| fahadmirza | 5:53302861bfea | 160 | |
| fahadmirza | 5:53302861bfea | 161 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| fahadmirza | 5:53302861bfea | 162 | |
| fahadmirza | 5:53302861bfea | 163 | /*GPIOB*/ |
| fahadmirza | 5:53302861bfea | 164 | GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10 |
| fahadmirza | 5:53302861bfea | 165 | |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 |
| fahadmirza | 5:53302861bfea | 166 | |GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5 |
| fahadmirza | 5:53302861bfea | 167 | |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; |
| fahadmirza | 5:53302861bfea | 168 | |
| fahadmirza | 5:53302861bfea | 169 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
| fahadmirza | 5:53302861bfea | 170 | |
| fahadmirza | 5:53302861bfea | 171 | __HAL_RCC_GPIOA_CLK_DISABLE(); |
| fahadmirza | 5:53302861bfea | 172 | __HAL_RCC_GPIOB_CLK_DISABLE(); |
| fahadmirza | 5:53302861bfea | 173 | __HAL_RCC_GPIOC_CLK_DISABLE(); |
| fahadmirza | 5:53302861bfea | 174 | } |
| fahadmirza | 5:53302861bfea | 175 | |
| fahadmirza | 5:53302861bfea | 176 | /****************************************************************************** |
| fahadmirza | 5:53302861bfea | 177 | * @Brief : This function initializes the hardware |
| fahadmirza | 5:53302861bfea | 178 | * @Param : None |
| fahadmirza | 15:2860c960d2ff | 179 | * @Return: None |
| fahadmirza | 5:53302861bfea | 180 | ******************************************************************************/ |
| fahadmirza | 5:53302861bfea | 181 | void HW_Init(void) |
| fahadmirza | 5:53302861bfea | 182 | { |
| fahadmirza | 5:53302861bfea | 183 | if(McuInitialized == false) |
| fahadmirza | 5:53302861bfea | 184 | { |
| fahadmirza | 5:53302861bfea | 185 | // Reset of all peripherals, Initializes the Flash interface and the Systick. |
| fahadmirza | 5:53302861bfea | 186 | HAL_Init(); |
| fahadmirza | 5:53302861bfea | 187 | SystemClock_Config(); |
| fahadmirza | 5:53302861bfea | 188 | Debug_UART_Init(); |
| fahadmirza | 5:53302861bfea | 189 | |
| fahadmirza | 5:53302861bfea | 190 | #if defined( USE_BOOTLOADER ) |
| fahadmirza | 5:53302861bfea | 191 | /* Set the Vector Table base location at 0x3000 */ |
| fahadmirza | 5:53302861bfea | 192 | NVIC_SetVectorTable( NVIC_VectTab_FLASH, 0x3000 ); |
| fahadmirza | 5:53302861bfea | 193 | #endif |
| fahadmirza | 5:53302861bfea | 194 | |
| fahadmirza | 5:53302861bfea | 195 | HW_RTC_Init(); |
| fahadmirza | 5:53302861bfea | 196 | |
| fahadmirza | 5:53302861bfea | 197 | // LED on Nucleo board |
| fahadmirza | 5:53302861bfea | 198 | BSP_LED_Init(LED_GREEN); |
| fahadmirza | 14:05245fe1a7a0 | 199 | slideSwitch.mode(PullDown); |
| fahadmirza | 5:53302861bfea | 200 | McuInitialized = true; |
| fahadmirza | 5:53302861bfea | 201 | } |
| fahadmirza | 5:53302861bfea | 202 | } |
| fahadmirza | 5:53302861bfea | 203 | |
| fahadmirza | 5:53302861bfea | 204 | /****************************************************************************** |
| fahadmirza | 5:53302861bfea | 205 | * @Brief : Initializes the MSP. |
| fahadmirza | 5:53302861bfea | 206 | * @Param : None |
| fahadmirza | 15:2860c960d2ff | 207 | * @Return: None |
| fahadmirza | 5:53302861bfea | 208 | ******************************************************************************/ |
| fahadmirza | 5:53302861bfea | 209 | void HAL_MspInit(void) |
| fahadmirza | 5:53302861bfea | 210 | { |
| fahadmirza | 5:53302861bfea | 211 | __HAL_RCC_PWR_CLK_ENABLE(); |
| fahadmirza | 5:53302861bfea | 212 | |
| fahadmirza | 5:53302861bfea | 213 | // Disable the Power Voltage Detector |
| fahadmirza | 5:53302861bfea | 214 | HAL_PWR_DisablePVD(); |
| fahadmirza | 5:53302861bfea | 215 | |
| fahadmirza | 5:53302861bfea | 216 | // Enables the Ultra Low Power mode |
| fahadmirza | 5:53302861bfea | 217 | HAL_PWREx_EnableUltraLowPower(); |
| fahadmirza | 5:53302861bfea | 218 | |
| fahadmirza | 5:53302861bfea | 219 | __HAL_FLASH_SLEEP_POWERDOWN_ENABLE(); |
| fahadmirza | 5:53302861bfea | 220 | |
| fahadmirza | 5:53302861bfea | 221 | /* In debug mode, e.g. when DBGMCU is activated, Arm core has always clocks |
| fahadmirza | 5:53302861bfea | 222 | * And will not wait that the FLACH is ready to be read. It can miss in this |
| fahadmirza | 5:53302861bfea | 223 | * case the first instruction. To overcome this issue, the flash remain clocked during sleep mode |
| fahadmirza | 5:53302861bfea | 224 | */ |
| fahadmirza | 5:53302861bfea | 225 | DBG( __HAL_FLASH_SLEEP_POWERDOWN_DISABLE(); ); |
| fahadmirza | 5:53302861bfea | 226 | |
| fahadmirza | 5:53302861bfea | 227 | #ifdef ENABLE_FAST_WAKEUP |
| fahadmirza | 5:53302861bfea | 228 | /*Enable fast wakeUp*/ |
| fahadmirza | 5:53302861bfea | 229 | HAL_PWREx_EnableFastWakeUp( ); |
| fahadmirza | 5:53302861bfea | 230 | #else |
| fahadmirza | 5:53302861bfea | 231 | HAL_PWREx_DisableFastWakeUp( ); |
| fahadmirza | 5:53302861bfea | 232 | #endif |
| fahadmirza | 5:53302861bfea | 233 | } |
| fahadmirza | 5:53302861bfea | 234 | |
| fahadmirza | 5:53302861bfea | 235 | |
| fahadmirza | 5:53302861bfea | 236 | #ifdef USE_FULL_ASSERT |
| fahadmirza | 5:53302861bfea | 237 | |
| fahadmirza | 5:53302861bfea | 238 | /****************************************************************************** |
| fahadmirza | 5:53302861bfea | 239 | * @Brief : Reports the name of the source file and the source line number |
| fahadmirza | 5:53302861bfea | 240 | * where the assert_param error has occurred. |
| fahadmirza | 5:53302861bfea | 241 | * @Param : file: pointer to the source file name |
| fahadmirza | 5:53302861bfea | 242 | * line: assert_param error line source number |
| fahadmirza | 15:2860c960d2ff | 243 | * @Return: None |
| fahadmirza | 5:53302861bfea | 244 | ******************************************************************************/ |
| fahadmirza | 5:53302861bfea | 245 | void assert_failed(uint8_t* file, uint32_t line) |
| fahadmirza | 5:53302861bfea | 246 | { |
| fahadmirza | 5:53302861bfea | 247 | /* User can add his own implementation to report the file name and line number, |
| fahadmirza | 5:53302861bfea | 248 | ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
| fahadmirza | 5:53302861bfea | 249 | } |
| fahadmirza | 5:53302861bfea | 250 | |
| fahadmirza | 5:53302861bfea | 251 | #endif |
| fahadmirza | 5:53302861bfea | 252 | |
| fahadmirza | 15:2860c960d2ff | 253 | #ifdef __cplusplus |
| fahadmirza | 15:2860c960d2ff | 254 | } |
| fahadmirza | 15:2860c960d2ff | 255 | #endif /* __cplusplus */ |
| fahadmirza | 15:2860c960d2ff | 256 | |
| fahadmirza | 5:53302861bfea | 257 | #endif /* MAIN_H_ */ |
| fahadmirza | 5:53302861bfea | 258 |