完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我用的是rtt studio, 当不用qspi dma的时候,STM32g474 qspi读取w25q64 id正常,后续的读写都正常。 如果在dma_config.h添加已下几个宏使用DMA1的通道1,程序死活不进中断: #define QSPI_DMA_IRQHandler DMA1_Channel1_IRQHandler #define QSPI_DMA_RCC RCC_AHB1ENR_DMA1EN #define QSPI_DMA_INSTANCE DMA1_Channel1 #define QSPI_DMA_IRQ DMA1_Channel1_IRQn #define QSPI_DMA_REQUEST DMA_REQUEST_QUADSPI 实际上,我即便修改如下两个中断函数名称,程序还是没跑进两个中断函数: #ifdef BSP_QSPI_USING_DMA //void QSPI_IRQHandler(void) void QUADSPI_IRQHandler(void) { /* enter interrupt */ rt_interrupt_enter(); HAL_QSPI_IRQHandler(&_stm32_qspi_bus.QSPI_Handler); /* leave interrupt */ rt_interrupt_leave(); } //void QSPI_DMA_IRQHandler(void) void DMA1_Channel1_IRQHandler(void) { /* enter interrupt */ rt_interrupt_enter(); HAL_DMA_IRQHandler(&_stm32_qspi_bus.hdma_quadspi); /* leave interrupt */ rt_interrupt_leave(); } #endif /* BSP_QSPI_USING_DMA */ 导致程序一直停留在drv_qspi.c的qspixfer()中的while循环语句中死等:
后来我在cubeMx如下配置dma:
|
|
相关推荐
1个回答
|
|
|
在使用RTT Studio开发STM32G474的QSPI DMA时,如果程序无法进入中断,可能是由于以下几个原因导致的:
1. **中断优先级配置错误**:确保DMA中断的优先级配置正确。在STM32中,中断优先级需要在NVIC中正确设置。 2. **DMA通道配置错误**:检查DMA通道的配置是否正确,包括源地址、目标地址、传输大小等。 3. **QSPI配置错误**:确保QSPI的配置与DMA传输兼容,包括时钟、数据宽度等。 4. **中断服务例程(ISR)未正确配置**:确保中断服务例程(ISR)正确配置,并且与DMA中断向量匹配。 5. **DMA传输完成标志未正确处理**:在DMA传输完成后,需要检查传输完成标志,并在ISR中清除该标志。 6. **硬件问题**:检查硬件连接是否正确,包括QSPI和DMA的引脚连接。 7. **代码问题**:检查代码中是否有逻辑错误,导致中断无法触发。 针对你提供的宏定义,这里有一些可能的检查点: - **QSPI_DMA_IRQHandler**:确保这个宏定义指向的是正确的中断处理函数。 - **QSPI_DMA_RCC**:确保这个宏定义启用了正确的DMA时钟。 - **QSPI_DMA_INSTANCE**:确保这个宏定义指向了正确的DMA实例。 此外,你可以尝试以下步骤来调试问题: 1. **使用调试器**:使用调试器逐步执行代码,查看中断是否被触发。 2. **检查中断使能**:确保在代码中正确使能了DMA中断。 3. **检查中断向量表**:确保中断向量表中的DMA中断向量指向了正确的ISR。 4. **检查NVIC配置**:确保NVIC中的中断优先级和使能位配置正确。 如果以上步骤都无法解决问题,建议查看STM32的参考手册和RTT Studio的文档,以确保所有配置都是正确的。同时,也可以查看社区论坛或者官方支持,看看是否有其他人遇到类似问题。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
184个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1212 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1776 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2156 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1777 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2006 浏览 0 评论
1464浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1766浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
363浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
421浏览 3评论
420浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 21:31 , Processed in 0.701072 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2416
