第六章基于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模块硬件接口如何设计?