正点原子战舰V3+ENC28J60+SPI,开启SPI DMA后,卡死

发布于 2020-07-22 21:12:06

RT_Thread版本4.0.2,使用正点原子战舰平台,不开启SPI DMA通道,数据收发正常,通过ENV工具打开SPI2的DMA后程序卡死在

while (HAL_SPI_GetState(spi_handle) != HAL_SPI_STATE_READY);

通过逻辑分析仪发现数据并没有发送出去,不清楚问题出在哪里,通过仿真后发现,DMA中CNDT寄存器已经从2变0,但是并没有进入发送完成的回调函数中。

如果我不使用DMA发送,只是用HAL_SPI_Transmit这个函数发送的话,是能够发过去的,但是使用DMA的话就只能发送一次数据,然后后面SPI就一直处于OVR状态

希望各位大佬帮帮忙,谢谢!!!

查看更多

关注者
1
被浏览
105
1 个回答
hichard
hichard 认证专家 2020-07-24

在看看, DMA方式我们项目上用过,没有问题的,肯定是哪里配置问题

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友