我很会写BUG ——第一篇,STM32中断函数的重复定义

今天配置Usart.c和Usart.h串口通讯文件时编译后报错。

Error: L6200E: Symbol USART1_IRQHandler multiply defined (by usart.o and stm32f10x_it.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map. 

经过了漫长的检查,发现程序本身的编写没有错误,然后右键单击报错的中断函数void USART1_IRQHandler(void),尝试性的点了下Go to Definition of......

发现它跳转到了stm32f10x_it.c文件中的USART1_IRQHandler(),但是在同一个工程中,不可以出现两个相同的中断函数,所以这个报错的原因就是stm32f10x_it.c文件中重复定义了USART1_IRQHandler()函数。

那么解决报错就很简单了,方案有以下两种:

1.将stm32f10x_it.c文件中的USART1_IRQHandler()函数删去。

2.将Usart.c中的USART1_IRQHandler()函数的内容填入到stm32f10x_it.c中,然后将Usart.c文件中的USART1_IRQHandler()函数删去。(因为在stm32工程文件中stm32f10x_it.c文件原本的功能就是管理中断函数)。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值