分享

STM32CubeMX+TrueSTUDIO开发STM32的全新方式

 guitarhua 2019-05-03
记得第一次接触STM32,是在大一暑假的时候,学长们可以说是手把手教我们这群小学弟(当然,还有几个小学妹),首先,我要向我们的社团及学长们致敬!当时用的STM32开发板都是学长们自己设计的,由于我们是跟着学长从51单片机过渡来的,所以IDE还是用的Keil,现在还记得学长一步步教我们破解的骚操作,哈哈。STM32编程不像51,include一个reg51.h之后就可以写main函数了,STM32的配置涉及时钟数、GPIO口、中断优先级等,一套流程下来代码量还是比较多的,所以学长给我们做了一套模板工程,自己开发的时候,只需要用keil打开模板工程,对配置部分的代码进行复制粘贴修改就可以了。这套模板对我的STM32学习影响很大,在暑期培训之后的校内机器人大赛,以及之后的很长一段时间,我开发STM32都是在它的基础上进行修改。
  但是在之后的学习中,我逐渐意识到两个问题。第一,模板虽然比自己从头写方便,但它使用起来也有点问题,先不说STM32型号、keil高低版本兼容性、冗余代码、重新移植报错等问题,如果我上一段代码配置的是PA0,现在要配PA9控制LED灯,只需复制粘贴一下,然后把I/O口改成PA9,过一段时间,我需要配置串口1(PA9,PA10),忘记注释掉之前PA9控制LED灯的程序,keil编译不会报错,但PA9的配置是有冲突的,程序不会正常运行,STM32端口复用的情况比较多,我们很难考虑到每一种情况,配置的时候容易出问题,而且不好检查第二,破解keil的时候我注意到,许可证可以用到2020年,那之后呢?在越来越注重版权的大环境下,一直这样也不是办法。而且我觉得keil本身也不是那么的好用,和VS等比起来更是相形见绌。那么,有没有一款好用而且免费的IDE可以用来开发STM32?
  我闲暇时间,时不时会思考以上两个问题,在网上寻找解决办法。关于IDE,最先发现的是和keil齐名的IAR,但也是需要破解,使用体验比keil也好不到哪去。然后是Eclipse,需要自己安装各种插件,又是各种繁琐配置,于是舍弃。然后是CoIDE,需要自己装GUN编译工具,搁置,关于这个IDE,我了解不多,欢迎大家一起交流。然后是Arduino的官方IDE,我用它开发过Arduino,确实好用,但用来做STM32总感觉不专业,舍弃。然后是VS code,这个工具相当于VS的精简版,美观好用,但要用它开发STM32,网上主流方法和刚才说的Eclipse差不多,很繁琐,但还有另一种方法,安装PlatformIO插件,这个插件描述得很吸引人,说是支持从51到32的各种单片机,我在VS code上安装这个插件进度条经常卡住不动,重启VS code也不行,好不容易安装上了,结果载入有卡顿(自认为电脑配置不错),磕磕绊绊建好一个STM32F103工程,结果编译出错,不想耽误太多时间,于是搁置,但我始终觉得这个方法可行,如果走通了会很好用,如果有朋友已经实现了,请教教我,谢谢。最后,是基于Eclipse的TrueSTUDIO和SW4STM32,在网上有人对比过这两个IDE,说TrueSTUDIO更好用,我自己也发现TrueSTUDIO之前是Atollic公司做的,之后被意法半导体公司收购,正式为STM32用户提供全免费、全功能的专业MCU集成开发环境,有了官方支持,TrueSTUDIO用起来肯定不差,于是我最终选择TrueSTUDIO开发STM32。
  选择了TrueSTUDIO,在网上连带着发现了另一个非常好用的工具——STM32CubeMX,我之前提到的用模板工程开发STM32遇到的问题就迎刃而解。STM32CubeMX是意法半导体推出的图形化配置工具,在该软件中通过直观易懂的交互操作就可以完成STM32的时钟树、GPIO、中断等的配置,重要的是,它可以通过红色或者黄色的警告图示,提醒你哪块配置有问题,可以避免我之前提到的GPIO配置冲突问题。STM32配置好后,可以选择导出keil、IAR、TrueSTUDIO等工程,就会自动生成相关C语言代码,然后用对应的IDE打开工程,继续开发就可以了,使用非常方便。还有一点值得注意,我之前开发STM32的模板工程,用的是STM32标准库,ST官方已经不再支持标准库的更新,转而大力推荐HAL库。HAL库在尽力减少不同型号STM32的代码区别,提供的函数通用性更强,同一套代码就可以轻松切换不同型号的STM32,而且HAL库对常用的功能函数进行封装,同一个功能的实现,标准库需要三行代码,HAL库可能一行就OK。STM32CubeMX就支持HAL库,此外,我之前给STM32烧程序,要么是笨重的JLink,要么是需要重复改变BOOT0跳线帽的USB转串口(虽然有的开发板进行优化,直接连USB线就可以烧程序,但毕竟是少数),大部分STM32板子都有SWD接口,我在网上十几块钱买了一个ST-Link V2迷你版,大小和U盘差不多,和STM32板子连接好,点击TrueSTUDIO的调试按钮就可以进行程序烧录和调试,非常方便。这样,从前期配置到后期开发,整个流程都大大简化了,相较以前,可谓是开发STM32的全新方式!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多