M0 工程建立
到目前为止,我们已经完成了 STM32CubeMX 和 IAR 软件的一些了解学习,接下来我们就结合 LoRa 开发板来创建一个 M0 工程。M0 工程是所有硬件开发的第一步,是根据我们所需的硬件内容和需求做出来的第一个工程文件。以后的配置工作甚至是其他 LoRa 板型都可以在 M0 工程的基础之上完成,是名副其实的“万能模板”。
在这部分的内容当中,希望大家能够梳理清楚整个LoRa驱动配置的步骤和过程,明白其中的原理;同时学习到 STM32CubeMX 和 IAR 软件使用方法。
IO 端口配置
从前面的学习中不难发现 STM32CubeMX 这个软件就是为了 STM32 芯片各个功能引脚配置和各种外设的开启功能配置的,所以在使用软件之前,我们得完成 STM32 的引脚配置,绘制出原理图。一般来讲这个工作是由硬件工程师来完成的,所以具体过程我们可以不用深究,拿到原理图我们就可以根据原理图来配置引脚的模式和功能了。
这里是我的 LoRa 开发板提供的芯片原理图。
然后根据上面的原理图,建立 IO 功能映射表如下。
序号 |
IO编号 |
IO信号网络 |
功能描述 |
0 |
VSS |
GND |
电源负 |
1 |
VDD |
3.3V |
电源正 |
2 |
PF0-OSC-IN |
OSC_IN |
外部8M晶振 |
3 |
PF1-OSC-OUT |
OSC_OUT |
|
4 |
NRST |
NRST |
外部复位 |
5 |
VDDA |
3.3V |
电源正 |
6 |
PA0 |
BAT_ADC |
模拟量输入-电池电压 |
7 |
PA1 |
ADC_KEY |
模拟量输入-按键信息 |
8 |
PA2 |
DIO3 |
数字量输入-LoRa数字IO3 |
9 |
PA3 |
DIO2 |
数字量输入-LoRa数字IO2 |
10 |
PA4 |
A1 |
数字量输入-传感器扩展接口1 |
11 |
PA5 |
ID_1 |
NC |
12 |
PA6 |
A2 |
模拟量输入-传感器扩展接口2 |
13 |
PA7 |
NSS_LoRa |
LoRa模块片选接口 |
14 |
PB0 |
LED4 |
数字输出-无线通信网络指示灯 |
15 |
PB1 |
LED3 |
数字输出-无线通信发送指示灯 |
16 |
PB2 |
LED2 |
数字输出-无线通信接收指示灯 |
17 |
VDD |
3.3V |
电源正 |
18 |
PA8 |
D3&KEY |
数字量输入3-按键状态 |
19 |
PA9 |
U1 USART1_TX |
串行通信接口 |
20 |
PA10 |
U1 USART1_RX |
|
21 |
PA11 |
DIO0 |
数字量输入-LoRa数字IO0 |
22 |
PA12 |
DIO1 |
数字量输入-LoRa数字IO1 |
23 |
PA13 |
SWDIO |
SWD调试烧写接口 |
24 |
PA14 |
SWCLK |
|
25 |
PA15 |
NSS_LCD |
LCD片选接口 |
26 |
PB3 |
SCLK |
SPI时钟接口 |
27 |
PB4 |