OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3227|回复: 6

从IAR移植到keil上之后代码死在HAL_SPI_Transmit_DMA()函数

[复制链接]

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
发表于 2020-9-4 12:42:19 | 显示全部楼层 |阅读模式
1金钱
代码从IAR移植到KEIL上发现跑不起来。

主函数

主函数

经过排查之后发现代码死在HAL_SPI_Transmit_DMA()函数,可能是哪些问题?

死在这里

死在这里

PS:这里的SPI1已经初始化了

spi1初始化

spi1初始化

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-4 12:43:10 | 显示全部楼层
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3875
金钱
3875
注册时间
2017-3-7
在线时间
1691 小时
发表于 2020-9-4 13:11:24 | 显示全部楼层
一步步追,hal库好多callback函数,看看具体卡在哪了,可能死在dma中断
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-4 14:02:48 | 显示全部楼层
a5820736 发表于 2020-9-4 13:11
一步步追,hal库好多callback函数,看看具体卡在哪了,可能死在dma中断

确实是死在回调函数
  1.   /* Set the SPI TxDMA Half transfer complete callback */
  2.   hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt;
  3.         printf("Debug:Set the SPI TxDMA Half transfer complete callback\r\n");
  4.   /* Set the SPI TxDMA transfer complete callback */
  5.   hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt;
  6.         printf("Debug:Set the SPI TxDMA transfer complete callback\r\n");
  7.   /* Set the DMA error callback */
  8.   hspi->hdmatx->XferErrorCallback = SPI_DMAError;
  9.         printf("Debug:Set the DMA error callback\r\n");
  10.   /* Set the DMA AbortCpltCallback */
  11.   hspi->hdmatx->XferAbortCallback = NULL;
  12.         printf("Debug:Set the DMA AbortCpltCallback\r\n");
  13.   /* Enable the Tx DMA Stream/Channel */
  14.   printf("\r\nEnable the Tx DMA Stream/Channel\r\n");
复制代码
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-4 14:21:10 | 显示全部楼层
a5820736 发表于 2020-9-4 13:11
一步步追,hal库好多callback函数,看看具体卡在哪了,可能死在dma中断

大哥知道可能是什么原因么
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3875
金钱
3875
注册时间
2017-3-7
在线时间
1691 小时
发表于 2020-9-4 16:02:24 | 显示全部楼层
只能一步步追了,看具体卡在哪
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-4 17:29:23 | 显示全部楼层
a5820736 发表于 2020-9-4 16:02
只能一步步追了,看具体卡在哪

就是卡在那一段代码那里,比如  hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt;   就卡了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 18:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表