启航——跟我一起写STM32(第一期)

本文是一篇STM32教学的前言,介绍了STM32的开发环境配置,包括STM32CubeIDE、Keil、IAR等工具的优劣,并推荐了STM32CubeIDE作为新手入门选择。文章还讨论了直接配置寄存器、标准外设库、HAL库和LL库等开发方式,推荐使用HAL库进行开发。此外,提供了参考资料和必要的硬件设备清单。
摘要由CSDN通过智能技术生成

1. 前言

笔者出此系列STM32教学仅供和大家一起学习,笔者也是小白,此笔记也算是和大家一起学习。
本笔记也参考了大多数资料和文章,笔者只是拾人牙慧的小屁孩。

2. 配置环境

2.1 基本介绍

那我们废话多说,现在介绍一下本次学习所使用的工具-----STM32CubeIDE。
笔者了解到目前主流的stm32编程环境有:

  1. Keil
  2. IAR
  3. STM32CubeMX + VSCode/Clion
  4. STM32CubeIDE

现在我们来说一下优劣:

  1. Keil:作为刚入门的新手来说,keil开发32的优势确实很明显,简单说就是配置不繁琐,网上教程较多,比较容易上手,调试功能什么的很不错。如果用标准固件库的开发者,也许就第一次配置需要多花一些时间进行配置,第一个工程文档建好之后,强烈建议保存!可以作为模板为以后的开发提供便利。不过,Keil的IDE风格实在太老土了,笔者觉得并不好看。
  2. IAR:首先IAR的界面,怎么说呢,比keil好一些,但也只是好一些。功能方面覆盖了keil的功能了,但是编译效率更加高,速度更加快。一般使用IAR+source insight,在source insight里面编辑,在IAR编译,美滋滋,可以满足绝大部分的人的需求了。
  3. STM32CubeMX:STM32CubeMX生成工程文件,再使用自己喜欢的IDE进行编程,例子嘛,可以看看知乎大神 稚晖 的“配置CLion用于STM32开发【优雅の嵌入式开发】”,非常的优雅。
  4. STM32CubeIDE:比较美观的界面,基于 Eclipse / CDT 框架和 GCC 工具链进行开发,多功能的多操作系统开发工具。

笔者教程中会选择STM32CubeIDE的主要原因是其简单易上手(手动滑稽),接下来也会重点讲它的安装。
笔者日常生活中喜欢STM32CubeMX+Clion的方式(毕竟是稚晖君的粉丝),想体验的可以参考:
视频(b站)资料参考b站视频
文章资料参考
配置CLion用于STM32开发【优雅の嵌入式开发】

2.2 下载安装

(1) 找到官网下载地址
(2) 找到适合自己的版本下载,笔者一般下最新版

(3) 下载好后无脑安装


(4) 打开 STM32CubeIDE 软件,选择合适的工作路径(接下来一系列的项目的保存地址),点击 Launch
(5) 好了,大功告成,可以休息一下奖励自己了

2.3 STM主流开发方式

  1. 直接配置寄存器
    不少先学了 51 的朋友可能会知道,我们开发51单片机时,使用C语言或者汇编语言直接操作指针或物理地址来配置寄存器,以实现我们需要的功能。这样的好处是高效,但代价是我们编程时反复查阅参考手册,影响效率。而且这种方法到了 STM32 就变得不太容易行得通了,因为 STM32 的寄存器数量是 51 单片机的十数倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。
  2. 使用标准外设库开发
    上面也提到了,STM32 有非常多的寄存器,而导致了开发困难,所以为此 ST 公司就为每款芯片都编写了一份库文件,也就是工程文件里 stm32F1xx…之类的。在这些 .c .h 文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如 GPIO 口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。不过目前停止了更新和维护。
  3. 使用HAL/LL库开发
    HAL 库是 ST 公司目前主力推的开发方式,全称就是 Hardware Abstraction Layer(抽象印象层)。词如其名,主要就是封装和抽象,方便我们的编程。
    ST在推行HAL库的时候,逐渐停止了对于标准库的更新(新出的芯片以及不再提供标准库了),但他们也意识到了HAL库效率较低的问题,因此同时也推出了LL( Low-layer )库。低层驱动程序概述低层(LL)驱动程序旨在提供快速的轻量级面向专家的层,该层比HAL更接近硬件。与HAL相反,对于优化访问权限不是关键功能的外围设备,或需要大量软件配置和/或复杂上层堆栈(例如FSMC,USB或SDMMC)的外围设备,则不提供LL API。
    总结一下就是,HAL更抽象,LL是相比于HAL贴近底层的抽象。

综上,我们选择HAL库开发

2.4 参考资料介绍

代码风格: 正点原子
部分源码: 正点原子
alientek

书籍: 《STM32Cube高效开发教程(基础篇)》
book

手册: 《STM32F10xxx中文参考手册_V10》
手册下载途径:
ST官网

2.5 硬件设备

  1. 一台电脑
  2. STM32开发板 (笔者自己用的有:正点原子战舰V3(STM32F103ZET6)、STM32RCT6)
  3. STLink(若是没有连接线,则需要杜邦线连接到STM32上)
  4. CH340(用于串口调试)
  5. OLED(SSD1306)
  6. LCD(正点原子 2.8/2.4 电阻LCD触摸屏)

注:并不是说这些就是最好的配置,只是从学长那儿买来的二手货正好有这些,就将使用了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值