STM32F0xx_SPI读写(Flash) 配置详细过程

发布者:CuriousMind123最新更新时间:2023-07-26 来源: elecfans关键字:STM32F0xx  SPI读写  Flash  配置 手机看文章 扫描二维码
随时随地手机看文章

Ⅰ、概述

关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题。在这里问一个简单的问题:硬件SPI和软件模拟SPI的区别是有哪些?估计这个问题会问倒很多人。


SPI通信中分为SPI主机和从机,在实际应用中作为主机是比较常见的一种,因为SPI的通信速度远比I2C的通信速度大,所以现在市面上有很多SPI从设备。


Ⅱ、下载

文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。


ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。


今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSCxAn24RF7YD访问密码 44ad

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj访问密码 8c37


Ⅲ、准备工作

建议准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我360云盘下载。


今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。我每次都是提供整理好的软件工程供大家下载,但是,如果你是一位学习者,建议自己亲手一步一步操作:打开工程 -> 新建文件(spi.c spi.h) -> 添加到工程中 -> 添加源代码。


Ⅳ、SPI原理

MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。


MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。


SCK:串口时钟,作为主设备的输出,从设备的输入


NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。


Ⅴ、代码描述

①RCC时钟


该函数位于bsp.c文件下面;

我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。


注意:

外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的】

我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.


②输出引脚配置


该函数位于spi.c文件下面;

注意:

SCK、MISO、MOSI这三根线需配置为复用功能,片选信号配置为输出功能(由控制从设备)。


③主机SPI配置


该函数位于spi.c文件下面;

该配置和F1的区别在于F0需要配置SPI_RxFIFOThresholdConfig。

④读写接口函数


该函数位于spi.c文件下面;

由于是硬件SPI,这里我把读写都写在一起了,实际应用中也是比较常见的,软件模拟SPI的读写函数还是存在差异。


Ⅵ、说明

或许你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片,甚至是F2、F4等芯片上(具体请看手册、或者亲自测试)。

本文章提供的软件工程是基于ST标准外设库为基础建立而成,而非使用STM32CubeMX建立工程。个人觉得使用ST的标准外设库适合与学习者,STM32CubeMX建立工程结构复杂,对于学习者,特别是初学者估计会头疼。


今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。


关键字:STM32F0xx  SPI读写  Flash  配置 引用地址:STM32F0xx_SPI读写(Flash) 配置详细过程

上一篇:STM32F0xx_ RTC实时时钟配置详细过程
下一篇:STM32F10x_SPI (硬件接口 + 软件模拟)读写Flash(25Q16)

推荐阅读最新更新时间:2024-10-26 20:37

