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基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

阿里巴巴首款自研芯片明年面世,"平头哥"欲打开人工智能黑盒子
布克新一代油烟机上市 与油烟竞速极致追求
安捷科推出LoraWAN和NB-IOT车辆追踪器
Xilinx开发板ZCU104对接验证接口板电路原理图
E拆解:三星 Galaxy S22+(下)
STM32F0xx_SPI读写(Flash) 配置详细过程
云计算的网络安全挑战是怎样的
多用户电能表的归类及型号规格含意的详细介绍
芯圣电子HC89S003A系列MCU简述
技术不断提高 国内AI芯片有望实现弯道超车
三个案例帮你彻底了解反馈电路中的相位补偿
集成电路的替换原则
Intel百亿并购Altera:只为巩固服务器霸主地位
5G在无人机领域的应用现状
瑞萨电子计划推出全新命名的嵌入式产品家族
基于Internet的语音交互系统的设计和实现
高清监控镜头四大技术及发展趋势
人工智能时代下如何避开陷阱实现落地
小米新机曝光,搭载骁龙660,或命名小米6C?
5G的到来将推动车联网大规模部署的条件加快成熟