目录

  • 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 讨论
任务3 按键控制LED灯亮灭
  • 1 知识介绍
  • 2 PPT
  • 3 学习视频
  • 4 国家脊梁

任务要求

按键控制LED灯亮灭系统的具体要求如下:

1、使用外部中断实现按键功能;

2、系统刚上电时,LED灯为关闭状态。第奇数次按下按键,LED灯亮;第偶数次按下按键,LED灯关闭,并以此循环往复。

3、按键与LED灯的电路原理图如图 2-40所示,其中按键的GPIO引脚为PC13,LED灯与GPIO引脚PB6相连。

图片1


2-40按键与LED灯的电路原理图


知识链接

(一)STM32F1的中断管理

图 2-41所示,STM32F1这个系列有很多的产品,不同的产品,它们的中断个数也是不一样的,比如,微控制器,因为比较复杂,所以描述比较模糊,是“多个”。互联型产品有78个中断,其他产品有70个中断。

图片2


2-41STM32F1系列产品分类


它们的中断控制关系,如图 2-42所示。

图片3


2-42STM32F1系列中断控制关系


STM32F1的中断优先级共分为5个组别,如图 2-43所示。

图片4


2-43STM32F1的中断优先级分组


对“抢占优先级”和“子优先级”在程序执行过程中的判定规则说明如下:

1、若两个中断的“抢占优先级”与“子优先级”都相同,则哪个中断先发生就先执行谁;

2、“抢占优先级”高的中断可以打断“抢占优先级”低的中断;

3、若两个中断的“抢占优先级”相同,当两个中断同时发生时,“子优先级”高的中断先执行,且“子优先级”高的中断不能打断“子优先级”低的中断。

(二)STM32F1的外部中断/事件控制器

STM32F1的外部中断/事件控制器(External Interrupt/Event Controller,EXTI):

1、包含20个可用于产生中断/事件请求的边沿检测器;

2、STM32F1的每个GPIO引脚都可以作为外部中断的中断输入口;

3、每个外部中断都设置了状态位;

4、具备独立的触发和屏蔽设置。

20个外部中断或事件分别是:

1、EXTI线0-15:对应外部 IO 口的输入中断。

2、EXTI线16:连接到 PVD 输出。

3、EXTI线17:连接到 RTC 闹钟事件。

4、EXTI线18:连接到 USB 唤醒事件。

5、EXTI线19:连接到以太网唤醒事件(只适用于互联型产品)。

STM32F1系列微控制器供GPIO引脚使用的中断线有16条,MCU本身的GPIO引脚数量大于16,因此需要制定GPIO引脚与中断线映射的规则。(图 2-44

图片5


2-44中断线与GPIO映射示意图


任务实施

(一)建立STM32CubeMX工程并生成初始C代码

步骤如下:

(1)建立工程存放的文件夹

(2)新建STM32CubeMX工程

(3)选择MCU型号

(4)配置调试端口

(5)配置MCU时钟树

(6)配置外部中断按键GPIO功能

(7)配置LED灯相关的GPIO功能

(8)保存STM32CubeMX工程

(9)配置按键NVIC

(10)生成初始C代码工程

选择视频文件(上传小于 500M 的 MP4 格式视频)


(二)完善代码

选择视频文件(上传小于 500M 的 MP4 格式视频)


编写按键外部中断回调函数。

在“main.c”中添加以下按键外部中断回调函数代码,如图 2-45所示。

图片6


2-45按键外部中断回调函数代码


定义相关变量,在“main.c”中添加相关变量定义。(图 2-46

图片7


2-46定义相关变量代码


编写主循环程序。(图 2-47

图片8


2-47主循环程序代码


课程回顾

1、按键与LED灯的电路原理。

2、STM32F1的中断管理:分为抢占优先级和子优先级,工作机制。

3、STM32F1的外部中断/事件控制器:20个外部中断或事件。

4、工程创建,生成、完善代码。