18
基基 基基 STM32 STM32 基基基基基基基 基基基基基基基 Wi Wi Fi Fi 基基基基 基基基基 基基基基基基基基基 基基基基基基基基基

基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

  • Upload
    alissa

  • View
    212

  • Download
    0

Embed Size (px)

DESCRIPTION

基于 STM32 的嵌入式蓝牙与 WiFi 模块设计. 交通物联网应用技术. 教学目的. 介绍 32 位 ARM STM32 系统的硬件设计,分别介绍 I/O 口、中断、 DMA 、 UART 、 A/D 等接口的硬件设计要点和特性 掌握嵌入式系统中蓝牙、 WiFi 无线组网通讯模块的软硬件设计方法及应用. 32 位 ARM 处理器 STM32 简介. STM32 处理器的特点 STM32F103 系列微处理器是首款基于 ARMv7- M 体系结构的 32 位标准 RISC (精简指令集)处理器。 - PowerPoint PPT Presentation

Citation preview

Page 1: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

基于基于 STM32STM32 的嵌入式蓝的嵌入式蓝牙与牙与 WiFiWiFi 模块设计 模块设计

交通物联网应用技术交通物联网应用技术

Page 2: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

教学目的教学目的

介绍介绍 3232 位位 ARM STM32ARM STM32 系统的系统的硬件设计,分别介绍硬件设计,分别介绍 I/OI/O 口、中口、中断、断、 DMADMA 、、 UARTUART 、、 A/DA/D 等接等接口的硬件设计要点和特性口的硬件设计要点和特性

掌握嵌入式系统中蓝牙、掌握嵌入式系统中蓝牙、 WiFiWiFi无线组网通讯模块的软硬件设计无线组网通讯模块的软硬件设计方法及应用 方法及应用

Page 3: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

3232 位位 ARMARM 处理器处理器 STM32STM32 简简介 介 STM32STM32 处理器的特点处理器的特点

STM32F103STM32F103 系列微处理器是首款基系列微处理器是首款基于于 ARMv7- MARMv7- M 体系结构的体系结构的 3232 位标准位标准RISC RISC (精简指令集)处理器。 (精简指令集)处理器。

作为最新一代的嵌入式作为最新一代的嵌入式 ARM ARM 处理器,处理器,它为实现它为实现 MCU MCU 的需要提供了低成本的需要提供了低成本的平台、缩减的引脚数目、降低的系的平台、缩减的引脚数目、降低的系统功耗,同时提供了卓越的计算性能统功耗,同时提供了卓越的计算性能和先进的中断响应系统。 和先进的中断响应系统。

Page 4: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

3232 位位 ARMARM 处理器处理器 STM32STM32 简简介介 STM32STM32 硬件接口外设硬件接口外设

多达多达 5151 个快速个快速 I /O I /O 端口 端口 22 个个 1212 位模数转换器,多达位模数转换器,多达 1616 个外个外

部输入通道 部输入通道 灵活的灵活的 77 路通用路通用 DMA DMA 可以管理存储可以管理存储

器到存储器、设备到存储器和存储器器到存储器、设备到存储器和存储器到设备的数据传输 到设备的数据传输

调试模式 调试模式 内部包含多达内部包含多达 77 个定时器 个定时器 含有丰富的通信接口 含有丰富的通信接口

Page 5: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

3232 位位 ARMARM 处理器处理器 STM32STM32 简简介介 STM32STM32 的时钟和电源管理 的时钟和电源管理

在在 STM32STM32 中,有五个时钟源中,有五个时钟源 HISHIS HSEHSE LSILSI LSELSE PLLPLL

STM32STM32 的电源组成,其主要由的电源组成,其主要由 33 个部分个部分 独立的独立的 A/DA/D 供电电压和参考电压供电电压和参考电压 备份电压备份电压 电压调节器。 电压调节器。

Page 6: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

I/OI/O 口 口

STM32STM32 的的 I/OI/O 口工作原理 口工作原理 STM32STM32 的输入输出管脚有下面的输入输出管脚有下面 88 种可能种可能的配置 的配置 ::

浮空输入浮空输入 _IN_FLOATING _IN_FLOATING 带上拉输入带上拉输入 _IPU _IPU 带下拉输入带下拉输入 _IPD _IPD 模拟输入模拟输入 _AIN_AIN 开漏输出开漏输出 _OUT_OD _OUT_OD 推挽输出推挽输出 _OUT_PP _OUT_PP 复用功能的推挽输出复用功能的推挽输出 _AF_PP _AF_PP 复用功能的开漏输出复用功能的开漏输出 _AF_OD_AF_OD

