嵌入式课程设计报告stm32
- 格式:doc
- 大小:788.00 KB
- 文档页数:36
嵌入式技术与应用
课程设计报告
题目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)给发送器。参考下图。