嵌入式课程设计报告stm32

  • 格式:doc
  • 大小:788.00 KB
  • 文档页数:36

下载文档原格式

  / 36
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式技术与应用

课程设计报告

题目STM32I2C固件库分析与应用学院

专业班级

姓名学号

指导教师

年月日

教师评语:

总分:教师签名:

目录

1 I2C接口

1.1介绍

1.2主要特点

1.3概述

1.4功能描述

1.4.1I2C从模式

1.4.2I2C主模式

1.4.3错误条件

1.4.4SDA/SCL线控制

1.4.5SMBus

1.4.6DMA请求

1.4.7包错误校验(PEC)

1.5 中断请求

1.6 内部集成电路(I2C)

1.6.1 I2C寄存器结构

1.6.2 I2C库函数

1.6.

2.1 函数I2C_DeInit .

1.6.

2.2 函数I2C_ Init

1.6.

2.3 函数I2C_ StructInit

1.6.

2.4 函数I2C_ Cmd

1.6.

2.5 函数I2C_ DMACmd

1.6.

2.6 函数I2C_ DMALastTransferCmd

1.6.

2.7 函数I2C_ GenerateSTART

1.6.

2.8 函数I2C_ GenerateSTOP

1.6.

2.9 函数I2C_ AcknowledgeConfig

1.6.

2.10 函数I2C_ OwnAddress2Config

1.6.

2.11 函数I2C_ DualAddressCmd

1.6.

2.12 函数I2C_ GeneralCallCmd

1.6.

2.13 函数I2C_ ITConfig

1.6.

2.14 函数I2C_ SendData

1.6.

2.15 函数I2C_ ReceiveData

1.6.

2.16 函数I2C_ Send7bitAddress

1.6.

2.17 函数I2C_ ReadRegister

1.6.

2.18 函数I2C_ SoftwareResetCmd

1.6.

2.19 函数I2C_ SMBusAlertConfig

1.6.

2.20 函数I2C_ TransmitPEC

1.6.

2.21 函数I2C_ PECPositionConfig

1.6.

2.22 函数I2C_ CalculatePEC

1.6.

2.23 函数I2C_ GetPEC

1.6.

2.24 函数I2C_ ARPCmd

1.6.

2.25 函数I2C_ StretchClockCmd

1.6.

2.26 函数I2C_ FastModeDutyCycleConfig

1.6.

2.27 函数I2C_ GetLastEvent

1.6.

2.29 函数I2C_ GetFlagStatus

1.6.

2.30 函数I2C_ ClearFlag

1.6.

2.31 函数I2C_ GetITStatus

1.6.

2.32 函数I2C_ ClearITPendingBi

1 2C接口

1.1 介绍

I2C 总线接口连接微控制器和串行I2C 总线。它提供多主机功能,控制所有I2C 总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与SMBus2.0 兼容。I2C 总线有多种用途,包括CRC 码的生成和校验、SMBus(系统管理总线SystemManagement Bus)、PMBus(电源管理总线Power Management Bus)。根据特定设备的需要,可以使用DMA 以减轻CPU 的负担。

1.2 主要特点

● 并行总线/I2C 总线协议转换器

● 多主机功能:同一接口既可做主设备也可做从设备

● I2C 主设备功能

−产生时钟

−产生起始和停止信号

● I2C 从设备功能

−可编程的I2C 地址检测

−可响应2 个从地址的双地址能力

−停止位检测

● 产生和检测7 位/10 位地址和广播呼叫

● 支持不同的通讯速度

−标准速度(高至100 kHz)

−快速(高至400 kHz)

● 状态标志:

−发送器/接收器模式标志

−字节发送结束标志

− I2C 总线忙标志

● 错误标志

−主模式时的仲裁丢失

−地址/数据传输后的应答(ACK)错误

−检测到起始和停止错位

−禁止拉长时钟功能后的上溢或下溢

● 2 个中断向量

− 1 个中断用于地址/数据通讯成功

− 1 个中断用于出错

● 可选的拉长时钟功能

● 具单字节缓冲器的DMA

● 可配置的PEC(信息包错误检测)的产生或校验:

−发送模式中PEC 值可以作为最后一个字节传输

−用于最后一个接收字节的PEC 错误校验

● 兼容SMBus 2.0

− 25 ms 时钟低超时延时

− 10 ms 主设备累积时钟低扩展时间

− 25 ms 从设备累积时钟低扩展时间

−带ACK 控制的硬件PEC 产生/校验

−支持地址分辨协议(ARP)

● 兼容SMBus

注意不是所有产品中都包含上述所有特性。请参考相关的数据手册,确认该产品支持的I2C 功能。

1.3 概述

I2C 接口接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C 总线。允许连接到标准(高至100 kHz)或快速(高至400 kHz)I2C 总线。

模式选择

接口可以下述4 种模式中的一种运行:

● 从发送器模式

● 从接收器模式

● 主发送器模式

● 主接收器模式

默认模式为从模式。接口在生成起始条件后自动从从模式切换到主模式;当仲裁丢失或产生停止信号,则从主模式切换到从模式。允许多主机功能。

通信流

主模式时,I2C 接口启动数据传输并产生时钟信号。串行数据传输总是以起始条件开始和停止条件结束。主模式时,由软件控制产生起始条件和停止条件。

从模式时,I2C 接口能识别它自己的地址(7 位或10 位)和广播呼叫地址。软件控制开启或禁止广播呼叫地址的识别。数据和地址按8 位/字节进行传输,高位在前。跟在起始条件后的第一、二个字节是地址(7 位模式为1 个字节,10 位模式为2 个字节)。地址只在主模式发送。在一个字节传输的8 个时钟后的第9 个时钟期间,接收器必须回送一个应答位(ACK)给发送器。参考下图。