完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
使用cubemx选择STM32h743iit的芯片,添加了SPI6并添加了DMA功能,但是发现在调用HAL_SPI_Transmit_DMA( amp;hspi6,(uint8_t*)SPI_SEND_BUFFER_ADDRESS,1);后,无法进入HAL_SPI_TxCpltCallback的回调函数中。请问这个应该怎么解决呢?
|
|
相关推荐
1 条评论
2个回答
|
|
|
提醒你两点:
第一,确认DMA的确配置好了,基于CubeMx配置的话,DMA配置代码放在SPI外设配置的前面; 第二,确保你BDMA要访问的内存是它可以访问得到地方,否则它鞭长莫及就无法完成传输,这点你要对着手册确认。 |
|
|
|
|
|
有几个可能的原因导致无法进入HAL_SPI_TxCpltCallback回调函数:
1. 请确保已正确配置DMA通道,并已正确使能DMA传输。 2. 请确认SPI6的中断已正确使能。可以通过调用HAL_NVIC_SetPriority()和HAL_NVIC_EnableIRQ()函数来设置和使能中断。 3. 在HAL_SPI_Transmit_DMA()函数之前,请确保已正确初始化SPI6和DMA。 4. 如果其他SPI中断回调函数被正确调用,而只有HAL_SPI_TxCpltCallback未被调用,可能是回调函数指针未正确设置。请确保已使用HAL_SPI_RegisterCallback()函数将回调函数注册到适当的事件上,例如HAL_SPI_RegisterCallback(&hspi6, HAL_SPI_TX_CPLT_CB_ID, HAL_SPI_TxCpltCallback)。 5. 还有可能引发问题的是SPI的传输速度设置。请根据SPI设备的规格以及所需的数据传输速度,适当调整SPI的传输速度。 如果以上解决方案仍无效,建议检查其他代码部分是否有可能对SPI6和DMA产生干扰,例如对SPI发送缓冲区、中断优先级或其他相关寄存器进行了修改。如有必要,请提供更多代码细节以便更好地帮助您。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4145 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3230 浏览 1 评论
2756 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2185 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14998 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3100浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1904浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2073浏览 3评论
1983浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2175浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 19:19 , Processed in 0.515950 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
559