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

Download Report

Transcript 第六章基于STM32的嵌入式蓝牙与WiFi模块设计

基于STM32的嵌入式蓝
牙与WiFi模块设计
交通物联网应用技术
教学目的


介绍32位ARM STM32系统的硬
件设计,分别介绍I/O口、中断、
DMA、UART、A/D等接口的硬
件设计要点和特性
掌握嵌入式系统中蓝牙、WiFi无
线组网通讯模块的软硬件设计方
法及应用
32位ARM处理器STM32简介
STM32处理器的特点



STM32F103系列微处理器是首款基于
ARMv7- M体系结构的32位标准RISC
(精简指令集)处理器。
作为最新一代的嵌入式ARM 处理器,
它为实现MCU 的需要提供了低成本
的平台、缩减的引脚数目、降低的系
统功耗,同时提供了卓越的计算性能
和先进的中断响应系统。
32位ARM处理器STM32简介
STM32硬件接口外设







多达51个快速I /O 端口
2个12位模数转换器,多达16个外部
输入通道
灵活的7路通用DMA 可以管理存储器
到存储器、设备到存储器和存储器到
设备的数据传输
调试模式
内部包含多达7个定时器
含有丰富的通信接口
32位ARM处理器STM32简介

STM32的时钟和电源管理

在STM32中,有五个时钟源






HIS
HSE
LSI
LSE
PLL
STM32的电源组成,其主要由3个部分



独立的A/D供电电压和参考电压
备份电压
电压调节器。
I/O口

STM32的I/O口工作原理

STM32的输入输出管脚有下面8种可能的
配置 :








浮空输入_IN_FLOATING
带上拉输入_IPU
带下拉输入_IPD
模拟输入_AIN
开漏输出_OUT_OD
推挽输出_OUT_PP
复用功能的推挽输出_AF_PP
复用功能的开漏输出_AF_OD
I/O口
I/O口编程实例



函数GPIO_DeInit
功能描述:将外设GPIOx寄存器重设为缺省值



函数GPIO_AFIODeInit
功能描述:将复用功能(重映射事件控制和EXTI设置)重设为缺省值



函数GPIO_Init
功能描述:根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器



函数GPIO_StructInit
功能描述:把GPIO_InitStruct中的每一个参数按缺省值填入



函数GPIO_ReadInputDataBit
功能描述:读取指定端口管脚的输入



函数GPIO_ReadInputData
功能描述:读取指定的GPIO端口输入



函数GPIO_ReadOutputDataBit
功能描述:读取指定端口管脚的输出
中断

ARM的中断原理

ARM cortex_m3 内核支持 256 个中断
(16 个内核+240 外部)和可编程 256
级中断优先级的设置,与其相关的中断
控制和中断优先级控制寄存器(NVIC、
SYSTICK 等)也都属于cortex_m3 内核
的部分。STM32 采用了cortex_m3 内核,
所以这部分仍旧保留使用,但 STM32并
没有使用 cortex_m3 内核全部的东西
(如内存保护单元 MPU 等),因此它的
NVIC 是cortex_m3 内核的 NVIC 的子集。
中断

STM32的中断控制器
STM32 目前支持的中断共为 84个
(16 个内核+68个外部),和16
级可编程中断优先级的设置。
 STM32 可以支持的 68 个外部中断
通道,已经固定的分配给相应的外
部设备 。

中断

中断编程实例
UART

UART的工作原理



UART是一种通用串行数据总线,用于异
步通信。该总线双向通信,可以实现全
双工传输和接收。
在嵌入式设计中,UART用来与PC进行
通信
其过程为:CPU先把准备写入串行设备
的数据放到UART的寄存器(临时内存块)
中,再通过FIFO(First Input First
Output,先入先出队列)传送到串行设
备
UART
STM32的UART


STM32的可提供5路串口,有分
数波特率发生器、支持单线光通
信和半双工单线通讯、支持LIN、
智能卡协议和IrDA SIR ENDEC
规范(仅串口3支持)、具有
DMA等
A/D接口

A/D接口原理


模数转换则是将模拟电量转换为数字量,
使输出的数字量与输入的模拟电量成正
比。
在A/D转换中,因为输入的模拟信号在时
间上是连续的,而输出的数字信号是离
散量,所以进行转换时只能按一定的时
间间隔对输入的模拟信号进行采样,然
后再把采样值转换为输出的数字量。通
常A/D转换需要经过采样、保持量化、编
码四个步骤。
A/D接口
STM32的A/D转换



STM32处理器自带的12位ADC
是一种逐次逼近型模拟数字转换
器。他有18个通道,可测量16
个外部和两个内部信号源。
各通道的A/D转换可以单次、连
续、扫描或间断模式执行。
ADC的结果可以左对齐或右对
齐的方式存储在16位数据寄存器
中。
基于STM32的蓝牙、WiFi模块
设计

嵌入式蓝牙模块设计






设置主模块的PIO0为高或悬空,从模块的PIO0
为低。
设置两个模块的PIO2、PIO3、PIO4、PIO5高低
到对应的波特率,具体参考设置
串口通信波特率。
设置两个模块的PIO6、PIO7、PIO8、PIO9、
PIO10、PIO11相同的通道,不能为通道64(即
全高电平)。
模块上电,主模块则自动去查找该通道的从模块,
此时主模块和从模块的PIO1脚都是输出为高低脉
冲。若连接成功之后,主从模块的PIO1管脚输出
为高电平,连接一个LED GREEN进行显示状态。
连接成功之后,两个模块两端就能进行串口数据
全双工通信了。
基于STM32的蓝牙、WiFi模块
设计

嵌入式WiFi模块设计
STM32硬件接口、蓝牙和WiFi
通讯实验





STM32 LED灯控制实验
STM32按键中断实验
STM32 A\D转换实验
蓝牙组网配置实验
WiFi组网配置实验
思考题






STM32采用的是哪种CPU内核?实现
了什么样的体系结构?
简述STM32处理器的外设接口的特点?
STM32的中断控制器有多少个中断源?
S3TM32的A/D转换器的类型是什么?
嵌入式蓝牙模块硬件接口如何设计?
嵌入式WiFi模块硬件接口如何设计?