C语言菜鸟在使用KEIL4.7碰到的问题,无意中解决

本文介绍了在STM32项目中正确声明全局变量的方法,特别是当这些变量在多个C文件间共享时。通过一个具体的例子解释了仅使用extern关键字声明变量可能导致的编译错误,并给出了正确的解决方案。
在stm32f4xx_it.h里定义了如下两个变量


 extern  __IO uint8_t RxBuffer[];
 extern __IO uint8_t Rx_Idx;


 因为下面的一个SPI接收中断里要用到这两个变量。


 编译错误提示为:
.\obj\STM32F407Project.axf: Error: L6218E: Undefined symbol RxBuffer (referred from stm32f4xx_it.o).
.\obj\STM32F407Project.axf: Error: L6218E: Undefined symbol Rx_Idx (referred from stm32f4xx_it.o).



你以为把变量前面加一个extern导出就完了吗?其实还需在main()函数前在申明一遍变量,否则就会出现如上错误!以后知道如何在其他C文件声明全局变量了吧!?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值