STM32 keil4 extern问题

发布者:TranquilDreams最新更新时间:2020-01-15 来源: eefocus关键字:STM32  keil4  extern问题 手机看文章 扫描二维码
随时随地手机看文章

最近一个项目,在stm32 keil中移植了别人的一些库文件,编译时出现如下错误提示 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol FLAG_comerr (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol adcval (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol nzval (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol receBuf (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol regstartaddr (referred from master.o). 

.OBJW5100_SPI.axf: Error: L6218E: Undefined symbol slaveraddr (referred from master.o). 


原因是extern的使用问题,对于移植来说这毫无疑问。记得以前C51时想用extern 声明变量以便在其他的文件调用,但都出现了这个问题,以前不懂,只能将一大片代码直接在Main.c中实现。好吧,闲话休提。查了一些资料extern仅仅是声明变量,不同定义,编译器不会分配内存给它。也就是说要使用它除了在相应的头文件声明为extern,还要在具体用到的.c文件中定义它比如头文件中声明extern u8 c;在用到的文件中:u8 c;。

关键字:STM32  keil4  extern问题 引用地址:STM32 keil4 extern问题

上一篇:STM32看门狗研究
下一篇:STM32学习笔记-STM32堆栈区(二)

推荐阅读最新更新时间:2024-11-04 16:18

STM32通用定时器基本用法DVI倍频系数
STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。从系统框架图下看,名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer).他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。 关于倍频系数 由上图可知,当APB1 的预分频系数为1 时,这个倍频器不起作用,定时器的时钟频率等于APB1 的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8
[单片机]
<font color='red'>STM32</font>通用定时器基本用法DVI倍频系数
STM32单片机串口空闲中断+DMA接收不定长数据
在上一篇文章STM32单片机串口空闲中断接收不定长数据中介绍了利用串口空闲中断接收不定长数据,这种方式有一个问题就是串口每接收到一个字节就会进入一次中断,如果发送的数据比较频繁,那么串口中断就会不停打断主程序运行,影响系统运行。那么能不能在串口接收数据过程中不要每接收一个数据中断一次,只有在一帧数据接收结束完成后只中断一次? 用串口的空闲中断加上DMA功能,就可以实现每帧数据接收完成后只中断一次,而在数据接收过程中,由DMA存储串口接收到的每个字节。 关于串口的空闲检测和DMA在STM32参考手册中有详细介绍。 下面看如何初始化串口空闲中断和 DMA。 void uart2_init( u16 baud )
[单片机]
<font color='red'>STM32</font>单片机串口空闲中断+DMA接收不定长数据
stm32 外部中断嵌套[操作寄存器+库函数]
stm32共有19个外部中断: 线0~15:对应外部I/O口的输入中断 线16:连接到PVD输出。PVD(Programmable Votage Detector),即可编程电压监测器。作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。 线17:连接到RTC实时时钟产生闹钟事件。 线18:连接到USB唤醒事件 在 stm32 NVIC中断 和 stm32 USART串口通信 中已经介绍过stm32的中断和串口输出使用方法,本文运用外部中断嵌套,通过串口发送相应信息,验证外部中断嵌套。 按下PA0(按
[单片机]
<font color='red'>stm32</font> 外部中断嵌套[操作寄存器+库函数]
stm32驱动DHT11温湿度模块使用方法和问题小结
最近在总结做过的几个项目,今天小结一下DHT11模块的使用。 对DHT11的使用,就是编写时序和stm32进行通信。 DHT11和stm32是通过一根线进行通信的,双方通过这根线上的电平变化来识别各种信号。 DHT11每次传输数据会输出40bit的数据,即5个字节,它们的含义如下: 每一位bit是0还是1是通过高电平的持续时间来判断的,如下两张图所示,‘0’和 ‘1’都是先持续50us的低电平,而后持续一段时间高电平,‘0’的高电平会持续26-28us,‘1’的电平会持续70us,因此你在判断每位数据是’0’还是’1’时,有两种方法,一种是看持续时间,显然高电平持续时间超过28us的就是’1’;另一种方法是选取一个时间点,比如
[单片机]
<font color='red'>stm32</font>驱动DHT11温湿度模块使用方法和<font color='red'>问题</font>小结
stm32 的RTC 时钟程序
前些日子做了stm32 RTC时钟的程序,现在把它记录下来。 首先配置RTC,,使用外部时钟32.768KHz。其中配置了秒中断。 RTCFirstConfigure()程序是第一次配置RTC,如果配置后以后上电不需要重新配置,如果RTC时钟快了,可内部校准。 void RTCFirstConfigure() //first ini { RCC_BackupResetCmd(ENABLE); RCC_BackupResetCmd(DISABLE); RCC_LSEConfig(RCC_LSE_ON); //enable LSE clock 32.768K while (RCC_GetFlagSta
[单片机]
STM32内置参照电压的使用
每个STM32芯片都有一个内部的参照电压,相当于一个标准电压测量点,在芯片内部连接到ADC1的通道17。 根据数据手册中的数据,这个参照电压的典型值是1.20V,最小值是1.16V,最大值是1.24V。这个电压基本不随外部供电电压的变化而变化。 不少人把这个参照电压与ADC的参考电压混淆。ADC的参考电压都是通过Vref+提供的。100脚以上的型号,Vref+引到了片外,引脚名称为Vref+;64脚和小于64脚的型号,Vref+在芯片内部与VCC信号线相连,没有引到片外,这样AD的参考电压就是VCC上的电压。 在ADC的外部参考电压波动,或因为Vref+在芯片内部与VCC相连而VCC变化的情况下,如果对于ADC测量的准确性要求
[单片机]
STM32Cube.AI v7.2现可支持深度量化神经网络
意法半导体近期发布的 STM32Cube.AI v7.2 带来了对深度量化神经网络的支持功能,从而可以在现有微控制器上运行更准确的机器学习应用软件。STM32Cube.AI 于 2019 年推出,用于把神经网络转换为适合STM32 MCU 的代码。该解决方案依附于 STM32CubeMX,这是一个帮助开发人员初始化STM32芯片的图形界面软件。同时,STM32Cube.AI 还用到 X-CUBE-AI软件包,其中包含用于转换训练好的神经网络的程序库。开发人员可以参照我们的入门指南,从STM32CubeMX内部开始使用 X-CUBE-AI并体验新功能。 目前,新增加的深度量化神经网络支持已经出现在我们与施耐德电气合作开发的人数
[物联网]
STM32Cube.AI v7.2现可支持深度量化神经网络
stm32设置JTAG工作模式
/* set JTAG mode */ #define JTAG_SWD_DISABLE 0x01 #define SWD_ENABLE 0x02 #define JTAG_SWD_ENABLE 0x04 void JTAG_Set(u8 mode) { u32 temp; temp=mode; temp =25; RCC- APB2ENR |= 1 0; //开启辅助时钟 AFIO- MAPR &= 0XF8FFFFFF; //清除MAPR的 AFIO- MAPR |= temp; //设置jtag模式 }
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved