STM32F103学习笔记——SPI读写Flash(一)

   日期:2021-02-14     浏览:171    评论:0    
核心提示:STM32F103学习笔记——SPI读写Flash(一)  此系列文章是小白学习STM32的一些学习笔记。小白第一次写笔记文章,有不足或是错误之处,请多体谅和交流!1.SPI协议介绍(一)SPI物理层 相比于IIC通讯,数据传输线由一条变成两条(MOSI、MISO)。 SCK:时钟总线,同步通信。 MOSI:主机输出数据,从机接收数据。 MISO:主机接受数据,从机输出数据。 SS:片选信号,低电平有效。(二)SPI协议层  SPI通信时序如图:NSS(片选信号)发送起始信号、停止信

  此系列文章是小白学习STM32的一些学习笔记。小白第一次写笔记文章,有不足或是错误之处,请多体谅和交流!

目录

    • 1.SPI协议介绍
      • (一)SPI物理层
      • (二)SPI协议层
    • 2.STM32f103的SPI介绍
      • (一)SPI通讯过程
      • (二)SPI结构体介绍

1.SPI协议介绍

(一)SPI物理层


 相比于IIC通讯,数据传输线由一条变成两条(MOSI、MISO)。
 SCK:时钟总线,同步通信。
 MOSI:主机输出数据,从机接收数据。
 MISO:主机接受数据,从机输出数据。
 SS:片选信号,低电平有效。

(二)SPI协议层


  SPI通信时序如图:NSS(片选信号)发送起始信号、停止信号。时钟上升沿触发,下降沿数据有效(这是某一种通讯模式)。
通信模式(CPOL/CPHA):
  CPOL(时钟极性):CPOL=0时,SCK空闲时为低电平;CPOL=1时,SCK空闲时为高电平。(空闲指的SPI未开始使用时)
CPHA(时钟相位):CPHA=0时,奇数边沿数据有效;CPHA=1时,偶数边沿数据有效。
  如下图:

2.STM32f103的SPI介绍

(一)SPI通讯过程


 两个标志信号TXE、RXNE:
  一帧数据准备了之后,硬件将TXE置1,然后送到SPI_DR(发送缓冲区),然后软件清零TXE,这是发送过程;
  一帧数据接受了时,硬件将RXNE自动置1,然后SPI_DR(接收缓冲区)接受数据,软件清零RXNE,这就是接受过程。
  Tips:该过程是将发送(接受)缓冲区的数据一位一位(按时钟信号)通过MOSI(MISO)传输。

(二)SPI结构体介绍

// SPI_InitTypeDefSPI_InitTypeDef结构体
1 typedef struct
2 { 
3 	uint16_t SPI_Direction; 		 
4 	uint16_t SPI_Mode; 				 
5 	uint16_t SPI_DataSize; 			 
6 	uint16_t SPI_CPOL; 				 
7 	uint16_t SPI_CPHA; 				 
8 	uint16_t SPI_NSS;				 
9 	uint16_t SPI_BaudRatePrescaler;  
10 	uint16_t SPI_FirstBit; 			 
11 	uint16_t SPI_CRCPolynomial;	 	 
12 } SPI_InitTypeDef;

具体结构体各种配置参数可以去看stm32f103_spi.h头文件。

本系列笔记图片来自于《【野火®】零死角玩转STM32—F103-MINI》的pdf截图

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服