STM32F0xx_SPI读写(Flash) 配置详细过程
Ⅰ、概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题。在这里问一个简单的问题:硬件SPI和软件模拟SPI的区别是有哪些?估计这个问题会问倒很多人。 SPI通信中分为SPI主机和从机,在实际应用中作为主机是比较常见的一种,因为SPI的通信速度远比I2C的通信速度大,所以现在市面上有很多SPI从设备。 Ⅱ、下载 文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。 ST标准外设库和参考手册、数据手
[单片机]
STM32F0xx_<font color='red'>SPI</font><font color='red'>读写</font>(<font color='red'>Flash</font>) <font color='red'>配置</font>详细过程
STM32F0xx_SPI读写(Flash)配置详细过程
Ⅰ、概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题。在这里问一个简单的问题:硬件SPI和软件模拟SPI的区别是有哪些?估计这个问题会问倒很多人。 SPI通信中分为SPI主机和从机,在实际应用中作为主机是比较常见的一种,因为SPI的通信速度远比I2C的通信速度大,所以现在市面上有很多SPI从设备。 本文SPI读写操作,以SPI通信的FLASH(25Q16)为从设备进行举例。串口发送10字节数据,接收满10字节自动保存,间隔500ms读写数据,通过串口打印出来。 Ⅱ、下载 文章提
[单片机]
STM32F0xx_<font color='red'>SPI</font><font color='red'>读写</font>(<font color='red'>Flash</font>)<font color='red'>配置</font>详细过程
STM32F0xx_SPI读写(Flash)配置详细过程
Ⅰ、概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题。在这里问一个简单的问题:硬件SPI和软件模拟SPI的区别是有哪些?估计这个问题会问倒很多人。 SPI通信中分为SPI主机和从机,在实际应用中作为主机是比较常见的一种,因为SPI的通信速度远比I2C的通信速度大,所以现在市面上有很多SPI从设备。 本文SPI读写操作,以SPI通信的FLASH(25Q16)为从设备进行举例。串口发送10字节数据,接收满10字节自动保存,间隔500ms读写数据,通过串口打印出来。 Ⅱ、下载 文章提供的“软
[单片机]
STM32F0xx_<font color='red'>SPI</font><font color='red'>读写</font>(<font color='red'>Flash</font>)<font color='red'>配置</font>详细过程
STM32_ SPI读写Flash
今天讲解“STM32F103SPI读写Flash”,其实这第一阶段主要是讲解STM32的SPI功能,所有今天的重点是SPI,关于FLASH我应该要在后面再次讲述。 今天提供并讲解的软件工程,基于软件工程“A0.0.0(STM32F10x_TIM延时)”修改而来。若不知道如何而来,请关注微信公众号“EmbeddDeveloper”获取更多信息。 本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友关注和推广一下微信公众号,增加一下人气。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。 今天的软件工程下载地址(360云盘): https://yunpan.cn/cP
[单片机]
STM32_ <font color='red'>SPI</font><font color='red'>读写</font><font color='red'>Flash</font>
STM32F10x_SPI (硬件接口 + 软件模拟)读写Flash(25Q16)
Ⅰ、写在前面 SPI(Serial Perripheral Interface)串行外设通信接口,主要实现设备(主从)之间的通信。硬件上由CS、SCK、MISO、MOSI四根通信线连接而成。关于SPI更多介绍不再详细描述,本文主要以STM32F103为主机、W25Q16为从机进行SPI通信实验。 本文将提供STM32硬件SPI、软件模拟SPI两实例工程代码供大家参考、掌握两种方式的区别。 STM32硬件SPI:控制简单、运行效率高、使用方便等。 软件模拟SPI:移植性强,只需要简单修改接口,就能在其他MCU芯片(如:51、430等)上使用。 实例实验效果: 两个实例SPI通信控制方式不一样,但实验效果是一样的。 W25Q16设
[单片机]
STM32F10x_<font color='red'>SPI</font> (硬件接口 + 软件模拟)<font color='red'>读写</font><font color='red'>Flash</font>(25Q16)
stm32专题十八:stm32读写SPI FLASH
直接上代码: bsp_spi_flash.c /** ****************************************************************************** * @file bsp_spi_flash.c * @author STMicroelectronics * @version V1.0 * @date 2019 * @brief SPI FLASH(W25Q64)应用函数bsp ****************************************************************************** */
[单片机]
STM32—SPI读写FLASH
FLASH简介 FLASH俗称闪存,和EEPROM一样,都是掉电数据不丢失的非易失行存储器,但FLASH的存储容量普遍大于EEPROM,现在像如U盘、SD卡、SSD固态硬盘以及STM32芯片内部存储程序的设备都是FLASH类型的存储器。由此可见FLASH对于我们学习和工作的重要性,EEPROM可以实现单字节的擦写,而FLASH都是一大片的擦写,就像是大规模杀伤性武器,其最小擦除单位:扇区的大小也是4KB。 我们此次通过SPI对FLASH存储芯片W25Q64进行读写擦除的操作。 对于FLASH内部结构的详细说明博主会专门整理一篇博客来说明,所以关于FLASH芯片的相关原理,本文中只做简单说明,侧重代码部分。 FLASH详细说明的
[单片机]
STM32—<font color='red'>SPI</font><font color='red'>读写</font><font color='red'>FLASH</font>
STM32CubeMX | 30-使用硬件SPI读写FLASH(W25Q64)
本篇详细的记录了如何使用STM32CubeMX配置 STM32G070RBT6 的硬件SPI外设与 SPI Flash 通信(W25Q64)。 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32G070RB的开发板 SPI Flash 开发板板载一片SPI Flash,型号为 W25Q64JV,大小为 8 MB。 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码; 准备一个串口调试助手,这里我使用的是Serial Port Utility; Keil MDK和串口助手Serial Port Utility 的安装包都可以在文末关注公众号获取,回
[单片机]
STM32CubeMX | 30-使用硬件<font color='red'>SPI</font><font color='red'>读写</font><font color='red'>FLASH</font>(W25Q64)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved