你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【P-NUCLEO-IHM002】探索的套路不总是一帆风顺

[复制链接]
donatello1996 发布时间:2017-8-27 22:06
    昨天和今天都在对自己移植好的工程进行各种删减和修改,在此过程中发现了官方FOC例程(标准库)的一些较为累赘的地方,如过多的宏定义和初始化函数,特别是关于assert调试的函数assert_failed和多型号兼容的函数如STSPIN32F0_Init()。从这两个函数可以看出,官方FOC例程是有较为齐全但累赘的调试组件,这些组件函数对于常规的开发爱好者而言作用不大,因此完全可以删减,另外,这个例程是多型号底板兼容的,除了直接使用的Nucleo-F302R8和Nucleo-F303RB以外,还有个F0的初始化定义,用define的方式切换(其实熟练掌握MDK KEIL的开发爱好者都知道,如果底板型号改了,程序要改的地方何止宏定义,还有Project选项里面的MCU型号列表,以及启动文件.s)。当然,我个人主张一个板子对应一个程序,对于这种多型号兼容的工程,其实应该用工厂(Workplace)来打开,MDK也正是支持Workplace的。所以,既然一个板子对应一个工程,就可以把F0的宏定义以及函数删掉了。
/ k* v9 F6 }7 j, }; u" C    除了F0的定义可以删掉,在main.c里面还有一些用不到的函数宏定义如PFC_Init()、GAPBoot()、GDC_Init()函数也是可以移除的,因为程序根本没有调用,并且,PFC_Init()程序的定义也根本找不到,当然,如果是专业的开发人员,要用到PFC和GAP的话,也可以保留。 可删处1.jpg 可删处2.jpg 可删处3.jpg 可删处4.jpg 可删处5.jpg 可删处21.jpg 可删处41.jpg 可删处42.jpg   W! w# c. A5 t
    在删减不必要定义的过程本来一切顺利,但是在昨天晚上,程序下载到板子突然就没有反应了,后来回滚到发移植帖的那个程序,也是不行。官方FOC例程的效果是下载完之后按底板的蓝色用户按钮会开启电机转动,再按一次会停止,现在的现象是只要用我自己移植的工程,不管怎么按按键,电机都不会转,而官方例程就可以,即便它们的main函数内容一模一样。这个问题令我百思不得其解,今晚上午又移植了一次,也是不行。反正移植FOC工程的想法是不能再有了,现在能继续下去的开发只有两条路可走:第一,在官方例程的基础上直接改,不作任何移植;第二,移植梯形六步法的HAL库例程。我把这个工程发上来,有兴趣的坛友可以下载下来探讨一下是什么原因导致电机不转。 电机套件工程.zip (3.82 MB, 下载次数: 13)
收藏 1 评论1 发布时间:2017-8-27 22:06

举报

1个回答
Stm32McuLover 回答时间:2017-8-27 22:44:35
顶狗头

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版