STM32F103配合STM32CubeMX实现SPI读写flash

本文档详细介绍了如何使用STM32CubeMX配置STM32F103开发板上的SPI2与W25Q128闪存芯片进行读写操作。通过设置USART1和SPI2的参数,实现了串口和SPI通信,并用KEY0(PE4)作为触发开关。在FreeRTOS环境下,实现了读写闪存的函数,注意了闪存的擦除和写入机制。实验过程中,遇到的问题和解决方案也进行了说明。

本人采用的是正点原子的精英STM32F103开发板,其包含一块W25Q128型号的flash芯片。该flash与STM32F103的SPI2相连。

下面根据正点原子提供的开发指南文档,实现FreeRTOS的SPI实验版本。

芯片型号为:STM32F103ZET6

启用的模块有USART1,SPI2,其中SPI2的CS片选采用软件控制,是PB12管脚。

此外,为了触发读写flash操作,这里使用KEY0(PE4)作为触发开关。

1. 启动STM32CubeMX选择芯片型号

打开CubeMX后,在左侧搜索框输入型号STM32F103,即可看到有两种型号,选择匹配的STM32F103ZETx即可。

2. 选好芯片型号,点击右上角start project,开始配置

1)配置USART1

在左上角的搜索框,输入usart,选择USART1,并按照下图进行配置(未截图表示无改动):

 

2)对SPI2进行配置

时钟极性CPOL=1,串行同步时钟的空闲状态为高电平;
时钟相位CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样;
CRC 值计算的多项式的值参照教程设置为7,也就是X0+X1+X2,可参照STM32CubeMX工具配置SPI的CRC时数字和表达式转换。亲测,其实使用默认的X1+X3也是可以的,应该是值只要大于1即可,什么表达式都可以。

 3)对GPIO管脚进行配置

KEY0(PE4)作为触发开关,配置为input;

PB12作为SPI12的片选CS,配置为output。

3.时钟配置

时钟部分暂时不动,按照默认配置即可。

4.选择生成代码格式

1)保存工程

点击左上角file-->save,选择路径,保存工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值