完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我把代码从旧版本的SDK切换到最新的RTOS版本的SDK上。初始化HSPI的overlap后(如下),
SET_PERI_REG_MASK(0x3ff00028, BIT(7)); //set higher priority for spi than hspi SET_PERI_REG_MASK(SPI_EXT3(SPI), 0x1); SET_PERI_REG_MASK(SPI_EXT3(HSPI), 0x3); SET_PERI_REG_MASK(SPI_USER(HSPI), BIT(5)); 做了以上初始化后,用spi_flash_read这个接口去访问SPI外挂的FLASH,无法返回,卡住一段时间后异常复位,异常信息时乱码。 |
|
相关推荐
1个回答
|
|
|
以下是一些可能的原因和解决方案:
1. **SPI初始化问题**:确保你正确初始化了SPI接口。检查你的代码中是否正确设置了SPI的参数,如时钟频率、数据位宽度、CPOL、CPHA等。同时,确保你已经正确配置了SPI的引脚。 2. **FLASH芯片兼容性**:确保你使用的FLASH芯片与ESP32的SPI接口兼容。不同的FLASH芯片可能有不同的操作时序要求,这可能会影响通信。 3. **SPI速度问题**:尝试降低SPI的时钟频率,看看是否能够解决问题。有时,过高的时钟频率可能会导致通信错误。 4. **FLASH地址和命令问题**:确保你在调用`spi_flash_read`时传入的地址和命令是正确的。错误的地址或命令可能会导致FLASH芯片无法正确响应。 5. **中断和优先级问题**:你提到了设置SPI和HSPI的优先级。确保这些设置是正确的,并且不会影响其他中断的处理。同时,检查你的代码中是否有其他地方可能会影响SPI通信的中断处理。 6. **电源问题**:确保FLASH芯片的电源供应稳定。不稳定的电源可能会导致通信错误。 7. **硬件连接问题**:检查你的硬件连接,确保SPI数据线、时钟线和片选线都连接正确,并且没有短路或断路。 8. **软件版本问题**:你提到了从旧版本的SDK切换到最新的RTOS版本的SDK。确保你的代码与新版本的SDK兼容。有时,不同版本的SDK可能会有不同的API或行为。 9. **调试和日志**:尝试在代码中添加调试信息和日志,以便更好地了解问题发生的原因。例如,你可以在调用`spi_flash_read`前后添加日志,以检查是否进入了函数,以及是否成功返回。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
933 浏览 0 评论
1653 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1284 浏览 1 评论
1218 浏览 1 评论
4959 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1249浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2324浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2523浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 16:59 , Processed in 1.990316 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1355
