基于stm32的PMSM的FOC2的2.0的库编译发现如下错误

2019-07-14 18:03发布

最近将PMSM的FOC2的2.0的库移植到STM32f051xx上,移植过程中发现几个纠结的问题,看看有没有哪位前辈遇到过啊:
1在编译的时候发现如下错误(在基于051的外设库函数的工程中编译的):
                                                                                     ..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Electrical_Angle (referred from stm32f0xx_it.o)
...Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Electrical_Angle (referred from stm32f0xx_it.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wBemf_alfa_est (referred from stm32f0xx_it.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wBemf_beta_est (referred from stm32f0xx_it.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wIalfa_est (referred from stm32f0xx_it.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_wIbeta_est (referred from stm32f0xx_it.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator (referred from mc_foc_drive.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator_Init (referred from mc_foc_drive.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol FOC_FluxRegulator_Update (referred from mc_foc_drive.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Calc_Rotor_Angle (referred from mc_foc_drive.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Gains_Init (referred from mc_state_observer_interface.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Gains_Update (referred from mc_state_observer_interface.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Get_Speed (referred from mc_state_observer_interface.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_IsSpeed_Reliable (referred from mc_state_observer_interface.o).
..Outputsvpwm.axf: Error: L6218E: Undefined symbol STO_Calc_Speed (referred from stm32f10x_timebase.o).

经查证,发现引起以上错误的原因是这些函数在相应的头文件里面只是声明了一下,但是在相应的 .C文件里面没有却没有定义,刚开始还以为自己在移植的过程中不小心把这几个函数给删了呢,后来查了查原文件,确实是没有这几个函数,不知道这是库的开发人员保留让客户根据自己的需要自己编写,还是忘了写这几个函数了啊?

2,在基于103的外设库函数上编译此工程时,编译器不报错,不知道是为什么?但是在基于051的外设的库函数上编译此工程却提示了如上错误。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
uuewuw2
1楼-- · 2019-07-15 01:29
移植一般先要改一些与硬件有关的东西。
zzw0719
2楼-- · 2019-07-15 02:32
回复第 2 楼 于2014-06-17 16:04:15发表:
用不着的话就注释掉
 
可是不明白,为什么在没有移植前,这些函数也没有定义,但是为什么就没有报错呢?
 
zzw0719
3楼-- · 2019-07-15 03:43
回复第 3 楼 于2014-06-17 16:16:25发表:
移植一般先要改一些与硬件有关的东西。
这些语句都是软件,,硬件不兼容的语句已经改完啦,,不明白为什么移植前为什么不报错《
 
Sabrina_cc
4楼-- · 2019-07-15 05:53
 精彩回答 2  元偷偷看……
cnm7
5楼-- · 2019-07-15 08:50
觉得是定义的不够清楚,自己仔细研究后再写
阿什顿信道
6楼-- · 2019-07-15 14:28
不要写这么多注释, 反倒看不清楚, 宏定义也难改

一周热门 更多>