目录

  • 1 课程简介
    • 1.1 课程简介
    • 1.2 课程标准
    • 1.3 职业证书对接
    • 1.4 课程分工
  • 2 数据采集
    • 2.1 数据采集之数字量传感数据采集
    • 2.2 数据采集之模拟量传感数据采集
    • 2.3 数据采集之模拟量转换为数字量
    • 2.4 数据采集之开关量传感数据采集
  • 3 STM32微控制器基本外设应用开发
    • 3.1 STM32基础知识
    • 3.2 任务1 开发环境搭建和工程建立
    • 3.3 任务2 LED流水灯应用开发
    • 3.4 任务3 按键控制LED灯亮灭
    • 3.5 任务4 串行通信控制LED流水灯应用开发
    • 3.6 任务5 电池电量检测应用开发
  • 4 RS-485总线通信应用
    • 4.1 RS-485基本知识
    • 4.2 RS-485通信协议及网关通信协议
    • 4.3 Modbus通信协议
    • 4.4 任务1 案例分析及工程代码编写
    • 4.5 任务2 系统搭建及云平台项目创建
  • 5 CAN总线通信应用
    • 5.1 CAN总线基本知识
    • 5.2 CAN通信帧
    • 5.3 CAN控制器和收发器
    • 5.4 任务1 案例分析及工程代码编写
    • 5.5 任务2 系统搭建及云平台项目创建
    • 5.6 任务3 CAN通信数据抓包与解析
  • 6 BasicRF的无线通信应用
    • 6.1 BasicRF基础知识
    • 6.2 任务1创建工程项目
    • 6.3 任务2 温湿度节点数据采集
    • 6.4 任务3 火焰节点数据采集
    • 6.5 任务4 传感器节点组网
    • 6.6 任务5 传感数据汇聚
  • 7 WiFi数据通信
    • 7.1 WI-FI基础知识
    • 7.2 使用AT指令配置WI-FI工作模式
    • 7.3 WI-FI接入云平台
  • 8 NB-IoT联网通信
    • 8.1 NB-IoT技术简介
    • 8.2 利尔达NB-IoT模组介绍
    • 8.3 任务1 “智慧路灯”AT指令代码编写
    • 8.4 任务2.烧写智能路灯
    • 8.5 任务3NB-IoT接入云平台
  • 9 LoRa 通信技术
    • 9.1 基础知识
    • 9.2 项目分析与LoRa驱动移植
    • 9.3 任务2 LoRa温湿度传感器节点应用程序开发
    • 9.4 任务3 LoRa光照传感器节点数据采集
    • 9.5 任务4 LoRa网关节点汇聚传感器数据
    • 9.6 讨论
任务1 开发环境搭建和工程建立
  • 1 知识介绍
  • 2 PPT
  • 3 学习视频
  • 4 拓展内容
  • 5 国家脊梁

任务要求

  • 搭建基于STM32CubeMX工具和HAL库的STM32微控制器的开发环境,生成可在MDK-ARM集成开发环境下运行的工程。

  • 正确地配置、编译工程后,将其下载至开发板中运行。

知识链接

STM32 的软件开发库

在学习 STM32 的软件开发模式之前,有必要先了解 STM32 的软件开发库。ST 公司为开发者提供了多个软件开发库,如:标准外设库、HAL 库与 LL 库。另外,ST 公司还针对 F0 与 L0系列 MCU 推出了 STM32 Snippets 示例代码集合。

1. STM32Snippets库

2. STM32标准外设库(Standard Peripherals Library)

3. 软件开发工具产品——STM32CubeTM

4. STM32的软件开发库—HAL库

5. STM32的软件开发库—LL库

STM32的集成开发环境

 根据ST公司官网显示,支持STM32开发的IDEs(Integrated Development Environments,集成开发环境)有20余种,其中包括商业版软件和纯免费的软件。

  • 商业版IDE:MDK-ARM与IAR-EWARM。

  • 免费的IDE:SW4STM32、TrueSTUDIO等。

在后续的任务实施讲解中,将采用“STM32CubeMX + MDK-ARM”的开发工具组合。具体的应用开发流程如下所示:

