基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章

上传人:E**** 文档编号:89108614 上传时间:2019-05-18 格式:PPT 页数:49 大小:3.55MB
返回 下载 相关 举报
基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章_第1页
第1页 / 共49页
基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章_第2页
第2页 / 共49页
基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章_第3页
第3页 / 共49页
基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章_第4页
第4页 / 共49页
基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章》由会员分享,可在线阅读,更多相关《基于ARM的单片机应用及实践 STM32案例式教学 武奇生第九章(49页珍藏版)》请在金锄头文库上搜索。

1、第九章 STM32 外设接口模块,STM32 外设接口模块,基于 Cortex-M3 的 STM32 系列微控制器具有丰富的外设资源。在工业应用场合、建筑安防、低功耗应用以及消费类电子产品中有着广泛的应用场景。 本章主要就 STM32 微控制器中的USART 模块、SPI 模块、I2C 模块、CAN 模块以及 USB 模块进行了深入浅出的介绍。对每一个模块的操作都配合开发板设计了丰富的例程。,9.1 USART 模块,USART: (Universal Synchronous/Asynchronous Receiver / Transmitter)即通用同步/异步串行接收/发送器是一个全双工通

2、用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。 USART 收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。控制寄存器为所有的模块共享。,9.1 USART 模块,时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。,发送时钟引脚 XCK 仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送 UDR)、一个串行移位寄存器、校验位发生器和用于处理不同帧结构的控制逻辑电路构成。,接收器是 USART 模块最复杂的部分,最主要的是时钟和数据接收单元,此外还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收 UDR)。 接收器支持

3、与发送器相同的帧结构,同时支持帧错误、数据溢出和校验错误的检测,并实现了连续发送多帧数据无延时的通信。 数据接收单元用作异步数据的接收。,9.1 USART 模块,9.1 USART 模块,几种实物图,9.1.1 USART 功能概述,通用同步异步收发器( USART)提供了一种灵活的方法来与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART结构框图如图9.1所示。它支持同步一路通信和半双工的单线通信,LIN,智能卡协议,IrDA和调制解调器操作( CTS/RTS);允许多处理器通信,可以进行高速的数据通信。,任何USART双向通信都至少需要两个引脚:接收数据输入

4、( RX)和发送数据输出( TX)。 RX:接收数据输入是串行数据输入。采用过采样技术来区分有效输入数据和噪音,从而恢复数据。 TX:发送数据输出。当发送器禁能的时候,输出引脚恢复到I/O 端口配置。当发送器使能的时候并且没有数据要发送,TX引脚是高电平。,9.1.1 USART 功能概述,9.1.1 USART 功能概述,通过这些引脚,在正常USART模式下,串行数据作为帧发送和接收。包括: 总线在发送或接收前应处于空闲状态 一个起始位 一个数据字( 8位或者9位) ,最低有效位在前2个停止位,由此表明数据帧的结束。 使用分数波特率产生器带12位整数和4位小数,9.1.1 USART 功能概

5、述, 一个状态寄存器(USART_SR) 数据寄存器(USART_DATA) 波特率寄存器(USART_BRR) 带12位尾数和4位小数 智能卡模式下的保护时间寄存器( USART_GTPR),STM32 外设接口模块,在同步模式中需要下列引脚: SCLK: 发送器时钟输出。 在IrDA模式中需要下列引脚: IrDA_RDI:数据输入就是IrDA模式下的数据输入。 IrDA_TDO: IrDA模式下的数据输出。 在调制解调器模式中需要下列引脚: nCTS: 清除发送 nRTS: 发送请求,STM32 外设接口模块,USART结构框图,9.1.2 USART寄存器简介,串口最基本的设置,就是波特

6、率的设置。STM32 的串口使用起来非常简单的,只要开启了串口时钟,并设置相应 IO 口的模式,然后配置一下波特率,数据位长度,奇偶校验位等信息, 就可以使用了。,9.1.3 USART 操作实例,本实验介绍的是通过串口和计算机通信。 复用功能的 IO 设置步骤: 1.使能 GPIO 时钟 2.使能复用功能时钟,同时要把 GPIO模式设置为复用功能对应的模式。 3.进行串口参数的设置,包括波特率、停止位等参数。设置完成后使能串口。如果开启了串口的中断,要初始化 NVIC、设置中断优先级别; 4.编写中断服务函数。,STM32 外设接口模块,串口设置一般可以总结为如下几个步骤: 1、串口时钟使能

7、, GPIO 时钟使能 2、串口复位 3、GPIO 端口模式设置 4、串口参数初始化 5、开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤) 6、使能串口 7、编写中断处理函数,STM32 外设接口模块,实验用电路板串口电路原理图,1.硬件连接 电路硬件连接如下图 所示。,STM32 外设接口模块,2.软件编程步骤 步骤一:添加库函数,编写用户函数。 步骤二:系统时钟配置。 main.c文件中SystemInit()函数配置系统时钟为72M。 步骤三:串口初始化。 步骤四:串口数据输出。 步骤五:打开串口调试助手。,9.2 SPI模块,SPI是英语 Serial Periphera

8、l interface的缩写,即串行外围设备接口。它是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时在PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议, STM32也有SPI接口。 SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。,SPI的功能框图如下图所示。,9.2.2 SPI功能描述,一个基本的单主单从的连接例子如下图所示。,9.2 SPI模块,如图9.5所示,可以通过SPI_CR1寄存器中的SSM位来配置。在

