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

同步串行通信接口


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


相关文章:
Spi同步串口通信协议
SPI 接口规程目的 这篇文章说明了在单轴 SCA61T 和双轴 SCA100T 倾角仪中使用的 SPI 接口。 SPI 接口外围串行接口(SPI)是一种四线同步串行接口。数据通信在从...
串行通信及接口电路
第九章 串行通信接口电路一. 串行通信的基本概念 1.异步通信方式信息传输格式...(1)单同步 同步字 (2)双同步 同步字 (3)外同步 数据字 外同步信号 ? ?...
串行通信接口
串行通信接口 4.4.1 一 基本概念 ⒈ 串行传送的特点 ①在一根传输线上即传送...(26H) SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验 同步码为专用二进制...
接口考试试题第5章(串行通信和8251)
接口考试试题第5章(串行通信和8251)_理学_高等教育_教育专区。一、选择题 1.若用 8251A 进行同步串行通信, 速率为 9600 波特, 问在 8251A 时钟引脚 TXC#和...
串口通信发送接口 (LED)
串口通信发送接口 (LED)_工学_高等教育_教育专区。南通大学电子信息学院专用课题...端可以由各自 的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。...
路由器的异步和同步串行接口
路由器的异步和同步串行接口_信息与通信_工程科技_专业资料。路由器的异步和同步串行接口本文以 Cisco 路由器为例,介绍了路由器上常用接口的类型、特点和应用场合。...
串口是串行接口
串口是串行接口_电脑基础知识_IT/计算机_专业资料。串口是串行接口(serial port)...常用的两种基本串行通信方式包括同步通信和异步通信。 1.1 串行同步通信 同步...
串口通讯方法的三种实现
因此采用 RS-232 总线进行异步通信是,发送端和接受端 要有一个电平转换接口。...之外,其余的方法 都是同步调用,即,方法调用时,线程将被阻塞,直到缓冲区有相应...
串行通信概述[1] 2
串行与并行之间的对比如图: 1 串行通信的特点 所谓串行,是指串行接口与外设之间...(2)同步、串行方式的数据格式 同步串行通信的数据格式为每个数据块(信息帧)由 ...
各种串口简介
串行接口简称串口,也称串行通信接口(通常指 COM 接口) ,是采用串行通信方式的扩展接 口。 串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。 1....
更多相关标签:
串行通信接口 | 同步串行通信 | 同步串行接口 | ssi同步串行接口 | 串行同步通信hdlc bsc | 串行通信发送接口 | sci串行通信接口 | 串行通信接口标准 |