Page 7: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

I/OI/O 口口 I/OI/O 口编程实例口编程实例

函数函数 GPIO_DeInitGPIO_DeInit 功能描述:将外设功能描述:将外设 GPIOxGPIOx 寄存器重设为缺省值寄存器重设为缺省值 函数函数 GPIO_AFIODeInitGPIO_AFIODeInit 功能描述:将复用功能(重映射事件控制和功能描述:将复用功能(重映射事件控制和 EXTIEXTI 设置)重设为缺省值设置)重设为缺省值 函数函数 GPIO_InitGPIO_Init 功能描述:根据功能描述:根据 GPIO_InitStructGPIO_InitStruct 中指定的参数初始化外设中指定的参数初始化外设 GPIOxGPIOx 寄存器寄存器 函数函数 GPIO_StructInitGPIO_StructInit 功能描述:把功能描述:把 GPIO_InitStructGPIO_InitStruct 中的每一个参数按缺省值填入中的每一个参数按缺省值填入 函数函数 GPIO_ReadInputDataBitGPIO_ReadInputDataBit 功能描述:读取指定端口管脚的输入功能描述:读取指定端口管脚的输入 函数函数 GPIO_ReadInputDataGPIO_ReadInputData 功能描述:读取指定的功能描述:读取指定的 GPIOGPIO 端口输入端口输入 函数函数 GPIO_ReadOutputDataBitGPIO_ReadOutputDataBit 功能描述:读取指定端口管脚的输出 功能描述:读取指定端口管脚的输出

Page 8: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

中断 中断

ARMARM 的中断原理 的中断原理 ARM cortex_m3 ARM cortex_m3 内核支持 内核支持 256 256 个中个中断(断( 16 16 个内核个内核 +240 +240 外部)和可编程 外部)和可编程 256 256 级中断优先级的设置,与其相关的级中断优先级的设置,与其相关的中断控制和中断优先级控制寄存器(中断控制和中断优先级控制寄存器( NVINVICC 、、 SYSTICK SYSTICK 等)也都属于等)也都属于 cortex_mcortex_m3 3 内核的部分。内核的部分。 STM32 STM32 采用了采用了 cortex_cortex_m3 m3 内核,所以这部分仍旧保留使用,但 内核,所以这部分仍旧保留使用,但 STM32STM32 并没有使用 并没有使用 cortex_m3 cortex_m3 内核全内核全部的东西(如内存保护单元 部的东西(如内存保护单元 MPU MPU 等),等),因此它的 因此它的 NVIC NVIC 是是 cortex_m3 cortex_m3 内核的 内核的 NVIC NVIC 的子集。 的子集。

Page 9: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

中断中断

STM32STM32 的中断控制器 的中断控制器 STM32 STM32 目前支持的中断共为 目前支持的中断共为 8484个(个( 16 16 个内核个内核 +68+68 个外部),和个外部),和16 16 级可编程中断优先级的设置。 级可编程中断优先级的设置。

STM32 STM32 可以支持的 可以支持的 68 68 个外部中个外部中断通道,已经固定的分配给相应的断通道,已经固定的分配给相应的外部设备 。外部设备 。

Page 10: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

中断中断

中断编程实例中断编程实例

Page 11: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

UART UART

UARTUART 的工作原理 的工作原理 UARTUART 是一种通用串行数据总线,用于是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现异步通信。该总线双向通信,可以实现全双工传输和接收。 全双工传输和接收。

在嵌入式设计中,在嵌入式设计中, UARTUART 用来与用来与 PCPC 进进行通信 行通信

其过程为:其过程为: CPUCPU 先把准备写入串行设备先把准备写入串行设备的数据放到的数据放到 UARTUART 的寄存器(临时内存的寄存器(临时内存块)中,再通过块)中,再通过 FIFOFIFO (( First Input FirFirst Input First Outputst Output ,先入先出队列)传送到串行,先入先出队列)传送到串行设备 设备

Page 12: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

UARTUART

STM32STM32 的的 UARTUART STM32STM32 的可提供的可提供 55 路串口,有路串口,有

分数波特率发生器、支持单线光分数波特率发生器、支持单线光通信和半双工单线通讯、支持通信和半双工单线通讯、支持 LILINN 、智能卡协议和、智能卡协议和 IrDA SIR ENIrDA SIR ENDECDEC规范(仅串口规范(仅串口 33 支持)、支持)、具有具有 DMADMA 等 等

Page 13: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

