
一、什么是QSPI QSPI 即Quad SPI,是一种专用的通讯接口,连接单、双或四(条数据线)SPI FLASH 存储器。 简单的来说,QSPI就是为了驱动SPI_FLASH所设计的专用的通信协议,他和标准的SPI协议有很多相似的地方,但是我认为将它看作一种单独的通信协议更好理解。 J# ]) G" `3 u7 j* z) r: y QSPI可以工作在单数据线、双数据线或四条数据线通信方式下。4 z9 t2 C+ `$ p3 U* v! d/ K. s 而BearPi开发板的W25Q64即硬件连接为双数据线通信方式。# p" s& S& b: m7 a ![]() + F5 @9 W9 [- D: W& o! t- e& ]) f (这里应该为原理图标识有误,W25Q64应当为NorFLASH)6 |% ]8 p- p [9 k: j9 ], b 二、CubeMX的配置 在之前新建工程的基础上添加使用SPI功能(新建工程见STM32使用LL库建立工程)( J1 d1 |# u/ g- U1 F& A 将QSPI选择为单/双线模式+ A5 P& ~! c5 c/ n & b6 U! P z3 c- z6 q, x ![]() ! @- v( C( p9 u& }6 d* ] 然后查看硬件连接表,发现与默认引脚不同,需要手动修改引脚 6 p! V' M# B# x \3 p ![]() + d% ?1 v+ c, m8 M4 R3 X5 ~+ R; J ![]() 然后对QSPI进行初始化配置 首先是时钟分频设置,W25Q64在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。( C: Q- R- c2 m' E6 S 所以我们可以将分频值设置为0,则MCU输出的QSPI频率就为80/(0+1)=40MHz。9 q6 {0 O+ p/ D+ d" f ) J% Z; {: l5 d! g7 [5 n- A ![]() 然后我神奇的发现QSPI没有LL库的支持,只有HAL库,然后我废了一天的功夫把stm32l4xx_hal_qspi库里的一些必要的函数提取出来,写了一个stm32l4xx_my_qspi的库函数,最后移植正点原子的w25qxx文件,经过测试成功。 3 n6 |! Q" n) g" A0 A+ R ![]() ————————————————+ [( ^$ x1 W1 c 转载:Willliam_william$ j. m& Z3 d2 r4 i# s; T% y |
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
串口通信波特率异常的解决办法
【STWINKT1B 评测】6. NanoEdge AI 音频分类器 (2)
【STWINKT1B 评测】5. NanoEdge AI 音频分类器 (1)
STWINKT1B评测】4.测试板载ISM330DHCX(6轴)
【STWINKT1B评测】-03-CoreMark跑分测试
【STWINKT1B评测】-02-串口-定时器LED灯测试
【STWINKT1B评测】-01-开箱和资料分享
【STWINKT1B评测】【一】开箱
【STWINKT1B评测】3.读写IIS2DH加速度传感器