STM32F4通信协议SPI&&IIC工作原理

本文详细介绍了STM32F4中SPI和IIC通信协议的工作原理。SPI是一种全双工协议,包括MISO、MOSI、SCLK和CS四条信号线,支持一主多从通信。IIC则是一种半双工同步串行通信协议,使用SDA和SCK两条线进行数据传输,具有标准、快速和高速三种通信速度。文中还涵盖了SPI和IIC的初始化配置、工作流程及应答信号等关键知识点。
摘要由CSDN通过智能技术生成

SPI协议:全双工 3/4根信号线

SPI 主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。

MISO 主设备数据输入,从设备数据输出。(MISO:master input slave output)
MOSI 主设备数据输出,从设备数据输入。(MOSI:master output slave input)
SCLK时钟信号,由主设备产生。(SCLK:serial clock)
CS从设备片选信号,由主设备控制。(CS:chip select)这个一主多从通信的时候才会用到
在这里插入图片描述
SPI工作原理
(1)硬件上为4根线。
(2)主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。
(3)串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。
(4)外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

SPI初始化配置
SPI控制器的初始化步骤有以下几步:
(1)使能SPI复用功能所映射的GPIO口时钟。
(2)SPI控制器时钟使能。
(3)配置GPIO为复用功能。(MOSI/MISO/CLK)
(4)GPIO复用功能为第几复用功能(AFx)。
(5)配置GPIO输出速率为50MHz。
(6)配置SPIx->CR1寄存器。

   //SPI 口初始化
//这里针是对 SPI1 的初始化
void SPI1_Init(void)
{
	    u16 tempreg=0;
	    RCC->AHB1ENR|=1<<0; //使能 PORTA 时钟
	    RCC->APB2ENR|=1<<12; //SPI1 时钟使能
	    GPIO_Set(GPIOB,7<<3,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,
	    GPIO_PUPD_PU); //PB3~5 复用功能输出
	     GPIO_AF_Set(GPIOB,3,5); //PB3,AF5
	    GPIO_AF_Set(GPIOB,4,5); //PB4,AF5
	    GPIO_AF_Set(GPIOB,5,5); //PB5,AF5
	    //这里只针对 SPI 口初始化
	    RCC->APB2RSTR|=1<<12; //复位 SPI1
	    RCC->APB2RSTR&=~(1<<12);//停止复位 SPI1
	    tempreg|=0<<10; //全双工模式
	    tempreg|=
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值