http://bbs.21ic.com/icview-790448-1-1.html
ST公司提供STM32F0xx的头文件STM32F0xx.h,编译器都要定义一个宏:USE_STDPERIPH_DRIVER,如果不定义它 ---- 照ST公司的做法,就会出现问题,如
实际上,打开头文件研究一下就知道,关系到这个宏的地方只有两处
第一处是:
- #if !defined USE_STDPERIPH_DRIVER
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] Comment the line below if you will not use the peripherals drivers.
- In this case, these drivers will not be included and the application code will
- be based on direct access to peripherals registers
- */
- /*#define USE_STDPERIPH_DRIVER*/
- #endif /* USE_STDPERIPH_DRIVER */
第二处是:
- 第二处是:
-
- #ifdef USE_STDPERIPH_DRIVER
- #include "stm32f0xx_conf.h"
- #endif
-
复制代码
而stm32f0xx_conf.h头文件的除了包含所有硬件资源的头文件外,还包含有一个宏定义:
- #include "stm32f0xx_adc.h"
- #include "stm32f0xx_cec.h"
- #include "stm32f0xx_crc.h"
- ……
-
-
- /* Exported macro ------------------------------------------------------------*/
- #ifdef USE_FULL_ASSERT
-
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] The assert_param macro is used for function's parameters check.
- * @param expr: If expr is false, it calls assert_failed function which reports
- * the name of the source file and the source line number of the call
- * that failed. If expr is true, it returns no value.
- * @retval None
- */
- #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
- /* Exported functions ------------------------------------------------------- */
- void assert_failed(uint8_t* file, uint32_t line);
- #else
- #define assert_param(expr) ((void)0)
- #endif /* USE_FULL_ASSERT */
复制代码