STM32的SPI及IIC

本文详细介绍了STM32如何配置和使用SPI及IIC接口,包括SPI驱动OLED屏幕的时序图讲解和IIC驱动MPU6050的配置步骤。内容涵盖SPI和IIC的引脚定义、通讯协议、时钟配置以及核心读取程序。
摘要由CSDN通过智能技术生成

1.SPI的配置方法

 

2.IIC的配置方法

IIC通信协议(Inter-Intergrated Circuit)是由Philips公司开发的,由于它的引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,现在被广泛地用于系统内多个集成电路(IIC)间的通信。

STM32 的 I2C 外设可用作通讯的主机及从机,支持 100Kbit/s 和 400Kbit/s 的速率,支持 7 位、10 位设备地址,支持 DMA 数据传输,并具有数据校验功能。

SCL 线的时钟信号,由 I2C 接口根据时钟控制寄存器(CCR)控制,控制的参数主要为时钟频率。配置 I2C 的 CCR 寄存器可修改通讯速率相关的参数:可选择 I2C 通讯的“标准/快速”模式,这两个模式分别 I2C 对应 100/400Kbit/s 的通讯速率。
在快速模式下可选择 SCL 时钟的占空比,可选 Tlow/Thigh=2 或Tlow/Thigh=16/9模式,我们知道 I2C 协议在 SCL 高电平时对 SDA 信号采样,SCL 低电平时 SDA准备下一个数据,修改 SCL 的高低电平比会影响数据采样,但其实这两个模式的比例差别并不大,若不是要求非常严格,这里随便选就可以了。
CCR 寄存器中还有一个 12 位的配置因子 CCR,它与 I2C 外设的输入时钟源共同作用,产生 SCL 时钟,STM32 的 I2C 外设都挂载在 APB1 总线上,使用 APB1 的时钟源 PCLK1,SCL 信号线的输出时钟公式如下:
标准模式:
Thigh=CCRTPCKL1 Tlow = CCRTPCLK1
快速模式中 Tlow/Thigh=2 时:
Thigh = CCRTPCKL1 Tlow = 2CCRTPCKL1
快速模式中 Tlow/Thigh=16/9 时:
Thigh = 9CCRTPCKL1 Tlow = 16CCRTPCKL1
例如,我们的 PCLK1=36MHz,想要配置 400Kbit/s 的速率,计算方式如下:
PCLK 时钟周期: TPCLK1 = 1/36000000
目标 SCL 时钟周期: TSCL = 1/400000
SCL 时钟周期内的高电平时间: THIGH = TSCL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值