这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 坤创E-Geek/天科大新电社 » STM32编程中遇到的问题1

共4条 1/1 1 跳转至

STM32编程中遇到的问题1

菜鸟
2015-06-06 17:42:28     打赏

   ..\output\key.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by delay_stm32.o and stm32f10x_it.o).
    就是说Symbol SysTick_Handler 在函数
stm32f10x_it.c和函数delay.c里面重复定义了。这种错误双击它还不会指向出错地方,不过我复制“Symbol SysTick_Handler ”到主函数某个地方,然后右键-go to  defi就找到了,一看它自动跑到stm32f10x_it.c的第135行,发现函数void SysTick_Handler(void)啥也没写,就定义了一个空的放那

void SysTick_Handler(void)
{
}

1.为什么在stm32f10x_it.c里存在空函数,就比如void SysTick_Handler(void)等函数。就是定义在那里,然后啥都不写。这样的用意是什么?

2.为什么我的报错是两处,复制“Symbol SysTick_Handler ”到主函数某个地方,然后右键-go to  只跳到stm32f10x_it.c里,按道理应该要出现在两处地方,因为两个地方重复定义。按理应该是出现那个框框,有2个地方,点一个就跳到stm32f10x_it.c,点另一个就跳到delay.c才对呀? 而且我的delay.c里没有symbol SysTick_Handler这句话啊,只有

while(SysTick_Config(SystemCoreClock/1000));
TimingDelay = nTime;
while(TimingDelay != 0);
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
这几句有点关系啊,,,为什么???这种问题怎么解决,,,求解




院士
2015-06-07 23:21:47     打赏
2楼

在编译的时候,编译器发现有两个中断入口函数,它不知道在编译哪个了?所以才发出来错误,让楼主指明。


解决的办法,将stm32xxx_it.c中的注释掉即可。


菜鸟
2015-06-08 15:13:14     打赏
3楼
谢谢,试过了,可以解决

高工
2015-06-15 10:00:26     打赏
4楼
二楼真相

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]