单片机的开发一直都是很枯燥的,51直接操作寄存器,stm32的标准库不人性,和操作寄存器没啥区别,然而,对于一个mcu的外设来讲,管脚是确定的,功能是确定的,总得来说是有规律可循的,开发者不应该把时间浪费在驱动编程上,而更多的应该关注业务逻辑。所以stm32在原来的标准库基础上升级为HAL库,称为stm32Cube,同时推出了在pc端使用的CubeMX工具,其目的就是要把那些针对芯片的有规律的机械编程可视化,让你点点选选就可以初始化好相关外设的驱动代码,生成工程项目。进而使用新的stm32Cube库开发。
cube库相比标准库在封装及api命名上有一定的进步,当然标准库的优势就是比cube封装的弱,更接近底层,可以学习的芯片架构方面的东西,方便深入了解底层。
下面是一些资源:
- http://www.stmcu.org/module/forum/thread-600243-1-1.html
- CubeMX和HAL库官方下载
- http://jingyan.baidu.com/article/a948d6510293ec0a2ccd2e49.html
对于CubeMX,我们拿来规划芯片引脚使用情况或者参考其生成的代码流程。多数情况下,不应该直接使用其生成的代码。这是因为基本上所谓的智能化代码生成都是没有针对性的复杂冗余实现。我们只能拿来参考而不宜直接使用。