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

同步串行通信接口


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



相关文章:
接口考试试题第5章(串行通信和8251)
接口考试试题第5章(串行通信和8251)_理学_高等教育_教育专区。一、选择题 1.若用 8251A 进行同步串行通信, 速率为 9600 波特, 问在 8251A 时钟引脚 TXC#和...
各种串口简介
串行接口简称串口,也称串行通信接口(通常指 COM 接口) ,是采用串行通信方式的扩展接 口。 串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。 1....
串行接口
6.8251 是可编程串行通信接口,它只能工作在异步通信方式下。 7.串行异步通信与同步通信的不同之处是分别适用于近距离和远距离通信。 三、填空题 1.传送 ASCII ...
Spi同步串口通信协议
SPI 接口规程目的 这篇文章说明了在单轴 SCA61T 和双轴 SCA100T 倾角仪中使用的 SPI 接口。 SPI 接口外围串行接口(SPI)是一种四线同步串行接口。数据通信在从...
路由器的异步和同步串行接口
路由器的异步和同步串行接口_信息与通信_工程科技_专业资料。路由器的异步和同步串行接口本文以 Cisco 路由器为例,介绍了路由器上常用接口的类型、特点和应用场合。...
串行通信接口
串行通信接口 4.4.1 一 基本概念 ⒈ 串行传送的特点 ①在一根传输线上即传送...(26H) SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验 同步码为专用二进制...
单片机串行通信接口设计
图 4 同步通信的数据格式 串行通信总线标准及其接口 在设计通信接口时,根据需要选择标准接口,并考虑传输介质、电平转换等 问题。根据传输距离不同,可以选择不同的...
串行接口与通信
串行接口与通信_计算机硬件及网络_IT/计算机_专业资料。串行接口与通信 ...二.串行通信方式串行通信:分为同步通信(SYNC)与异步通信(ASYNC)两种方式. 两 ...
通信接口协议综述
通信接口协议综述 (转载) ---(收集多处资料集合...同步串行通信 方式是指在相同的数据传送速率下,发送端和接受端的通信频率保持严格同步。由于不需要 使用起始...
接口RS232串口通信
年 6 月 5 日 串口通信 实验题目一、实验目的 1、了解 RS232 串口通信原理...原理图如下所示: 2、补充知识: 可编程串行接口芯片8251A:通用同步/异步接收/...
更多相关标签: