历史上的今天
返回首页

历史上的今天

今天是:2025年01月20日(星期一)

正在发生

2020年01月20日 | stm32 官方例子main函数最后一段代码#ifdef USE_FULLASSERT

2020-01-20 来源:eefocus

代码如下:


#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) 来判断当前参数是够正确,如果不正确,就会打印出错的文件,以及出错的行。


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

推荐阅读

史海拾趣

FDK AMERICA公司的发展小趣事

随着环保意识的日益增强,FDK AMERICA公司积极响应绿色制造理念。公司投入大量资金研发环保型电子产品,采用环保材料和绿色生产工艺,减少对环境的影响。同时,公司还积极参与各类环保活动,倡导绿色消费理念。这种环保举措不仅提升了公司的社会形象,也为公司赢得了更多消费者的青睐。

AINFO Inc公司的发展小趣事

AINFO Inc公司在追求经济效益的同时,也积极履行社会责任,关注可持续发展。公司注重环境保护和资源节约,通过采用环保材料和节能技术,降低了生产过程中的能耗和排放。同时,公司也积极参与公益事业,为社会做出了积极贡献。

请注意,以上故事仅为框架性的描述,并非AINFO Inc公司的实际发展历程。如果您需要了解该公司的具体发展情况,建议查阅相关资料或访问其官方网站。

DRS Technologies公司的发展小趣事

进入80年代,DRS开始拓展其业务范围。在1981年上市后,DRS于1984年收购了其第一家公司,迈出了其市场扩张的第一步。随后,DRS不断投入研发,致力于提高其在电子和信息技术领域的核心竞争力。特别是在C4ISR(指挥、控制、通信、计算机、情报、监视和侦察)系统领域,DRS取得了显著的成果,为其在全球市场上赢得了广泛的认可。

ETL semiconductor公司的发展小趣事

AMD(Advanced Micro Devices)在半导体行业中的发展经历了一个从追赶到逆袭的过程。在英特尔的强大市场压力下,AMD通过不断创新和技术提升,逐渐在处理器市场上获得了一席之地。尤其是在游戏和高端计算领域,AMD的处理器凭借其出色的性能和性价比赢得了众多消费者的青睐。

德芯半导体(Doeshare)公司的发展小趣事

德芯半导体在成立之初就明确了其市场定位:以高性价比的特色传感器系列产品为目标市场。公司秉承“以德治企,创造精品”的经营理念,通过深入了解市场需求,不断推出符合市场需求的创新产品。在智能家居、智能制造等领域,德芯半导体的产品凭借其高性能、高品质和低价格,赢得了国内外知名公司的认证和合作。

Corporation Soneet公司的发展小趣事

随着Soneet在技术领域取得的成功,公司开始积极拓展市场。Soneet与多家知名电子设备制造商建立了战略合作关系,共同开发新产品。通过与这些合作伙伴的紧密合作,Soneet的产品得以迅速进入全球市场,进一步提升了公司的知名度和影响力。

问答坊 | AI 解惑

PROTEUS中文教程

PROTEUS中文教程.doc…

查看全部问答>

从工行漏洞看国内银行金融网站

http://blog.eeworld.net/zhblue/archive/2007/01/02/1472585.aspx 今天我也原创一回,谁给我推荐推荐,算然短点,还是希望我们linux版友支持 …

查看全部问答>

.NET Micro Framework 有人做吗?

哪里有好的教程呀? http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx…

查看全部问答>

socket错误一览表

Socket 错误一览表from“http://tb.blog.csdn.net/TrackBack.aspx?PostId=1955429”出现网络联机错误Socket error #11001表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的「个人防火墙」。· 出现网络 ...…

查看全部问答>

这里有没有UFO(反重力飞行器)DIY爱好者

因为2012的影响,让我DIY UFO,我准备购买仪表,机器,和材料。不知道这里有没有UFO DIY的路过者,可以交流一下研究结果,与制造步骤。 放个片来点吸引力: …

查看全部问答>

异步时钟信号同步

在异步设计中,为了防止亚稳态,信号的同步是必须要进行的 单bit信号的同步通常是用时钟锁存的方法 从异步的时钟频率来看,还可以细分为两小类  第一类 被同步的信号时钟域的频率比本时钟域的频率低 这时候可以直接通过双锁存的方法来 ...…

查看全部问答>

电源设计小贴士 20:注意那些意外谐振响应

简介:注意那些意外谐振响应您曾经将输入电压接通到您的电源却发现它已经失效了吗?短暂的输入电压上升时间和可产生两倍于输入电源电压的高 Q 谐振电路可能会是问题所在。如果您迅速中断感应元件中的电流便会出现类似问题。会出现这类问题的一些情 ...…

查看全部问答>

单片机复位电路设计

单片机复位电路设计 (转自 http://www.hpoo.ne) 一、概述 影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:  1、外因     射频干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应 ...…

查看全部问答>

分区PBR详解:分区引导扇区知识

转帖:感谢作者 分区PBR详解: 分区引导扇区知识 一、FAT32的分区引导扇区 分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能 ...…

查看全部问答>

关于ths3001和buf634级联的问题

本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 由于altium designer没法更好的显示原理图,所以用TINA做了这个原理图,请大家帮我看看有什么问题 这是我自制的pcb 测试的时候出现两个三个问题,第一个问题就是ths3001和buf634级联的地方那个Ro ...…

查看全部问答>