您的位置 首页 新品

怎么运用STM32中的assert_param

在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_confh文件,就可以看到实际上a

STM32的固件库和供给的例程中,处处都能够见到assert_param()的运用。假如翻开任何一个例程中的stm32f10x_conf.h文件,就能够看到实践上assert_param是一个宏界说;
在固件库中,它的效果便是检测传递给函数的参数是否是有用的参数。
所谓有用的参数是指满意规则规模的参数,比方某个参数的取值规模只能是小于3的正整数,假如给出的参数大于3,
则这个assert_param()能够在运转的程序调用到这个函数时陈述过错,使程序员能够及时发现过错,而不用比及程序运转成果的过错而大费周折。

这是一种常见的软件技术,能够在调试阶段协助程序员快速地扫除那些显着的过错。

它确真实程序的运转上献身了功率(但只是在调试阶段),但在项目的开发上却协助你提高了功率。

当你的项目开发成功,运用release形式编译之后,或在stm32f10x_conf.h文件中注释掉对USE_FULL_ASSERT的宏界说,一切的assert_param()查验都消失了,不会影响终究程序的运转功率。

在履行assert_param()的查验时,假如发现参数犯错,它会调用函数assert_failed()向程序员陈述过错,在任何一个例程中的main.c中都有这个函数的模板,如下:

void assert_failed(uint8_t* file, uint32_t line)
{

while (1)
{}
}

你能够依照自己运用的环境需求,增加恰当的句子输出过错的信息提示,或修正这个函数做出恰当的过错处理。

1、STM32F10xD.LIB是DEBUG形式的库库文件。
2、STM32F10xR.LIB是Release形式的库库文件。
3、要挑选DEBUG和RELEASE形式,需求修正stm32f10x_conf.h的内容。
#define DEBUG 表明DEBUG形式,把该句子注释掉,则为RELEASE形式。
4、要挑选DEBUG和RELEASE形式,也能够在Options,C/C++,Define里填入DEBUG的预界说。
这样,就不需求修正stm32f10x_conf.h的内容。
5、假如把库参加项目,则不需求将ST的库源文件参加项目,比较便利。
可是,库的挑选要和DEBUG预界说对应。

【实践直接屏蔽掉了,没有运用该功用,可是感觉应该了解一下】

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/261944.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部