第十四讲:同步串行通信接口解读.pptVIP

  • 17
  • 0
  • 约2.87千字
  • 约 17页
  • 2016-11-03 发布于湖北
  • 举报
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位并清除SSI位。 清除MSTR位,设置SPE位,使相应引脚工作于SPI模式下。 SPI主模式工作原理 配置SPI主模式的步骤如下: 设置SPI_CR1寄存器的BR[2:0]位,来定义串行时钟波特率。 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系。 设置DFF位来定义8或16位数据帧格式。 配置SPI_CR1寄存器的LSBFIRST位定义帧格式。 如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把NSS引脚连接到高电平;在软件模式中,需设置SPI_CR1寄存器的SSM和SSI位。如果NSS引脚工作在输出模式,则只需设置SSOE位。 设置MSTR和SPE位,只当NSS引脚被连到高电平,这些位才能保持置位。 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 RESERVED5; 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_CalculateCRC函数 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接收 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

文档评论(0)

1亿VIP精品文档

相关文档