×
单片机 > 单片机程序设计 > 详情

stm32 官方例子main函数最后一段代码#ifdef USE_FULLASSERT

发布时间:2020-12-29 发布时间:
|

代码如下:


#ifdef  USE_FULL_ASSERT

 

/**

  * @brief  Reports the name of the source file and the source line number

  *         where the assert_param error has occurred.

  * @param  file: pointer to the source file name

  * @param  line: assert_param error line source number

  * @retval None

  */

void assert_failed(uint8_t* file, uint32_t line)

{

  /* User can add his own implementation to report the file name and line number,

     ex: printf("Wrong parameters value: file %s on line %drn", file, line) */

 

  /* Infinite loop */

  while(1)

  {

  }

}

 

#endif

调试用的。在stm32f10x_conf.h文件中,有如下宏定义


#ifdef  USE_FULL_ASSERT


/**

  * @brief  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 */


如果你定义了USE_FULL_ASSERT


就可以在assert_failed,加入:

printf("Wrong parameters value: file %s on line %drn", file, line);

就可以使用assert_param(expr) 来判断当前参数是够正确,如果不正确,就会打印出错的文件,以及出错的行。


这样就可以方面调试信息了。

关键字:stm32  main函数  参数

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多