第十四讲:同步串行通信接口_第1页
第十四讲:同步串行通信接口_第2页
第十四讲:同步串行通信接口_第3页
第十四讲:同步串行通信接口_第4页
第十四讲:同步串行通信接口_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、联系方式:http:/北京源智天下科技有限公司21天学嵌入式开发天学嵌入式开发第十四讲:同步串行通信接口第十四讲:同步串行通信接口 1-2北京源智天下科技有限公司联系方式:http:/课程安排课程安排SPI结构结构 SPI编程方法编程方法 I2C结构结构 I2C编程方法编程方法 联系方式:http:/北京源智天下科技有限公司SPI结构结构STM32的的SPI接口通过如下引脚和外部设备相连:接口通过如下引脚和外部设备相连: MISO引脚引脚 MOSI引脚引脚 SCK引脚引脚 NSS引脚引脚 联系方式:http:/北京源智天下科技有限公司SPI从模式工作原理从模式工作原理 配置配置SPI从模式的步

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

3、位,设置位,设置SPE位,使相应引脚工作于位,使相应引脚工作于SPI模式下。模式下。 联系方式:http:/北京源智天下科技有限公司SPI主模式工作原理主模式工作原理 配置配置SPI主模式的步骤如下:主模式的步骤如下: 设置设置SPI_CR1寄存器的寄存器的BR2:0位,来定义串行时钟波特率。位,来定义串行时钟波特率。 选择选择CPOL和和CPHA位,定义数据传输和串行时钟间的相位关系。位,定义数据传输和串行时钟间的相位关系。 设置设置DFF位来定义位来定义8或或16位数据帧格式。位数据帧格式。 配置配置SPI_CR1寄存器的寄存器的LSBFIRST位定义帧格式。位定义帧格式。 如果如果NSS

4、引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把应把NSS引脚连接到高电平;在软件模式中,需设置引脚连接到高电平;在软件模式中,需设置SPI_CR1寄存器的寄存器的SSM和和SSI位。如果位。如果NSS引脚工作在输出模式,则只需设置引脚工作在输出模式,则只需设置SSOE位。位。 设置设置MSTR和和SPE位,只当位,只当NSS引脚被连到高电平,这些位才能保持置引脚被连到高电平,这些位才能保持置位。位。 联系方式:http:/北京源智天下科技有限公司SPI高级功能高级功能 SPI通信的通信的CRC SPI的的DMA通信通信 全双工模

5、式全双工模式 单工模式单工模式 联系方式:http:/北京源智天下科技有限公司SPI的中断请求的中断请求 联系方式:http:/北京源智天下科技有限公司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

6、接收CRC寄存器 u16 RESERVED5; vu16 TXCRCR;/SPI发送CRC寄存器 u16 RESERVED6; SPI_TypeDef;联系方式:http:/北京源智天下科技有限公司SPI的编程方法的编程方法 库函数:库函数: SPI_DeInit函数函数 SPI_Init函数函数 SPI_StructInit函数函数 SPI_Cmd函数函数 SPI_ITConfig函数函数 SPI_DMACmd函数函数 SPI_SendData函数函数 SPI_ReceiveData函数函数 SPI_NSSInternalSoftwareConfig函数函数 SPI_SSOutputCmd函

7、数函数联系方式:http:/北京源智天下科技有限公司SPI的编程方法的编程方法 (续续)库函数:库函数: SPI_DataSizeConfig函数函数 SPI_TransmitCRC函数函数 SPI_CalculateCRC函数函数 SPI_GetCRC函数函数 SPI_GetCRCPolynomial函数函数 SPI_BiDirectionalLineConfig函数函数 SPI_GetFlagStatus函数函数 SPI_ClearFlag函数函数 SPI_GetITStatus函数函数 SPI_ClearITPendingBit函数函数 联系方式:http:/北京源智天下科技有限公司I2

8、C结构结构 STM32内部集成了串行外设接口内部集成了串行外设接口I2C I2C的主要特点的主要特点STM32的的I2C接口具有如下接口具有如下4种工作模式:种工作模式: 从发送器模式从发送器模式 从接收器模式从接收器模式 主发送器模式主发送器模式 主接收器模式主接收器模式 联系方式:http:/北京源智天下科技有限公司I2C主要功能主要功能 I2C从模式工作原理从模式工作原理 I2C主主模式工作原理模式工作原理 SMBus功能功能 I2C的的DMA功能功能 DMA发送发送 DMA接收接收 联系方式:http:/北京源智天下科技有限公司I2C的中断请求的中断请求 联系方式:http:/北京源智

9、天下科技有限公司I2C寄存器结构寄存器结构 typedef struct vu16 CR1;/I2C控制寄存器1 u16 RESERVED0; vu16 CR2; /I2C控制寄存器2 u16 RESERVED1; vu16 OAR1; /I2C自身地址寄存器1 u16 RESERVED2; vu16 OAR2; /I2C自身地址寄存器2 u16 RESERVED3; vu16 DR; /I2C数据寄存器 u16 RESERVED4; vu16 SR1; /I2C状态寄存器1 u16 RESERVED5; vu16 SR2; /I2C状态寄存器2 u16 RESERVED6; vu16 CCR

10、; /I2C时钟控制寄存器 u16 RESERVED7; vu16 TRISE; /I2C上升时间寄存器 u16 RESERVED8; I2C_TypeDef; 联系方式:http:/北京源智天下科技有限公司I2C的编程方法的编程方法 库函数:库函数:I2C_DeInit函数函数I2C_Init函数函数I2C_StructInit函数函数I2C_Cmd函数函数I2C_DMACmd函数函数I2C_DMALastTransferCmd函数函数I2C_GenerateSTART函数函数I2C_GenerateSTOP函数函数I2C_AcknowledgeConfig函数函数I2C_OwnAddres

11、s2Config函数函数I2C_DualAddressCmd函数函数I2C_GeneralCallCmd函数函数I2C_ITConfig函数函数I2C_SendData函数函数I2C_ReceiveData函数函数I2C_Send7bitAddress函数函数联系方式:http:/北京源智天下科技有限公司I2C的编程方法的编程方法 (续)(续)库函数:库函数:I2C_ReadRegister函数函数I2C_SoftwareResetCmd函数函数I2C_SMBusAlertConfig函数函数I2C_TransmitPEC函数函数I2C_PECPositionConfig函数函数I2C_CalculatePEC函数函数I2C_GetPEC函数函数I2C_ARPCmd函数函数I2C_StretchClockCmd函数函数I2C_FastModeDutyCycleConfig函数。函数。I2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论