完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用另外一个MCU STM32F407VET6使用Cubemx生成代码,只需要在
MX_SPI2_Init()函数最后加上HAL_SPI_DMAResume( hspi2);SPI DMA发送就正常了,但是使用STM32H743同样使用Cubemx生成代码,同样在初始化后加入HAL_SPI_DMAResume( hspi2);但是实测SPI+DMA发送无法驱动屏幕,如果使用HAL_SPI_Transmit替代DMA发送HAL_SPI_Transmit_DMA那么屏幕又能正常驱动 |
|
相关推荐
1个回答
|
|
可以尝试以下几个步骤来解决:
1. **检查硬件连接**:确保SPI和屏幕之间的硬件连接正确无误,包括数据线、时钟线、片选线等。 2. **检查SPI配置**:在CubeMX中配置SPI时,确保选择了正确的SPI模式、数据大小、时钟极性、相位等参数。这些参数应与屏幕的数据手册中的要求一致。 3. **检查DMA配置**:在CubeMX中配置DMA时,确保选择了正确的通道、数据宽度、内存增量模式等。同时,确保DMA的触发源设置正确,以便在SPI传输时能够正确触发DMA。 4. **检查中断配置**:如果使用了中断来管理SPI传输,确保中断优先级设置正确,并且中断服务函数中正确处理了SPI和DMA的相关操作。 5. **检查初始化代码**:在CubeMX生成的初始化代码中,确保SPI和DMA的初始化顺序正确。通常,应该先初始化SPI,然后初始化DMA,最后再将DMA与SPI关联起来。 6. **检查HAL_SPI_DMAResume的使用**:在STM32F407VET6上使用HAL_SPI_DMAResume( hspi2);能够正常工作,但在STM32H743上可能需要不同的处理。尝试在SPI初始化完成后,不要立即调用HAL_SPI_DMAResume,而是在需要开始DMA传输时再调用。 7. **检查HAL库版本**:确保使用的HAL库版本与STM32H743兼容。不同版本的HAL库可能在某些功能上有所不同。 8. **调试和日志**:在代码中添加调试信息,以便跟踪SPI和DMA的状态。这可以帮助确定问题出在哪个环节。 9. **参考例程**:查找STM32H743的官方例程或社区分享的示例,看看是否有使用SPI+DMA驱动屏幕的案例,从中学习其配置和代码实现。 10. **硬件问题**:如果以上步骤都无法解决问题,可能需要考虑是否存在硬件问题,比如SPI或DMA通道的硬件故障。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1927 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1698 浏览 1 评论
1180 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
779 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1745 浏览 2 评论
1984浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
818浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
268浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
633浏览 3评论
637浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-31 14:21 , Processed in 0.567173 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号