最早学习STM32F1还纠结于是从寄存器入手还是从标准库入手,捣鼓了一段时间寄存器后发现寄存器的配置太麻烦了,而且不容易移植,加上之前项目对于执行效率和ROM没有非常严格的要求,所以慢慢的还是用标准库进行开发,但是之前学习寄存器的过程还是积累了很多知识,所以推荐有看到这篇文章的朋友还是抽空看下寄存器的相关资料,推荐正点原子的教程。
最近要做一个产品,要用STM32F030的芯片,在网上找了一圈发现M0的标准库资料也是比较少的,所以顺应官方的趋势使用STM32CUBEMX开发。此文主要记录学习过程中的知识点,以备自己以后查阅。也希望能够帮助一些朋友,水平有限加第一次写文章,如有错误,请指出并轻喷。
HAL库LL库简介
ABOUT HAL & LL
STM32CubeMX集成了HAL库和LL库,生成的代码也是基于这两个库。HAL库是ST标准库后推出的,设计采用高分层思想,当工程更改主控芯片后,所有函数几乎不需要任何更改。ST公司推出的F7系列32位单片机目前只有HAL库和LL库。
由于HAL库的高封装性,必然导致代码执行效率不高。如果编译器优化等级低,产生的二进制文件比较大。因此,ST又推出了LL库。LL库大多数API函数是直接调用寄存器,且很多函数写成宏形式,或者采用__INLINE内联函数,提高了代码执行效率。
HAL库和LL库按外设模块设计,配置时可选择响应模块用不同的库。
以上一段摘自https://cloud.tencent.com/developer/news/1682;
这次写LL库的文章而不是选择HAL库,主要是因为HAL库编译后要比LL大许多,据说LL库也是ST现在主推的,所以这个准备画一周时间熟悉下。
软件的下载与安装
ST官网的下载太啰嗦,就不推荐了。
百度网盘下载
链接:https://pan.baidu.com/s/1G8rMm7n7tDhnugXgDSEg0Q
提取码:8qf5
先安装java,后安装软件,一路默认设置就可以了。
下一篇写新建工程。
STM32CubeMX中文网:http://www.stm32cube.com/