A/DA/D 接口 接口

A/DA/D 接口原理 接口原理 模数转换则是将模拟电量转换为数字量,模数转换则是将模拟电量转换为数字量,使输出的数字量与输入的模拟电量成正使输出的数字量与输入的模拟电量成正比。 比。

在在 A/DA/D 转换中,因为输入的模拟信号在转换中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是时间上是连续的,而输出的数字信号是离散量,所以进行转换时只能按一定的离散量,所以进行转换时只能按一定的时间间隔对输入的模拟信号进行采样,时间间隔对输入的模拟信号进行采样,然后再把采样值转换为输出的数字量。然后再把采样值转换为输出的数字量。通常通常 A/DA/D 转换需要经过采样、保持量化、转换需要经过采样、保持量化、编码四个步骤。 编码四个步骤。

Page 14: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

A/DA/D 接口接口

STM32STM32 的的 A/DA/D 转换转换 STM32STM32 处理器自带的处理器自带的 1212 位位 ADAD

CC 是一种逐次逼近型模拟数字转是一种逐次逼近型模拟数字转换器。他有换器。他有 1818 个通道,可测量个通道,可测量1616 个外部和两个内部信号源。 个外部和两个内部信号源。

各通道的各通道的 A/DA/D 转换可以单次、连转换可以单次、连续、扫描或间断模式执行。续、扫描或间断模式执行。 ADADCC 的结果可以左对齐或右对齐的的结果可以左对齐或右对齐的方式存储在方式存储在 1616 位数据寄存器中。位数据寄存器中。

Page 15: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

基于基于 STM32STM32 的蓝牙、的蓝牙、 WiFiWiFi 模模块设计 块设计 嵌入式蓝牙模块设计 嵌入式蓝牙模块设计

设置主模块的设置主模块的 PIO0PIO0 为高或悬空,从模块的为高或悬空,从模块的 PIO0PIO0为低。为低。

设置两个模块的设置两个模块的 PIO2PIO2 、、 PIO3PIO3 、、 PIO4PIO4 、、 PIO5PIO5高低到对应的波特率,具体参考设置高低到对应的波特率,具体参考设置

串口通信波特率。 串口通信波特率。 设置两个模块的设置两个模块的 PIO6PIO6 、、 PIO7PIO7 、、 PIO8PIO8 、、 PIO9PIO9 、、

PIO10PIO10 、、 PIO11PIO11 相同的通道,不能为通道相同的通道,不能为通道 6464(即全高电平)。(即全高电平)。

模块上电,主模块则自动去查找该通道的从模块,模块上电,主模块则自动去查找该通道的从模块,此时主模块和从模块的此时主模块和从模块的 PIO1PIO1 脚都是输出为高低脚都是输出为高低脉冲。若连接成功之后,主从模块的脉冲。若连接成功之后,主从模块的 PIO1PIO1 管脚管脚输出为高电平,连接一个输出为高电平,连接一个 LED GREENLED GREEN 进行显示进行显示状态。 状态。

连接成功之后,两个模块两端就能进行串口数据连接成功之后,两个模块两端就能进行串口数据全双工通信了。全双工通信了。

Page 16: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

基于基于 STM32STM32 的蓝牙、的蓝牙、 WiFiWiFi 模模块设计块设计 嵌入式嵌入式 WiFiWiFi 模块设计模块设计

Page 17: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

STM32STM32 硬件接口、蓝牙和硬件接口、蓝牙和 WiFWiFii 通讯实验 通讯实验 STM32 LEDSTM32 LED 灯控制实验灯控制实验 STM32STM32 按键中断实验按键中断实验 STM32 A\DSTM32 A\D 转换实验转换实验 蓝牙组网配置实验蓝牙组网配置实验 WiFiWiFi 组网配置实验组网配置实验

Page 18: 基于 STM32 的嵌入式蓝牙与 WiFi 模块设计

思考题 思考题

STM32STM32 采用的是哪种采用的是哪种 CPUCPU 内核?实内核?实现了什么样的体系结构?现了什么样的体系结构?

简述简述 STM32STM32 处理器的外设接口的特处理器的外设接口的特点?点?

STM32STM32 的中断控制器有多少个中断源?的中断控制器有多少个中断源? S3TM32S3TM32 的的 A/DA/D 转换器的类型是什么?转换器的类型是什么? 嵌入式蓝牙模块硬件接口如何设计?嵌入式蓝牙模块硬件接口如何设计? 嵌入式嵌入式 WiFiWiFi 模块硬件接口如何设计?模块硬件接口如何设计?