STM32-SPI的理解
1个回答
展开全部
STM32在芯片内部已经集成了SPI接口,用户只需配置SPI并复用映射到相应的IO口就行。
1.全双工同步通信
2.一主多从(主机控制从机)
3.至少需要4根线,3根线也可以(用于单相传输)
MISO:主输入/从输出数据。此引脚可用于在从模式下发送数据和在主模式下接收数据
MOSI:主输出/从输入数据。此引脚可用于在主模式下发送数据和在从模式下接收数据
SCLK:用于 SPI 主器件的串行时钟输出以及 SPI 从器件的串行时钟输入
NSS:从器件选择。这是用于选择从器件的可选引脚(片选)
STM32的SPI一旦配置成主模式,SPI_CR1的SSI就已经置1了,此位的值将作用到NSS引脚上, 并忽略 NSS 引脚的 IO 值
NSS的配置:
-软件管理NSS:
1.配置为输出:SPI_CR1的SSOE置1(SSOE:使能输出)
2.配置为输入:SSM与SSI置1(如果已配置为主模式,SSI就不需要在置高了)
-硬件管理NSS:
1.STM32的SPI配置为主模式时,SSI已经置1,此时的硬件NSS引脚可以给外界使用。如果主从的NSS连接在一起,则可以由主机的NSS去片选从机
2.STM32的SPI没有配置为主机模式时,硬件NSS一定要置高电平
接收过程:数据收到后,先存储到内部接收缓冲区中;
发送过程:先将数据存储到内部发送缓冲区中,然后发送数据。
对 SPI_DR 寄存器(数据寄存器)的读访问将返回接收缓冲值,而对 SPI_DR 寄存器的写访问会将写入的数据存储到发送缓冲区中。
1.初始化GPIO口
2.复用映射SPI接口到GPIO口
3.使能SPI时钟总线:RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE)
4.配置初始化的参数:SPI_Init(SPI1,&SPI_Initstructure)
5.使能SPI外设:SPI_Cmd(SPI1,ENABLE);
1.全双工同步通信
2.一主多从(主机控制从机)
3.至少需要4根线,3根线也可以(用于单相传输)
MISO:主输入/从输出数据。此引脚可用于在从模式下发送数据和在主模式下接收数据
MOSI:主输出/从输入数据。此引脚可用于在主模式下发送数据和在从模式下接收数据
SCLK:用于 SPI 主器件的串行时钟输出以及 SPI 从器件的串行时钟输入
NSS:从器件选择。这是用于选择从器件的可选引脚(片选)
STM32的SPI一旦配置成主模式,SPI_CR1的SSI就已经置1了,此位的值将作用到NSS引脚上, 并忽略 NSS 引脚的 IO 值
NSS的配置:
-软件管理NSS:
1.配置为输出:SPI_CR1的SSOE置1(SSOE:使能输出)
2.配置为输入:SSM与SSI置1(如果已配置为主模式,SSI就不需要在置高了)
-硬件管理NSS:
1.STM32的SPI配置为主模式时,SSI已经置1,此时的硬件NSS引脚可以给外界使用。如果主从的NSS连接在一起,则可以由主机的NSS去片选从机
2.STM32的SPI没有配置为主机模式时,硬件NSS一定要置高电平
接收过程:数据收到后,先存储到内部接收缓冲区中;
发送过程:先将数据存储到内部发送缓冲区中,然后发送数据。
对 SPI_DR 寄存器(数据寄存器)的读访问将返回接收缓冲值,而对 SPI_DR 寄存器的写访问会将写入的数据存储到发送缓冲区中。
1.初始化GPIO口
2.复用映射SPI接口到GPIO口
3.使能SPI时钟总线:RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE)
4.配置初始化的参数:SPI_Init(SPI1,&SPI_Initstructure)
5.使能SPI外设:SPI_Cmd(SPI1,ENABLE);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询