完善资料让更多小伙伴认识你,还能领取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`前后添加日志,以检查是否进入了函数,以及是否成功返回。 |
|
|
|
只有小组成员才能发言,加入小组>>
473浏览 6评论
397浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
376浏览 5评论
383浏览 4评论
353浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 09:19 , Processed in 0.847837 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号