LoRa 开发环境搭建
STM32CubeMX 安装及使用
STM32CubeMX 简介
市面上常见的 LoRa 模块都是搭配 STM32 芯片的单片机来使用的,所以使用 ST 公司的软件和产品是入门学习 LoRa 开发的必要一环。
STM32 单片机是 ST(意法半导体)公司使用 ARM 公司的 Cortex-M3 为核心生产的 32 位系列的单片机。
STM32 字面含义:
- ST ——意法半导体(一个公司名),即 SOC 厂商。
一个芯片比如 STM32 里面有内核(ARM),而内核 ARM 由 ARM 公司( IP 厂商)生产,外设由 ST 公司( SOC 厂商)生产,再此基础上添加各种外设,比如 GPIO, IIC 等。
- M —— Microelectronics 的缩写即微控制器。
注意: 微处理器在微控制器的基础上有 MMU(内存管理单元),一般微控制器不跑系统,编写的程序为裸机例程。
- 32 —— 32 bit,表示是一个 32 位微控制器。
单片机位数指 CPU 处理的数据的宽度,参与运算的寄存器的数据长度。32 位单片机的数据总线宽度为 32 位,通常可直接处理 8 位或 16 位或 32 位数据。
使用到 LoRa 的时候不可避免会用到 STM32 上面的串口、IIC、RTC 时钟等功能,所以我们会需要对这些外设进行初始化、配置等操作。传统的 STM32 配置和开发可以单独开一门课来讲了,难度比较大,所以我们需要借助 ST 公司的 STM32CubeMX 软件来简化配置的门槛。
STM32CubeMX 是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能实现相关配置,最终能够生成 C 语言代码,支持多种工具链,比如 MDK、IAR For ARM、TrueStudio 等。尤其值得一提的是,TrueStudio 已经被 ST 收购,提供完全免费的版本,并且,通过插件式安装,可以将 STM32CubeMX 集成在一个 IDE,使用十分方便。
直白点来说,我们可以直接通过图形化的方法,用 STM32CubeMX 这款软件完成一些外设的配置,它能够通过我们的选择,自动为我们生成配置外设所需的代码,大大提高了我们的效率。
STM32CubeMX 的优势:
- 直观的选择 STM32 微控制器;
- 微控制器图形化配置:
自动处理引脚冲突
动态设置确定的时钟树
可以动态确定参数设置的外围和中间件模式和初始化
功耗预测
- C代码工程生成器覆盖了STM32微控制器初始化编译软件,如IAR、KEIL、GCC可以独立使用,作为Eclipse插件使用。
HAL 库与 STD 库
库的概念大家应该不陌生,通常时候我们用到的一些传感器读取数据的函数,都是工程师们在库里面完成的底层代码编写。同样的,ST 的工程师们也为他们的 STM32 外设编写了不少外设库给我们调用,目前 ST 的库大致可以分为两大类:STD 库和 HAL 库。
- STD 库——标准外设库:寄存器操作,将一些基本的寄存器操作封装成函数;
- HAL 库——硬件抽象库:将这些象成了一个抽象层,从使用的角度来看,是与硬件无关的。
STD 库是早期 ST 推出的标准库,广泛应用在高校教育当中,库中对常见的一些寄存器功能进行了封装,