Error[Li005]: no definition for "assert_failed"

IAR for stm8串口调试常见错误

我们在使用单片机串口调试的时候往往会出现不少的问题,下面是我们第一次做的时候基本会出现的,效果如下:

  Error[Li005]: no definition for "UART2_Init" [referenced from F:\STM8\text\【2】串口\Debug\Obj\main.o] 
    Error[Li005]: no definition for "UART2_ITConfig" [referenced from F:\STM8\text\【2】串口\Debug\Obj\main.o] 
    Error[Li005]: no definition for "GPIO_Init" [referenced from F:\STM8\text\【2】串口\Debug\Obj\main.o] 
    Error[Li005]: no definition for "GPIO_ReadInputPin" [referenced from F:\STM8\text\【2】串口\Debug\Obj\main.o] 
    Error[Li005]: no definition for "UART2_SendData8" [referenced from F:\STM8\text\【2】串口\Debug\Obj\main.o] 
    Error while running Linker 

在这里插入图片描述
出现这个问题的原因是因为:"void assert_failed(u8* file, u32 line);"这个函数在“stm8s_conf.h”这个文件中只是单纯的声明,他的作用来在我们在做串口调试时返回值验证出错的时候调用。因此我们需要在某个地方将这个函数进行实现。一般将他放在“main.c”进行实现。
具体解决步凑如下:

  • 在main.c文件下添加如下代码:
void assert_failed(u8* file, u32 line)
{ 
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* Infinite loop */
  while (1)
  { 
  }
} 

在stm8s_conf.h 中添加 #define USE_FULL_ASSERT

此时我们大功告成啦!

会持续更新STM8系列资料,有兴趣的小伙伴加个关注呀!!!
需要资料的可以评论区留言,谢谢

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Error[Li005]: no definition for "freeaddrinfo"是一个编译错误,意味着编译器找不到"freeaddrinfo"的定义。这个错误通常发生在链接阶段,表示在连接对象文件时找不到对应的定义。 有几种可能的原因导致这个错误。一种可能是缺少了相应的库文件或链接选项。另一种可能是代码中引用了一个未定义的函数或变量。 根据引用提供的解决办法,我们可以尝试以下步骤来解决这个问题: 1. 检查是否包含了正确的库文件,特别是与"freeaddrinfo"相关的库文件。 2. 确保在代码中包含了正确的头文件,以便编译器能够找到函数的声明。 3. 检查代码中是否正确地使用了"freeaddrinfo"函数,包括参数的类型和数量。 4. 如果上述方法都没有解决问题,可以尝试重新编译或重新安装相关软件包。 总之,Error[Li005]: no definition for "freeaddrinfo"通常是由于缺少定义或链接错误引起的。通过检查库文件、头文件和代码中的错误,可以解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Error[Li005]: no definition for “assert_failed“ 的解决办法](https://blog.csdn.net/gouqu5156/article/details/124723696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Error[Li005]: no definition for "assert_failed](https://blog.csdn.net/qq_41531835/article/details/89162114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值