STM32中全局变量的定义和声明

 时间:2026-05-03 16:53:08

1、在写SysTcik_Handler()这个中断函数时,总是报错,明明在开头定义的全局变量extern u16 ntime,(ntime--写在stm32f10x_it.c的systick中断函数中)但是编译时总是报错,百度之后才有了解决方法,

STM32中全局变量的定义和声明

2、之前也注意到过extern变量,但是没有仔细思考过它的使用方法,今天碰到了,一定要把它弄明白,把这个关键字的一般作用弄清楚(仅仅是一般作用,C的博大精深不敢妄谈);

当你建立一个头文件库时,经常会遇到一个问题,就是在A文件中定义一个temple变量,想把它的值传递给B文件使用,但是A文件操作中函数又不可以带返回参数,比如说中断服务函数,那该怎么办?如果你把temple定义在A中,然后让A.h和B.h包含在includes.h中,然后把includes.h放在A.c和B.c中单个编译是没有问题的,但是链接的时候会出现问题,

“Symbol temple multiply defined(by A.o and B.o)”

意思是这个变量被多次定义了!!!

3、解决的方法是:

在A中定义temple变量后,在B中用extern 声明一下就可以了,例如:

1.在A中定义temple 并且赋值:u16 temp2=0;

2.在B中声明extern u16 temp2;

这里只是声明,不再赋值,否则会报错!

  • keil4怎么新建工程
  • 立创EDA如何导入Altium.Designer的PCB文件
  • Altium Designer怎么关闭启用就地编辑
  • 如何在AD中放置单排22针端子?
  • keil为什么编译不了
  • 热门搜索
    网络电视怎么看直播 政治论文怎么写 经常感冒是怎么回事 无线密码忘记了怎么办 吃苦耐劳的近义词 胆囊息肉是怎么回事 名扬中外的近义词 杀马特发型 电脑没有声音怎么修复 纯洁的近义词