① 根据任务要求,利用STM32CubeMX进行功能配置;

② 生成基于MDK-ARM集成开发环境的初始代码;

③ 添加功能逻辑完成应用开发。

任务实施

(一)、MDK-ARM的安装——下载安装包并安装

1.从Keil官网(www.keil.com)下载MDK-ARM的安装包,如:“MDK528A.EXE”。安装包下载完毕后,双击运行进入安装界面,根据向导提示点击“Next”按钮,安装目录保持默认即可(如图 2-7所示)。

7


2-7安装目录界面


2.安装成功后,系统将进入软件包安装欢迎界面(如图 2-8所示)。

8


2-8安装欢迎界面


3.MDK-ARM的安装——下载安装包并安装

方法一:从Keil官网(www.keil.com)下载MDK-ARM的安装包,如:“MDK528A.EXE”。安装包下载完毕后,双击运行进入安装界面,根据向导提示点击“Next”按钮,安装成功后,系统将进入软件包安装欢迎界面。点击上图中的“OK”按钮之后,将会进入软件包的安装主界面。

方法二:找到随书配套资源包中的MKD支持包(图 2-9),双击进行安装。

9


2-9MDK支持包


(二)STM32CubeMX的安装——下载安装包并安装

STM32CubeMX软件的运行依赖Java Run Time Environment(简称JRE),因此建议在安装前到Java的官网(https://www.java.com)下载JRE。读者根据自己操作系统选择32位或64位版本进行下载安装。

STM32CubeMX软件可访问其主页(https://www.st.com/stm32cube)获取,其安装过程也比较简单,根据安装向导操作即可(如图 2-10所示)。

10


2-10安装向导


(三)ST-Link驱动程序的安装

MDK-ARM的安装目录中包含了ST-Link下载调试工具的驱动程序,其位于图 2-11中的标号①处所示路径。PC机如果安装了64位的操作系统,则直接执行上述路径下标号②处所示可执行文件即可完成驱动程序的安装。

11


2-11ST-Link驱动程序路径


(四)建立工程

1.建立工程存放的文件夹,在D盘根目录新建文件夹“STM32_WorkSpace”用于保存所有的任务工程,然后在该文件夹下新建文件夹“task1_ProjectFirst”用于保存本任务工程。

2.打开STM32CubeMX工具,点击“ACCESS TO MCU SELECTOR(选择MCU)”按钮,如图 2-12所示。

12


2-12新建工程


3.进入“MCU选择”窗口(图 2-13)。在标号①处,输入MCU型号的关键字,如:STM32F103VE。点击标号②处的MCU型号,然后点击标号③处的“Start Project”按钮新建STM32CubeMX工程。

13


2-13选择MCU


4.配置GPIO功能,假设开发板的“PE6”引脚与LED灯——“LED2”相连。在STM32CubeMX工具的配置主界面,用鼠标左键点击MCU的“PE6”引脚处,选择功能“GPIO_Output”,如图 2-14所示。

14


2-14配置GPIO1


鼠标右键点击“PE6”引脚,选择“Enter User Label”选项,输入值“LED2”,将“PE6”引脚的“用户标签”值配置为“LED2”,点击“GPIO”,选中“PE6”,确保PE6引脚的配置如图 2-15所示。

15


2-15配置GPIO2


5.配置调试端口(图 2-16),用展开“Pinout & Configuration”标签页左侧的“System Core(系统内核)”选项(下图中标号①处),选择“SYS(系统)”选项(下图中标号②处),将“Debug(调试)”下拉菜单改为“Serial Wire(串口线)”选项(下图中标号③处)。即可将“PA13”引脚配置为SWDIO功能(下图中标号⑤处),“PA14”引脚配置为SWCLK功能(下图中标号④处)。

16


2-16配置调试端口


6.配置MCU时钟树(图 2-17),选择“Pinout & Configuration”标签页左侧的“RCC(复位、时钟配置)”选项,如下图标号①所示。将MCU的“High Speed Clock(HSE,高速外部时钟)”和“Low Speed Clock(LSE,低速外部时钟)”配置为“Crystal/Ceramic Resonator(晶体/陶瓷谐振器)”,如下图标号②③所示。

17


2-17配置MCU时钟树


完毕后,MCU的“Pinout View(引脚视图)”中相应的引脚功能将被配置,如图 2-17标号④和⑤所示。

切换到“Clock Configuration(时钟配置)”标签,进行STM32微控制器的时钟树配置,如图 2-18所示。

18

标号①:“PLL Source MUX(锁相环时钟源选择器)”的时钟源选择为“HSE”,即:8MHz外部晶体谐振器标号

标号②:“PLLMul(锁相环倍频)”配置为“9”;

标号③:“System Clock MUX(系统时钟选择器)”的时钟源选择为“PLL”;

标号④:配置“SYSCLK(系统时钟)”为72MHz;

标号⑤:配置“HCLK(高性能总线时钟)”为72MHz;

标号⑥:配置“Cortex System timer(Cortex内核系统嘀嗒定时器)”的时钟源为HCLK的八分之一,即:9MHz;

标号⑦:配置“APB1 Peripheral clocks(低速外设总线时钟)”为HCLK的二分频,即:36MHz;

标号⑧:配置“APB2 Peripheral clocks(高速外设总线时钟)”为HCLK的一分频,即:72MHz。

2-18STM32微控制器时钟树配置


完成上述过程后,记得保存STM32CubeMX工程:点击“File(文件)”菜单,选择“Save Project(保存工程)”选项。然后定位到工作空间工程文件夹“D:\STM32_WorkSpace\task1_ProjectFirst”,点击“确定”保存STM32CubeMX工程。

7.生成C代码初始工程(图 2-19),切换到“Project Manager(工程管理)”标签,进行“C代码工程”的配置,点击左侧“Code Generator(代码生成)”配置标签,按照图中标号①、②所示进行相关设置。

19


2-19Code Generator配置


点击图 2-20左侧的“Project(工程)”配置标签进行“C代码工程”保存的相关配置。由于之前已保存过STM32CubeMX的工程,因此“Project Name(工程名)”和“Project Location(工程存放位置)”处的信息已填好(分别如图标号①和标号②处所示)。

20


2-20Project配置


点击上图中的“Toolchain/IDE”下拉菜单(上图中标号③处),选择集成开发环境为“MDK-ARM V5”。最后点击“GENERATE CODE(生成代码)”按钮(上图标号④处),生成相应的C代码工程。

8.完善main()函数(图 2-21),生成的C代码工程位于工程文件夹中的“MDK-ARM”中,如图标号①处所示。双击工程文件(图标号②处),使用MDK-ARM工具打开。

21


2-21C代码工程目录


点击快捷工具栏中的图标进行C代码工程的配置(如图 2-22标号①处)。切换到“Debug”标签(如图标号②处),选择相应的调试工具,如:ST-Link Debugger(如图标号③处)。点击图中的“Settings”按钮(标号④处)进入“调试与下载配置”界面,如图 2-23所示。

22


2-22C代码工程配置1


将调试工具端口改为“SW”,如图 2-23子图(a)中标号①处所示。如果STM32微控制器连接正常,右上角的“SW Device”窗口可看到已连接的设备(图 2-23子图(a)中标号②处)。

23


2-23C代码工程配置2


点击“Flash Download”标签切换到“下载配置”界面(图 2-23子图(b)中的标号③处),勾选“Reset and Run”选项(图 2-23子图(b)中的标号④处)。经过上述配置后,程序下载到STM32开发板后会自动重启并运行。

M3主控模块上的开关拨为NC位置(方向朝下),如图 2-24所示。

24


2-24M3主控模块


工程编写完毕后,点击工具栏中的“Build(F7)”按钮进行工程的编译。编译无误后,点击工具栏中的“DownLoad(F8)”按钮进行工程的下载并运行。如图 2-25标号①和标号②处所示。

25


2-25工程编译下载


本工程运行的现象是LED2闪烁,亮1秒灭1秒,周期为2秒。