本帖最后由 Fannymini 于 2015-1-14 11:10 编辑
今天准备做第七章的程序。第七章的程序都想用库函数来完成。
用最新版本的库函数,建立工程,不想遇到点小问题。在此记录下。
新建工程后,工程中会有默认的MAIN.C文件。把需要的库函数文件加进去之后,尤其是.C文件,编译就不能过。提示assert_failed找不到定义。
后来就打开早期版本,用库函数写好的工程,查找此函数的定义在何处。发现以前版本同现在的版本有所不同。
没办法,只有打一官方库函数的参考工程文件。官方的工程文件,定义了好多不同CPU。打开当前需要的CPU:STM8S903K3,点开MAIN.C文件,发现MAIN.C文件中最后一段有以下定义:
#ifdef USE_FULL_ASSERT
void assert_failed(u8* file, u32 line)
{
while (1)
{
}
}
#endif
呵呵,结合STM8S_CONF.H文件的USE_FULL_ASSERT定义,发现这段语句是需要加进自己主函数MAIHN.C当中的。
最后加进去,再编译就OK了。
在此提供需要的人,如果用库函数时出现assert_failed定义问题,可像以上方法解决。 |