当前位置:首页 >> 信息与通信 >>

同步串行通信接口


21天学嵌入式开发 天学嵌入式开发

第十四讲: 第十四讲:同步串行通信接口

北京源智天下科技有限公司

联系方式:http://www.rzchina.net

课程安排
SPI结构 结构 SPI编程方法 编程方法 I2C结构 结构 I2C编程方法 编程方法

北京源智天下科技有限公司
1-2

联系方式:http://www.rzchina.net

SPI结构 结构

STM32的SPI接口通过如下引脚和外部设备相连: 的 接口通过如下引脚和外部设备相连: 接口通过如下引脚和外部设备相连
– – – – MISO引脚 引脚 MOSI引脚 引脚 SCK引脚 引脚 NSS引脚 引脚

北京源智天下科技有限公司
1-3

联系方式:http://www.rzchina.net

SPI从模式工作原理 从模式工作原理
配置SPI从模式的步骤如下: 从模式的步骤如下: 配置 从模式的步骤如下
– 设置 设置DFF位以定义数据帧格式为 位或 位。 位以定义数据帧格式为8位或 位以定义数据帧格式为 位或16位 – 定义数据传输和串行时钟之间的相位关系。 定义数据传输和串行时钟之间的相位关系。 – 帧格式必须和主设备相同,MSB在前还是 在前还是LSB在前取决于 在前取决于SPI_CR1 帧格式必须和主设备相同, 在前还是 在前取决于 寄存器中的LSBFIRST位。 寄存器中的 位 – 硬件模式下,在完整的数据帧 位或 位)发送过程中,NSS引脚必 硬件模式下,在完整的数据帧(8位或 位或16位 发送过程中 发送过程中, 引脚必 须为低电平。软件模式下,设置SPI_CR1寄存器中的 寄存器中的SSM位并清除 须为低电平。软件模式下,设置 寄存器中的 位并清除 SSI位。 位 – 清除MSTR位,设置SPE位,使相应引脚工作于SPI模式下。 清除 位 设置 位 使相应引脚工作于 模式下。 模式下

北京源智天下科技有限公司
1-4

联系方式:http://www.rzchina.net

SPI主模式工作原理 主模式工作原理
配置SPI主模式的步骤如下: 主模式的步骤如下: 配置 主模式的步骤如下
设置SPI_CR1寄存器的 寄存器的BR[2:0]位,来定义串行时钟波特率。 设置 寄存器的 位 来定义串行时钟波特率。 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系。 选择 和 位 定义数据传输和串行时钟间的相位关系。 设置DFF位来定义 或16位数据帧格式。 位来定义8或 位数据帧格式 位数据帧格式。 设置 位来定义 配置SPI_CR1寄存器的 寄存器的LSBFIRST位定义帧格式。 位定义帧格式。 配置 寄存器的 位定义帧格式 如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间 引脚需要工作在输入模式, 如果 引脚需要工作在输入模式 应把NSS引脚连接到高电平;在软件模式中,需设置 引脚连接到高电平; 应把 引脚连接到高电平 在软件模式中,需设置SPI_CR1寄存器的 寄存器的 SSM和SSI位。如果 引脚工作在输出模式, 和 位 如果NSS引脚工作在输出模式,则只需设置 引脚工作在输出模式 则只需设置SSOE位。 位 – 设置 设置MSTR和SPE位,只当 引脚被连到高电平, 和 位 只当NSS引脚被连到高电平,这些位才能保持置 引脚被连到高电平 位。 – – – – –

北京源智天下科技有限公司
1-5

联系方式:http://www.rzchina.net

SPI高级功能 高级功能
SPI通信的 通信的CRC 通信的 SPI的DMA通信 的 通信
– 全双工模式 – 单工模式

北京源智天下科技有限公司
1-6

联系方式:http://www.rzchina.net

SPI的中断请求 的中断请求

北京源智天下科技有限公司
1-7

联系方式:http://www.rzchina.net

SPI寄存器结构 寄存器结构
typedef struct { vu16 CR1; // SPI控制寄存器1 u16 RESERVED0; vu16 CR2; // SPI控制寄存器2 u16 RESERVED1; vu16 SR; //SPI状态寄存器 u16 RESERVED2; vu16 DR; //SPI数据寄存器 u16 RESERVED3; vu16 CRCPR; //SPI CRC多项式寄存器 u16 RESERVED4; vu16 RXCRCR; //SPI接收CRC寄存器 u16 RESERVED5; vu16 TXCRCR; //SPI发送CRC寄存器 u16 RESERVED6; } SPI_TypeDef;

北京源智天下科技有限公司
1-8

联系方式:http://www.rzchina.net

SPI的编程方法 的编程方法
库函数: 库函数: – SPI_DeInit函数 函数 – SPI_Init函数 函数 – SPI_StructInit函数 函数 – SPI_Cmd函数 函数 – SPI_ITConfig函数 函数 – SPI_DMACmd函数 函数 – SPI_SendData函数 函数 – SPI_ReceiveData函数 函数 – SPI_NSSInternalSoftwareConfig函数 函数 – SPI_SSOutputCmd函数 函数

北京源智天下科技有限公司
1-9

联系方式:http://www.rzchina.net

SPI的编程方法 (续) 的编程方法 续
库函数: 库函数: – SPI_DataSizeConfig函数 函数 – SPI_TransmitCRC函数 函数 – SPI_CalculateCRC函数 函数 – SPI_GetCRC函数 函数 – SPI_GetCRCPolynomial函数 函数 – SPI_BiDirectionalLineConfig函数 函数 – SPI_GetFlagStatus函数 函数 – SPI_ClearFlag函数 函数 – SPI_GetITStatus函数 函数 – SPI_ClearITPendingBit函数 函数

北京源智天下科技有限公司
1-10

联系方式:http://www.rzchina.net

I2C结构 结构
STM32内部集成了串行外设接口 内部集成了串行外设接口I2C 内部集成了串行外设接口 I2C的主要特点 的主要特点 STM32的I2C接口具有如下 种工作模式: 的 接口具有如下4种工作模式: 接口具有如下 种工作模式
– – – – 从发送器模式 从接收器模式 主发送器模式 主接收器模式

北京源智天下科技有限公司
1-11

联系方式:http://www.rzchina.net

I2C主要功能 主要功能
I2C从模式工作原理 从模式工作原理 I2C主模式工作原理 主模式工作原理 SMBus功能 功能 I2C的DMA功能 的 功能
– DMA发送 发送 – DMA接收 接收

北京源智天下科技有限公司
1-12

联系方式:http://www.rzchina.net

I2C的中断请求 的中断请求

北京源智天下科技有限公司
1-13

联系方式:http://www.rzchina.net

I2C寄存器结构 寄存器结构
typedef struct { vu16 CR1; u16 RESERVED0; vu16 CR2; u16 RESERVED1; vu16 OAR1; u16 RESERVED2; vu16 OAR2; u16 RESERVED3; vu16 DR; u16 RESERVED4; vu16 SR1; u16 RESERVED5; vu16 SR2; u16 RESERVED6; vu16 CCR; u16 RESERVED7; vu16 TRISE; u16 RESERVED8; } I2C_TypeDef;

//I2C控制寄存器1 //I2C控制寄存器2 //I2C自身地址寄存器1 //I2C自身地址寄存器2 //I2C数据寄存器 //I2C状态寄存器1 //I2C状态寄存器2 //I2C时钟控制寄存器 //I2C上升时间寄存器

北京源智天下科技有限公司

联系方式:http://www.rzchina.net

I2C的编程方法 的编程方法
库函数: 库函数: – I2C_DeInit函数 函数 – I2C_Init函数 函数 – I2C_StructInit函数 函数 – I2C_Cmd函数 函数 – I2C_DMACmd函数 函数 – I2C_DMALastTransferCmd函数 函数 – I2C_GenerateSTART函数 I2C_GenerateSTART函数 – I2C_GenerateSTOP函数 函数 – I2C_AcknowledgeConfig函数 函数 – I2C_OwnAddress2Config函数 函数 – I2C_DualAddressCmd函数 函数 – I2C_GeneralCallCmd函数 函数 – I2C_ITConfig函数 函数 – I2C_SendData函数 函数 – I2C_ReceiveData函数 函数 – I2C_Send7bitAddress函数 函数

北京源智天下科技有限公司

联系方式:http://www.rzchina.net

I2C的编程方法 (续) 的编程方法
库函数: 库函数:
– – – – – – – – – – – – – – – – I2C_ReadRegister函数 函数 I2C_SoftwareResetCmd函数 函数 I2C_SMBusAlertConfig函数 函数 I2C_TransmitPEC函数 函数 I2C_PECPositionConfig函数 函数 I2C_CalculatePEC函数 函数 I2C_GetPEC函数 函数 I2C_ARPCmd函数 函数 I2C_StretchClockCmd函数 函数 I2C_FastModeDutyCycleConfig函数。 函数。 函数 I2C_GetLastEvent函数 函数 I2C_CheckEvent函数 函数 I2C_GetFlagStatus函数。 函数。 函数 I2C_ClearFlag函数 函数 I2C_GetITStatus函数 函数 I2C_ClearITPendingBit函数 函数 北京源智天下科技有限公司
联系方式:http://www.rzchina.net

性格决定命运, 性格决定命运 专注成就人生

www.rzchina.net 源智天下

北京源智天下科技有限公司

联系方式:http://www.rzchina.net


相关文章:
串行通信概述[1] 2
串行与并行之间的对比如图: 1 串行通信的特点 所谓串行,是指串行接口与外设之间...(2)同步、串行方式的数据格式 同步串行通信的数据格式为每个数据块(信息帧)由 ...
接口考试试题第5章(串行通信和8251)
接口考试试题第5章(串行通信和8251)_理学_高等教育_教育专区。一、选择题 1.若用 8251A 进行同步串行通信, 速率为 9600 波特, 问在 8251A 时钟引脚 TXC#和...
MSP430串口通信讲解_图文
如果没有同步时钟, 依靠严格的时间间隔来传输每一比特,则称为异步串行通信。MSP430 系列单片 机有两种串行通信接口,较早的 USART 模块和较新的 USCI 模块。 ...
串行通信接口
串行通信接口 4.4.1 一 基本概念 ⒈ 串行传送的特点 ①在一根传输线上即传送...(26H) SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验 同步码为专用二进制...
接口RS232串口通信
年 6 月 5 日 串口通信 实验题目一、实验目的 1、了解 RS232 串口通信原理...原理图如下所示: 2、补充知识: 可编程串行接口芯片8251A:通用同步/异步接收/...
串口通信发送接口 (LED)
串口通信发送接口 (LED)_工学_高等教育_教育专区。南通大学电子信息学院专用课题...端可以由各自 的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。...
各种串口简介
串行接口简称串口,也称串行通信接口(通常指 COM 接口) ,是采用串行通信方式的扩展接 口。 串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。 1....
串口是串行接口
串口是串行接口_电脑基础知识_IT/计算机_专业资料。串口是串行接口(serial port)...常用的两种基本串行通信方式包括同步通信和异步通信。 1.1 串行同步通信 同步...
单片机串行通信接口设计
图 4 同步通信的数据格式 串行通信总线标准及其接口 在设计通信接口时,根据需要选择标准接口,并考虑传输介质、电平转换等 问题。根据传输距离不同,可以选择不同的...
双机串口通讯
串行通讯又有两种基本方式, 异步通讯和同步通讯。异步通讯中 CPU 与外设之间 ...《微机原理与接口技术》课程设计说明书 LEA DX,SSHOW2 INT 21H JMP EXIT;...
更多相关标签: