STM32第14章.ppt_第1页
STM32第14章.ppt_第2页
STM32第14章.ppt_第3页
STM32第14章.ppt_第4页
STM32第14章.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、21天学嵌入式开发,第十四讲:同步串行通信接口,课程安排,SPI结构 SPI编程方法 I2C结构 I2C编程方法,SPI结构,STM32的SPI接口通过如下引脚和外部设备相连: MISO引脚 MOSI引脚 SCK引脚 NSS引脚,SPI从模式工作原理,配置SPI从模式的步骤如下: 设置DFF位以定义数据帧格式为8位或16位。 定义数据传输和串行时钟之间的相位关系。 帧格式必须和主设备相同,MSB在前还是LSB在前取决于SPI_CR1寄存器中的LSBFIRST位。 硬件模式下,在完整的数据帧(8位或16位)发送过程中,NSS引脚必须为低电平。软件模式下,设置SPI_CR1寄存器中的SSM位并清除

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

3、连到高电平,这些位才能保持置位。,SPI高级功能,SPI通信的CRC SPI的DMA通信 全双工模式 单工模式,SPI的中断请求,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 RES

4、ERVED5; vu16 TXCRCR;/SPI发送CRC寄存器 u16 RESERVED6; SPI_TypeDef;,SPI的编程方法,库函数: SPI_DeInit函数 SPI_Init函数 SPI_StructInit函数 SPI_Cmd函数 SPI_ITConfig函数 SPI_DMACmd函数 SPI_SendData函数 SPI_ReceiveData函数 SPI_NSSInternalSoftwareConfig函数 SPI_SSOutputCmd函数,SPI的编程方法 (续),库函数: SPI_DataSizeConfig函数 SPI_TransmitCRC函数 SPI_Ca

5、lculateCRC函数 SPI_GetCRC函数 SPI_GetCRCPolynomial函数 SPI_BiDirectionalLineConfig函数 SPI_GetFlagStatus函数 SPI_ClearFlag函数 SPI_GetITStatus函数 SPI_ClearITPendingBit函数,I2C结构,STM32内部集成了串行外设接口I2C I2C的主要特点 STM32的I2C接口具有如下4种工作模式: 从发送器模式 从接收器模式 主发送器模式 主接收器模式,I2C主要功能,I2C从模式工作原理 I2C主模式工作原理 SMBus功能 I2C的DMA功能 DMA发送 DMA

6、接收,I2C的中断请求,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;

7、 /I2C时钟控制寄存器 u16 RESERVED7; vu16 TRISE; /I2C上升时间寄存器 u16 RESERVED8; I2C_TypeDef;,I2C的编程方法,库函数: I2C_DeInit函数 I2C_Init函数 I2C_StructInit函数 I2C_Cmd函数 I2C_DMACmd函数 I2C_DMALastTransferCmd函数 I2C_GenerateSTART函数 I2C_GenerateSTOP函数 I2C_AcknowledgeConfig函数 I2C_OwnAddress2Config函数 I2C_DualAddressCmd函数 I2C_Gener

8、alCallCmd函数 I2C_ITConfig函数 I2C_SendData函数 I2C_ReceiveData函数 I2C_Send7bitAddress函数,I2C的编程方法 (续),库函数: I2C_ReadRegister函数 I2C_SoftwareResetCmd函数 I2C_SMBusAlertConfig函数 I2C_TransmitPEC函数 I2C_PECPositionConfig函数 I2C_CalculatePEC函数 I2C_GetPEC函数 I2C_ARPCmd函数 I2C_StretchClockCmd函数 I2C_FastModeDutyCycleConfig函数。 I2C_GetLa

温馨提示

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

评论

0/150

提交评论