打印

MDK中STM32调试出现assert_param()函数未定义错误(用3.0的库)

[复制链接]
6092|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2010-8-19 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在MDK3.50中调试3.0库所带的例程,在链接过程中出现assert_param函数未定义的错误:Error: L6218E: Undefined symbol assert_param (referred from misc.o),无论将stm32f10x_conf.h头文件中的“ #define USE_FULL_ASSERT 1”打开还是关闭都出现assert_param函数未定义的错误。无奈将 #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))改为:
void assert_param(expr)
{ ((void)0);}
链接不出错,但是还有很多assert_param函数定义重复的警告。
沙发
无冕之王| | 2010-8-19 10:11 | 只看该作者
在Options->C/C++->preprocessor Symboles有Define:项中输入USE_STDPERIPH_DRIVER,重新编译链接,无警告无错误。

使用特权

评论回复
板凳
TuBie| | 2010-11-7 22:21 | 只看该作者
此方法确实有效,感谢二楼!

使用特权

评论回复
地板
say_sth_freely| | 2010-12-15 18:22 | 只看该作者
直接在相应的.h文件中define也是可以的

使用特权

评论回复
5
TuBie| | 2011-1-24 22:00 | 只看该作者
我升级到MDK 4.14后又开始出问题了,提示好多东西都被重定义了,发现是和KEIL安装目录中的一些内容重复定义了。

于是又将USE_STDPERIPH_DRIVER去掉,这时不再出现重定义的错误,但assert_param未定义的错误又出现了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