发新帖我要提问
12
返回列表
打印
[应用相关]

STM32硬件基础--QaudSPI总线读写片外FLASH(一)

[复制链接]
楼主: phosphate
手机看帖
扫描二维码
随时随地手机跟帖
21
phosphate|  楼主 | 2020-6-26 13:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
7、Clock Mode,空闲时CLK的电平状态,似无大碍,这里选了low(模式0;如果high,是模式3)。

使用特权

评论回复
22
phosphate|  楼主 | 2020-6-26 13:39 | 只看该作者




使用特权

评论回复
23
phosphate|  楼主 | 2020-6-26 13:40 | 只看该作者
QaudSPI的配置还没完事,还需要检查GPIO的复用功能是否配置正确(这是有血的教训的)。CubeMX默认的QSPI管脚配置是:

使用特权

评论回复
24
phosphate|  楼主 | 2020-6-26 13:41 | 只看该作者
需要按下图重新分配pin:

使用特权

评论回复
25
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

使用特权

评论回复
26
phosphate|  楼主 | 2020-6-26 13:42 | 只看该作者
然后读FLASH:

使用特权

评论回复
27
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有三种操作模式,详情将在下一讲中介绍)。

使用特权

评论回复
28
phosphate|  楼主 | 2020-6-26 13:43 | 只看该作者
读出ID结果如下:

使用特权

评论回复
29
phosphate|  楼主 | 2020-6-26 13:44 | 只看该作者
读出的数值确实是 20h,BAh,18h;开发板背面的LED慢闪,表明读取ID正确(如果出错,LED将快闪)。

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

下一节将介绍QSPI的三种操作模式、并实现读FLASH数据:《STM32硬件基础--QaudSPI总线读写片外FLASH(二)》。

使用特权

评论回复
30
phosphate|  楼主 | 2020-6-26 13:45 | 只看该作者
补充:关于QaudSPI的时钟频率

分频系数数值+1,是真正的分频倍数。为了2分频,应该将 PRESCALER 参数设置为1;如果设置为2,就是3分频了,QaudSPI时钟频率更低了,程序仍能正常执行,只不过读写速率降低了、效率低了。经测试,如果将 PRESCALER 参数设置为0,QaudSPI时钟频率==HCLK 了,超出了最大频率范围,读出的ID是错误的。

使用特权

评论回复
31
phosphate|  楼主 | 2020-6-26 13:45 | 只看该作者
作者:海东青电子
链接:https://www.jianshu.com/p/f22afca42c57
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
32
ADZ2016| | 2020-6-26 14:12 | 只看该作者
H7系列才会有这种操作吧!!

使用特权

评论回复
33
labasi| | 2020-7-10 16:33 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
34
paotangsan| | 2020-7-10 16:35 | 只看该作者
资料很不错

使用特权

评论回复
35
renzheshengui| | 2020-7-10 16:36 | 只看该作者
不是所有系列都有吧

使用特权

评论回复
36
wakayi| | 2020-7-10 16:36 | 只看该作者
楼主辛苦啦

使用特权

评论回复
37
wowu| | 2020-7-10 16:37 | 只看该作者
长知识了 呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则