When i migrated my code from IAR to Keil v5 for STM32F0 ARM cortex M0 series, The whole STD_PERIPHERAL_LIBRARY of ST started giving this assert_param warning and error. I did try to include the necessary paths needed for library configuration.
Rebuild target 'Target 1'
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_crc.c(132): warning: #223-D: function "assert_param" declared implicitly
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_dbgmcu.c(121): warning: #223-D: function "assert_param" declared implicitly
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_gpio.c(120): warning: #223-D: function "assert_param" declared implicitly
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_gpio.c(167): warning: #223-D: function "assert_param" declared implicitly
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_tim.c(418): warning: #223-D: function "assert_param" declared implicitly
STM32F0xx_StdPeriph_Driver\src\stm32f0xx_adc.c: 28 warnings, 0 errors
".\GM650.axf" - 70 Error(s), 394 Warning(s).
Target not created
Unfortunately i didn't get much help in any forums and after two long days. It took me two days to figure it out. I had a working Keil v4 STM32 project and decided to cross reference it. I did verify all the details and everything was same except i found a define in the C/C++ compiler tab which said USE_STDPERIPH_DRIVER , When i included this define in my project, Voila! everything was right, 0 errors, 0 warnings.
Solution to assert_param declared implicitly error in Keil :
1) Go to the menu and click on the tab Flash->Configure Flash Tools
2) Click on the C/C++ tab
3) Find the Define field under Preprocessor Symbols and enter USE_STDPERIPH_DRIVER
4) Click OK and recompile your project, your problem should be fixed now.
Alternatively you can also fix the problem and define USE_STDPERIPH_DRIVER by removing the comment on line no 125 of stm32f0xx.h file.
Hope it helps someone :)
- Calculating the range of a Wireless device
- How to order components from Digikey to India without Shipping charges
- Construction of an Elevator - Controllers Point of view
- 16x1 LCD displaying only first 8 characters - Reason