UNK 02:30:10 Generation files starting
UNK 02:30:13 INFO : STM32CubeMX.Version: 4.25.0-RC2
UNK 02:30:13 log4j:WARN No appenders could be found for logger (com.st.microxplorer.plugins.updater.engine.MainUpdater).
UNK 02:30:13 log4j:WARN Please initialize the log4j system properly.
UNK 02:30:13 log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
UNK 02:30:13 Generation failed
这个的错误是我哪里设置出现的问题
UNK 02:30:13 INFO : STM32CubeMX.Version: 4.25.0-RC2
UNK 02:30:13 log4j:WARN No appenders could be found for logger (com.st.microxplorer.plugins.updater.engine.MainUpdater).
UNK 02:30:13 log4j:WARN Please initialize the log4j system properly.
UNK 02:30:13 log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
UNK 02:30:13 Generation failed
这个的错误是我哪里设置出现的问题
前期将我做的双电机矢量控制部分工作写入毕业设计论文,上周所有材料和工作全部完成,毕业设计结束,现在回归,继续做我的双电机矢量控制,由于前期一直是由上位机来控制双电机的运动,现在,想用自己的板子做用户接口,设置数码管及键盘,板子由我的老师画出来,现在由我来调试,编写用户程序,近期我将总结我遇到的问题,希望与众多的志同道合的朋友分享讨论。
拿到板子第一件事就是用CUBE配置了一个LED灯闪烁的程序,调试硬件,主控芯片是STM32L451CEU6,遇到的第一个问题是程序烧写正常,但是没有运行,经过DEBUG发现程序卡在启动文件,汇编部分根本没有进行下去,没有进入main函数,查看了网上的一些方法,有人提及在魔术棒设置那里DLL文件问题,因为不是很了解,以前一直用默认的也没出问题,后来又有人提到BOOT引脚问题,我查了一下老师的硬件原理图,发现BOOT0引脚悬空,于是将BOOT0引脚接地,程序马上就跑起来了,LED开始闪烁。
电路结构在此:
控制器STM32F303 使用了两个高级定时器来产生控制两个电机的各自的三路互补PWM,高级定时器支持刹车信号,即通过一个TIMx_BKIN引脚来关闭PWM的输出,原理图中是这样给的:
很显然,定义的PE15和PB7作为刹车信号,然而今天检查引脚分配时发现,5.0电机库的这两个引脚定义的是错误的,如下:
这个地方如果使用,还请大家注意修改一下。
电机库默认的正交编码器是用定时器TIME2和TIME4的输入捕获功能来检测磁极位置的,且应用了四倍频,但没有使用编码器的Z相检测机械零点,我使用的电机为1000线正交编码器,配置界面如下
但是配置之后电机总是转不起来,转子在那里摆动,和老师讨论这个问题后,老师建议查一下编码器自动清零时的值是否正确,开始在encoder_speed_pos_fdbk.c文件中找到转子角度计算的子程序,
在这里设置printf,将定时器的计数值(int32_t)( LL_TIM_GetCounter(pHandle->TIMx))和角度的计算结果打印出来,结果发现,定时器的计数值在1600的时候自动清零,后找到定时器2的初始化程序
这里的计数周期PULSENBR定义为1599,这个值恰好是默认值400的4倍频,于是将其改为自己的参数4×1000-1=3999,电机能够正常转动。
由MotorControl Workbench 5.0生成的代码,包含了一个CubeMX的工程文件和程序所需要的全部代码,这一点比起4.3的库好很多,就是5.0生成的代码,不会给你留一大堆选择编译的代码,让你读起来清爽很多。CubeMx工程可以帮助用户方便的加入自己的代码,我在原来的基础上加入了IIC和usart的通讯协议,包括一些数据解析的代码,值得提醒的是,这里添加代码一定要写在要求的位置,一般有user code begin,user code end提示,否则当你再次打开时,你的代码会被清除。主要问题不是出在这里。
当我用修改电机参数,再次生成代码时,我再次打开工程,我自己设置的通信协议全被清除了,建议大家在配置好电机参数后再加入自己的代码。
官网可以下申请的,我也可以发给你
软件上带的例程有这些
cubeMX和KEIL都需要有相应的库支持,仔细检查一下,还有工程的地址不能是中文,其他暂时想不起来,可以加我QQ,1396515474
今天一个论坛的朋友遇到了一个代码生成错误的问题错误提示为:swPackPreference is null
因为没有遇见过同样的问题,从头分析了问题的原因,首先SDK5.0的库比较新,他用的开发环境也比较新,在官方网站有一个文档对开发环境有详细说明
在安装完开发环境后还需要相应的支持包,我这里用的STM32303E-EVAL评估板,涉及到的支持包有CUBEMX 的
还有MDK的
当确认无误后仍然无法生成代码,最后将软件的属性设置为管理员身份运行,代码就完美生成了。
请问楼主有无官方最新的电机控制库 X-CUBE-MCSDK-FUL 5.0.3 版本?有的话能否分享一份?谢谢
邮箱:luo20121212@163.com