[APM32E1] RT-Thread 5.1.0版本中调用rt_sfud_flash_probe()函数获取Flash芯片信息失败

[复制链接]
 楼主| 细易电子工作室 发表于 2025-6-24 10:57 | 显示全部楼层 |阅读模式
一、硬件环境主控芯片:APM32E103ZET6,使用SPI2总线连接flash芯片Flash芯片:W25Q128JV,WP和Hold管脚均通过10K电阻上拉到电源电压二、软件环境使用RT-Thread Studio编译器,RT-Thread版本5.1.0三、配置过程1、启用SPI和SFUD 12383685a12d4930e5.png
2、修改sfud_flash_def.h文件
51578685a1319983e3.png
3、修改apm32_msp_spi_init()函数
37587685a1354ea8c5.png
4、main.c中编写rt_hw_spi_flash_init()测试函数
73354685a1372f35e2.png
5、编译后无错误,烧录程序后调试串口打印报错信息如下图
47093685a138e18293.png

上述错误信息的出现,尝试修改了可能出现问题的地方,该报错仍会出现,实在不知还有哪些地方需要修改,有知道的大神烦请指点一二!!!

61321685a12230f340.png
4459685a1328018c3.png
23081685a132df404a.png
Gfan 发表于 2025-6-24 15:58 | 显示全部楼层
您好~建议使用下面的方式排查哈
1)请用示波器捕捉SPI2总线,观察与W25Q128JV通信的时序是否正常。
2)不使用OS,先用MCU直接驱动W25Q128JV试试,OK后再移入OS中。
dffzh 发表于 2025-6-25 08:58 | 显示全部楼层
如果你不能保证MCU和flash芯片之间的SPI通信时序是正常的,那最好是避开OS,先把基于SPI的flash驱动代码调通。
 楼主| 细易电子工作室 发表于 2025-6-26 16:55 | 显示全部楼层
Gfan 发表于 2025-6-24 15:58
您好~建议使用下面的方式排查哈
1)请用示波器捕捉SPI2总线,观察与W25Q128JV通信的时序是否正常。
2)不使 ...

硬件通讯应该是没问题的,因为使用SFUD_init()函数可以获取到flash的容量大小,另外,rtthread5.1.0版本已经把SFUD集成了,应该不需要其它特殊的操作就可以使用,不确定是不是APM32E10x的驱动还没有做好适配
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

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

2

主题

4

帖子

0

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