9、软件管理中,外部NSS引脚对其他的应用来说是自由的,可以作为它用,而内部NSS信号电平通过SPI_CR1寄存器中的SSI位来驱动。,图 9.5 硬件/软件从选择管理,9.2 SPI模块,主从时序图,9.2 SPI模块,9.2.3 SPI 配置简介,STM32的SPI功能很强大,SPI时钟最多可以到18Mhz,支持DMA,可以配置为SPI协议或者I2S协议。 STM32的主模式配置步骤如下: 1)配置相关引脚的复用功能,使能SPI1时钟。 2)设置SPI1工作模式。 3)使能SPI1。,9.2.4 SPI 操作实例,STM32 开发板 SPI 硬件原理图如下图所示,实验结果:,9.2 SPI模块

10、,9.3 I2C 模块,I2C (Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。 I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。其中,起始信号是必需的,结束信号和应答信号都可以不要。,9.3.2 I2C 功能描述,除了发送和接收数据,接口还要把数据从串行转化为并行,反之亦然。中断由软件使能或者禁能。接口通过数据引脚

11、(SDA)和时钟引脚(SCL)连接到I2C总线,可以连接到标准(100KHz)或者快速(400KHz)的I2C总线。 接口可以是在下面四种模式下工作: 从发送模式 从接收模式 主发送模式 主接收模式 默认情况下,接口处于从模式。,9.3.2 I2C 功能描述,通信流在主模式下,I2C接口启动一次数据传输并且产生时钟信号。一次串行数据传输都是以起始条件开始并且以结束操作条件结束。起始条件和结束操作条件都是在主模式下由软件产生的。在从模式下,接口能够识别自己的地址(7位或者10位)和广播地址。,软件可以使能或禁能应答(ACK),I2C接口的地址(7位、10位地址或广播呼叫地址)可通过软件设置。I2

12、C接口的结构图如图9.9所示。,9.3.2 I2C 功能描述,9.3.3 I2C 配置简介,本开发板 I2C-EEPROM 硬件原理图如下图所示:,正确编写源程序并下载后,打开串口调试助手,选择正确的串口号,将波特率设置为115200,复位单片机即可观察到如下结果。,9.3 I2C 模块,9.4 CAN 总线模块,CAN 是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH 公司开发,并最终成为国际标准。是国际上应用最广泛的现场总线之一。 近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机

13、控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。,时间触发通信模式 可关闭自动重发模式 16位自由运行定时器 可配置的定时器精度 最后两个数据字节中发送的时间戳管理 可屏蔽的中断 邮箱占用单独一块地址空间,便于提高软件效率。 注意:USB和CAN共享一个512字节的SRAM存储器用于数据发送和接收,因此它们不能够同时使用(CAN和USB对SRAM的访问是互斥的)。USB和CAN可以用于同样的应用中,但是不能够同时使用。,9.4 CAN 总线模块,主要特性: 支持2.0A,2.0B版本CAN协议 高达1M/S的比特率 支持时间触发通信功能发送 三个发送邮箱 可软件配置的发送优先级 记录发送

14、 SOF 时刻的时间戳接收 3级深度的2个接收FIFO 管道 14个可扩展过滤阵列-整个CAN共享 标识符列表 可配置的FIFO管道溢出处理 记录接收SOF的时间戳,9.4 CAN 总线模块,CAN网络拓扑图如下图所示。,9.4 CAN 总线模块,bxCAN模块全自动处理CAN报文的发送和接收。硬件对标准标识符(11位)和扩展标识符(29位)都支持。 应用程序通过这些寄存器,可以: 配置CAN参数,例如波特率 请求发送报文 处理报文接收 管理中断 取得诊断信息,9.4 CAN 总线模块,发送报文的流程为: 1、应用程序选择 1 个空发送邮箱; 2、设置标识符、数据长度和待发送数据;CAN_TI

15、xR 寄存器的TXRQ 位置1,来请求发送。 3、TXRQ 位置1后,邮箱马上进入挂号状态,并等待成为最高优先级的邮箱。 4、邮箱成为最高优先级的邮箱,其状态就变为预定发送状态。 5、当CAN 总线进入空闲状态,预定发送邮箱中的报文就马上被发送(进入发送状态)。 6、邮箱中的报文被成功发送后,它马上变为空邮箱,硬件相应地对CAN_TSR 寄存器的RQCP 和TXOK 位置1,来表明一次成功发送。,9.4 CAN 总线模块,发送的优先级可以由标识符或发送请求次序决定: 1)由标识符决定。 2)由发送请求次序决定。 时间触发通信模式: 在该模式下,CAN 硬件的内部定时器被激活,并且被用于产生时间

16、戳,分别存储在CAN_RDTxR/CAN_TDTxR 寄存器中。内部定时器在接收和发送的帧起始位的采样点位置被采样,并生成时间戳。,9.4 CAN 总线模块,bxCAN 占用4 个专用的中断向量。通过设置CAN 中断允许寄存器CAN_IER,每个中断源都可以单独允许和禁用 (1) 发送中断可由下列事件产生: 发送邮箱0 变为空,CAN_TSR 寄存器的RQCP0 位被置1。 发送邮箱1 变为空,CAN_TSR 寄存器的RQCP1 位被置1。 发送邮箱2 变为空,CAN_TSR 寄存器的RQCP2 位被置1。 (2) FIFO0 中断可由下列事件产生: FIFO0 接收到一个新报文,CAN_RF0R 寄存器的FMP0 位不再是00。 FIFO0 变为满的情况,CAN_RF0R 寄存器的FULL0 位被置1。 FIFO0 发生溢出的情况,CAN_RF0R 寄存器的FOVR0 位被置1。,9.4 CAN 总线模块,(3) FIF

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号