STM32 CubeMX(三)—— SPI及IIC


通信方式

通信双方之间的工作方式或信号传输方式。

终端与其他设备通过数据传输进行通信,根据数据的传输方式,有串行通信和并行通信。

串行通信

又称为点对点通信。

对于点对点之间的通信,根据数据的同步方式,又分为异步传送同步传送两种方式。
根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。

通信接口

接口指的是输入输出的硬件接口,实现通信的接口就是通信接口。

实现串行通信的接口就是串行接口,即串口。
实现并行通信的接口就是并行接口,即并口。

通信总线

一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由数据线、地址线、控制线等构成。

总线的分类
按功能分,总线可分为 内部总线、系统总线和I/O总线
按时序控制方式分,总线可分为 同步总线和异步总线
按传送的数据格式分,总线可分为 串行总线和并行总线

接口和总线都有相互连接的含义,但前者强调的是两个部件之间的连接,而后者更注重于多个部件的互连;前者强调信号和数据形式的转换,后者更注重可扩展性、灵活性、规范化,许多总线都有相应的规范和标准。接口与总线有时也不加区分,合称为总线接口或接口总线等

通信协议

传输数据的规则。

接口:规定硬件接口和电平标准。
总线:规定信号线、功能以及工作工程。
协议:规定接口、总线、和传输规则。

SPI

Serial Peripheral interface,串行外围设备接口。一种高速的,全双工,同步的通信总线。

原理和使用简单,占用引脚资源少, 是一种常用的通信方式。

信号线

SPI 共包含 4 条总线。

SS(Slave Select):片选信号线,当有多个SPI 设备与 MCU 相连时,每个设备的这个片选信号线是与 MCU 单独的引脚相连的,而其他的 SCK、MOSI、MISO 线则为多个设备并联到相同的 SPI 总线上,低电平有效。

SCK (Serial Clock):时钟信号线,由主通信设备产生,不同的设备支持的时钟频率不一样,如 STM32 的 SPI 时钟频率最大为 f PCLK /2。

MOSI (Master Output Slave Input):主设备输出 / 从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入数据,即这条线上数据的方向为主机到从机。

MISO(Master Input Slave Output):主设备输入 / 从设备输出引脚。主机从这条信号线读入数据,从机的数据则由这条信号线输出,即在这条线上数据的方向为从机到主机。

配置方法

  1. 时钟使能。
    GPIO时钟使能及SPI时钟使能设置。
  2. 配置GPIO工作模式。
    配置GPIO,自定义引脚,推挽输出,上拉;
    配置SPI引脚SCK、MOSI、MISO所用到的引脚为复用功能。
  3. SPI设置工作模式。
    配置工作模式为全双工,主机模式,SCK闲时电平为高,第二个时钟沿采样数据,内部从机选择软件管理模式。设置SPI的时钟频率,设置数据格式,内部从机选择设置为主机。
  4. 使能SPI,启动传输。

STM32CubeMX配置SPI

IIC

Inter-Integrated Circuit,一种两线式串行总线,用于连接微控制器及其外围设备。

多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。
IIC有两个信号线,一条是双向的数据线SDA,一条是串行时钟线SCL

配置方法

  1. 引脚配置
    SCL、SDA可以配置成推挽输出、开漏输出。
    SCL、SDA也可以配置成开漏输出、开漏输出(开漏输出为防止多个器件存在短路)。
    注意:必须器件内部自带上拉电阻,或者外界接上拉电阻,或者软件设置上拉电阻。
    SCL、SDA也可以配置成推挽输出、推挽输出与浮空输入。
  2. 开漏输出和线与
  • 硬件IIC
    会自动配置为开漏输出。
  • 软件IIC
    推挽输出:输出0,N-MOS激活。 输出1,P-MOS激活
    开漏输出(不带上拉电阻):输出0,N-MOS激活。输出1,P-MOS不会激活,不会输出高电平。
    开漏输出(带上拉电阻):输出0,N-MOS激活。输出1,P-MOS激活
    简言之,开漏输出必须有上拉电阻才能输出高电平。

STM32CubeMX配置IIC

SPI驱动OLED屏幕

  1. 移植OLED文件
  2. 修改引脚
  3. 修改main函数

STM32_SPI驱动OLED屏幕

IIC驱动mpu6050

  1. 移植mpu6050_DMP文件
  2. 修改引脚
  3. 修改main函数

STM32_IIC驱动mpu6050

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值