在stm32systick学习中,systick.h中写了如下代码:
#ifndef SYSTICK_H
#define SYSTICK_H
#include"stm32f10x.h"
unsigned int TimingDelay;
void TimingDelay_Decrement(void);
void Delay(unsigned int value);
#endif
发现报错:Error: L6200E: Symbol TimingDelay multiply defined (by int.o and main.o).等
原来是因为定义了变量TimingDelay,导致报错。
将该变量定义在main.c文件中,并将systick.h文件中的语句改为
extern unsigned int TimingDelay;即可编译通过
为什么捏??

本文解决了一个关于STM32 SysTick定时器学习过程中遇到的问题:当在SysTick头文件中直接定义全局变量时,编译器报告符号多次定义错误。文章解释了解决方案,即将变量定义移到main.c文件并在头文件中使用extern声明。
1万+

被折叠的 条评论
为什么被折叠?



