[应用相关] STM32硬件基础--QaudSPI总线读写片外FLASH(一)

[复制链接]
 楼主| phosphate 发表于 2020-6-26 13:39 | 显示全部楼层
7、Clock Mode,空闲时CLK的电平状态,似无大碍,这里选了low(模式0;如果high,是模式3)。
 楼主| phosphate 发表于 2020-6-26 13:39 | 显示全部楼层
 楼主| phosphate 发表于 2020-6-26 13:40 | 显示全部楼层
QaudSPI的配置还没完事,还需要检查GPIO的复用功能是否配置正确(这是有血的教训的)。CubeMX默认的QSPI管脚配置是:
464345ef58a51b18fb.png
 楼主| phosphate 发表于 2020-6-26 13:41 | 显示全部楼层
需要按下图重新分配pin:
71285ef58a6b1e73e.png
 楼主| phosphate 发表于 2020-6-26 13:41 | 显示全部楼层
生成KEIL代码。main.c中,函数 MX_QUADSPI_Init() 是CubeMX生成的QSPI的初始化函数。

先定义一个常数数组,包含了N25Q的ID信息:

const uint8_t bN25Q_ID[BUFFERSIZE] = {0x20, 0xBA, 0x18};               //Manufacturer ID, Memory Type, Memory Capacity
 楼主| phosphate 发表于 2020-6-26 13:42 | 显示全部楼层
然后读FLASH:
4125ef58ab0ec082.png
 楼主| phosphate 发表于 2020-6-26 13:42 | 显示全部楼层
sCommand 是 QSPI_CommandTypeDef 类型的结构体,负责配置命令模式、命令字、数据格式、数据长度等关键信息,然后调用 HAL_QSPI_Command() 发送命令。在  HAL_QSPI_Command() 内部又调用了 QSPI_Config(),通过写QSPI相关的一些寄存器最终实现发送命令的操作。在调用 QSPI_Config() 时,使用了一个重要的参数:QSPI_FUNCTIONAL_MODE_INDIRECT_WRITE,它约定了QSPI在此次与FLASH的会话中,使用的是QSPI的“间接操作模式”(QSPI有三种操作模式,详情将在下一讲中介绍)。

 楼主| phosphate 发表于 2020-6-26 13:43 | 显示全部楼层
读出ID结果如下:
823615ef58af1122f1.png
 楼主| phosphate 发表于 2020-6-26 13:44 | 显示全部楼层
读出的数值确实是 20h,BAh,18h;开发板背面的LED慢闪,表明读取ID正确(如果出错,LED将快闪)。

本例的代码下载地址:https://github.com/haidongqing/qspi-readid

下一节将介绍QSPI的三种操作模式、并实现读FLASH数据:《STM32硬件基础--QaudSPI总线读写片外FLASH(二)》。
 楼主| phosphate 发表于 2020-6-26 13:45 | 显示全部楼层
补充:关于QaudSPI的时钟频率
691745ef58b4caf678.png
分频系数数值+1,是真正的分频倍数。为了2分频,应该将 PRESCALER 参数设置为1;如果设置为2,就是3分频了,QaudSPI时钟频率更低了,程序仍能正常执行,只不过读写速率降低了、效率低了。经测试,如果将 PRESCALER 参数设置为0,QaudSPI时钟频率==HCLK 了,超出了最大频率范围,读出的ID是错误的。

 楼主| phosphate 发表于 2020-6-26 13:45 | 显示全部楼层
作者:海东青电子
链接:https://www.jianshu.com/p/f22afca42c57
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ADZ2016 发表于 2020-6-26 14:12 | 显示全部楼层
H7系列才会有这种操作吧!!
labasi 发表于 2020-7-10 16:33 | 显示全部楼层
非常感谢楼主分享
paotangsan 发表于 2020-7-10 16:35 | 显示全部楼层
资料很不错
renzheshengui 发表于 2020-7-10 16:36 | 显示全部楼层
不是所有系列都有吧
wakayi 发表于 2020-7-10 16:36 | 显示全部楼层
楼主辛苦啦
wowu 发表于 2020-7-10 16:37 | 显示全部楼层
长知识了 呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部