接触STM32(http://www.stmcu.com.cn/aboutstmcu)不是一天两天了,伴随着我的青葱岁月一直到年近不惑.从初出茅庐的行业新人,到浸淫在单片机应用的某个具体行业小应用里的一员;STM32曾今一度在常规意识里,就是ARM的代名词.从st的M3系列-stm32F早期的10x,才接触到ARM.之前,提到arm 就是arm7, arm9 ,第一印象就是贵,高不可攀,在2000年过的头几年.单片机开发工具普遍比较贵,相对于那会儿一两千,两三千的有限的收入来说.动辄上千的开发板,不是每个人都有机会可以轻易尝试的.
8位机mcu开发板是大多数人的选择.这里又涉及到的价格不菲的编程器. 好不容易 atmel的51系列出了s系列 ,可以所谓的isp在线编程. 依照网络上很多制作不优良的个人技术主页或者界面简单的技术网站所提供的资料.利用pc上自带的232com口 .加上一片232, 进行的isp电路DIY,当然也有并口版本的.那会儿的主板甚至是笔记本还有这么个古老东东.
并口版本是用了一片74hc244,也有利用类似接口芯片的 . 依葫芦画瓢的DIY一番,满心欢喜.终于可以有自己的下载器,可以尝试对单片机编程了. 理想很美好,现实有时候很残酷.
种种的原因,天不遂人愿, 其实是电路的性能无法遂人愿. 是多么期待有一个成熟稳定的下载方式. 转机而后来了. AVR单片机算是盛行了一段时间. 于是也涌现出许多的简易好用的单片机. 下载问题确实解决了,调试还是非常麻烦 ,没有专用的仿真器. 仿真器通常有一个望而却步的价格. 想入非非而不得.
好在单片机的发展日新月异.真正的大转机 在不经意间就来了. 引得我们一众有意加入ARM大军的人拍手称快. 可以真正实现一个把ARM当单片机用, 可以下载,可以调试,可以串口通信的机会来临, 这就是我的第一块STM32开发板.
如下图: 由万利出品, 199的价格,还是非常亲民.一下子单片机开发就迈入了32bit时代.
把板卡提供的例子各种修改测试. 不得不说,在线调试是个很厉害的东西.之前需要各种间接来印证或者通过串口打印数据方式. 有了在线调试,可以通过watch变量的方式轻松搞定. 进入到stm32开发时代以后, 之前的一些知识储备明显落后于实际需求, 一大堆的寄存器要去熟悉. 基于C的方式 不可能像51等一些8位机那般轻松上手.甚至是DataSheet也不是由一个pdf文档就可以搞定,而是分成专门的硬件,软件,编程手册,设计指南,等更加细分的形式.
此时C的开发方式,大致的分成2大阵营, 库函数和直接寄存器. 这也是一个摸索的过程.厂商和民间都在发力. stm32f的生态系统日趋完善, 库函数瑜伽优化, 寄存器版本有时候也是独树一帜,切中要点.网络上的资料和例程,越来越多. 同时也有一批致力于stm32f开发板的厂家不断涌现,在如今万能的x宝上,可以很方便的买到各种开发板,免费获取的到他们的完整的资料.
于是,基于stm32f的一些应用.尤其是火热的stm32f103系列,变得非常容易. 按照一些市面上公开的 stm32f的板卡或者模块提供的资料.我们可以很容易的把他们硬件照搬到我们的应用,比如按键口,和ad输入口,串口 ,tft彩屏口 都可以原封不动的搬入其中.然后软件也是直接可以把提供的样例工程拿来用. 因为我们的对于单片机的资源的分配几乎无二致, 便利快捷,降低了开发难度.赢得了宝贵的时间啊. 这种办法,放眼现在,也不算过时,;
当然现在我们做一些应用 ,也可以直接将官方或者板卡公司出品的stm32f板卡直接利用他的扩展口,如arduino或者morpho口 接入到我们的应用. 这样 ,单片机不在仅仅是单片机, 更像一个软硬件都封装好的.带了很多api的智能硬件.有点像plc, 比如mbed就是这样一个例子.
可以把设计者的主要精力放在具体应用. 减少在底层,的精力投入. CMSIS,很好的封装了底层.让各家对于同一系列内核的操作变得简单而统一.
偏题有些多,继续我与STM32的绵绵故事.陆续有用stm32做过几个小东西.遗憾的是没有真正的批量起来, 原因很多,除了需求简单, 8位机已经够用.原来的设计足够稳定,没有精力再去重新验证另外一个方案的稳定性等元素外. 是因为对stm32把握的还稍缺火候.没有到一种可以很轻松驾驭的地步. 时间是最好的解药. 这种驾驭能力正在与日俱增中.尤其是CubeMX出现后.信心逐步加强.原来需要花时间去了解的涉及底层功能和寄存器的部分. 只要通过CubeMx提供的图形化配置功能,就可以轻松实现. 配置好以后, 就可以直接配置好对应的Cube固件库,还可以生成不同的初始化代码,Cube库的层层架构,也是尽显现代软件思想. 软件自动化编程,原来真的不是梦, 正一步步朝我们走来.
CubeMX, 独一无二!
PS一下,最新的cubemx又更新了.哈哈 .
现在Cubemx也更加完善,可以直接在软件里面下载,然后重启一下就自动更新好了.而且现在的下载速度明显变快了.不知道是不是把下载的服务器放在国内了. 总之快,用过老版本的人都知道. 以前在cubemx内部更新库是很慢的. 动辄10多小时. 总之,cubemx在实用的路上,越走越坚实!
< 今早刚刚更新的CubeMx 4.19.0 >, STM32F7的库已经升级到1.6.0啦.
另外,对于使用mdk5的小伙伴, 如果要更新对应单片机的pack包,有个小窍门.
可以先打开这个页面:
然后,选择需要的pack包.
点击下载,然后:
这样下载就快多了
2017来了 .祝福大家新的一年更多收获! 欣闻2017, 咱st出品了新的1.5Mflash .温度直达125摄氏度的给力芯片. 413 .我绝对.在此优良特性的基础上,全力应用一个物联网的小项目.基于2G 4G模块远传数据到服务器.通过pc, pad, android 都可以通过app来进行云端访问.目前,业已实现初步功能. 未来是想运用st来重新实现底层,可以实现固件的远程升级.
|