Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
QSPI
25系列FLASH
挂载W25Q256JV外部QSPI接口Flash失败!
发布于 2022-02-17 12:50:19 浏览:1638
订阅该版
CPU是STM32H743iit6,外挂QSPI类型Flash,型号是W25Q256JV,使用正点原子或者ART-Pi的驱动,挂载不上W25,其中SPI驱动正常,QSPI驱动正常,后来不用RT的库,只操作HAL的库来读W25Q的ID,还是失败,但是用keil编译,裸机跑驱动,是正常的,可以读取ID。 先看一下RT挂载的时候的信息: ```C \ | / - RT - Thread Operating System / | \ 4.0.5 build Feb 15 2022 16:54:24 2006 - 2021 Copyright by rt-thread team [D/drv.qspi] qspi init success! [E/drv.qspi] QSPI recv data failed(1)! [I/SFUD] Error: Read flash device JEDEC ID error. [I/SFUD] Error: norflash1 flash device is initialize fail. [E/SFUD] ERROR: SPI flash probe failed by SPI device qspi10. ``` 然后list_device显示: ```C device type ref count -------- -------------------- ---------- qspi10 SPI Device 0 usbh USB Host Bus 0 rtc RTC 0 i2c2 I2C Bus 0 qspi1 SPI Bus 0 uart1 Character Device 2 pin Miscellaneous Device 0 msh /> ``` 说明qspi的初始化是成功的,但是挂载w25失败。 ``` uint32_t QSPI_FLASH_ReadDeviceID(void) { QSPI_CommandTypeDef s_command; uint32_t Temp = 0; uint8_t pData[3] = {0}; /*##-2-读取设备ID测试 ###########################################*/ /* 读取制造/设备 ID */ s_command.InstructionMode = QSPI_INSTRUCTION_1_LINE; s_command.Instruction = 0x94; s_command.AddressMode = QSPI_ADDRESS_1_LINE; s_command.AddressSize = QSPI_ADDRESS_24_BITS; s_command.Address = 0x000000; s_command.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; s_command.DataMode = QSPI_DATA_4_LINES; s_command.DummyCycles = 0; s_command.NbData = 2; s_command.DdrMode = QSPI_DDR_MODE_DISABLE; s_command.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY; s_command.SIOOMode = QSPI_SIOO_INST_EVERY_CMD; if (HAL_QSPI_Command(&hqspi, &s_command, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK) { printf("something wrong ....\r\n"); } if (HAL_QSPI_Receive(&hqspi, pData, HAL_QPSI_TIMEOUT_DEFAULT_VALUE) != HAL_OK) { printf("something wrong ....\r\n"); } Temp = pData[1] |( pData[0]<<8 ) ; printf("qspi read ID = 0x%x\r\n", Temp); return Temp; } ``` 上面的代码,裸跑的时候,读取ID和JEDEC ID包括Unique ID都是正确的,但是 同样的代码,在RT中使用,通过MSH方式执行,读取ID都是失败。通过单步调试,发现都是在发送或者接收数据的时候失败的,具体到写寄存器的时候,写其他寄存器都正常,都可以写进去,但是在写**QUADSPI->AR = address**地址寄存器,触发传输的是,监控发现外设寄存器内容都变成0了,然后st-link就掉了,不知道是不是这个原因!恳请指教!
查看更多
3
个回答
默认排序
按发布时间排序
CharlesX
2022-02-17
Make science fiction science
看一下stm32h7xx_hal_msp.c里面有没有加入HAL_QSPI_MspInit和HAL_QSPI_MspDeInit,这两个函数在HAL库里是弱定义所以编译不会报错,如果没加是不可能成功操作QSPI的。
Juggernaut
2022-02-20
①②③
FLASH一直感觉有问题
gameboy22
2022-02-21
这家伙很懒,什么也没写!
已经解决了,主要的原因是前面的时钟初始化有问题,CubeMX自动生成的stm32h7xxx系列的代码的时候,时钟初始化程序是2个函数`void SystemClock_Config(void)`和`void PeriphCommonClock_Config(void)`函数,原来只有前面的函数,我是第一次使用系统,所以按照网上或者所有的移植参考,都是说把**`SystemClock_Confi()`**函数拷贝到**`drv_clk.c`**就行了,所以我后面的就没有仔细看,后来把**`PeriphCommonClock_Config()`**函数里面的内容拷贝到**`SystemClock_Confi()`**函数里面就好了,这样时钟初始化就全了,主要还是自己的疏忽,非常感谢上面几位朋友的回复! 万分感谢!
撰写答案
登录
注册新账号
关注者
0
被浏览
1.6k
关于作者
gameboy22
这家伙很懒,什么也没写!
提问
1
回答
1
被采纳
0
关注TA
发私信
相关问题
1
w25q128 flash 怎么在电脑和开发板上切换挂载
2
使用littlefs出现Corrupted dir pair at 1 0
3
使用SPI W25Q64读写出问题
4
W25QXX挂载elm文件系统的分区小于512KB时你们成功了吗
5
安卓手机不能识别挂载w25q flash
6
[无法申请内存]STM32F103RBT6+DFS+FATFS+W25Q16
7
RT-thread 两种方式读取到W25Q16的ID,高低位是反过来的
8
w25qxx虚拟USB大容量存储类接口是在哪实现的
9
spi w25x16初始化失败。 什么原因?
10
stm32外接QSPI-Flash运行程序,还能用FAL进行分区,读,写操作吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
ulog组件多端绑定的demo案例
2
记录rt-thread消息队列的调试方法
3
AT32的ADC使用
4
aht10 终端:The aht10 is under an abnormal status
5
github高阶加速,速度可达带宽峰值,测试到146Mbit/s
热门标签
RT-Thread Studio
串口
LWIP
Env
AT
SPI
Bootloader
FinSH
ART-Pi
CAN总线
Hardfault
USB
文件系统
RT-Thread
DMA
SCons
线程
MQTT
RT-Thread Nano
STM32
RTC
rt-smart
ESP8266
flash
ota在线升级
WIZnet_W5500
FAL
I2C
packages_软件包
UART
cubemx
freemodbus
潘多拉开发板_Pandora
定时器
BSP
PWM
ADC
socket
中断
rt_mq_消息队列_msg_queue
keil_MDK
SDIO
Debug
AB32VG1
MicroPython
C++_cpp
编译报错
msh
ulog
QEMU
本月问答贡献
出出啊
1500
个答案
338
次被采纳
小小李sunny
1390
个答案
276
次被采纳
张世争
715
个答案
157
次被采纳
crystal266
522
个答案
153
次被采纳
whj467467222
1216
个答案
146
次被采纳
本月文章贡献
出出啊
1
篇文章
12
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
2
篇文章
2
次点赞
crystal266
2
篇文章
5
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部