OpenEdv-开源电子网

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

外部中断无法触发SPI-DMA传输

[复制链接]

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2021-7-6
在线时间
21 小时
发表于 2021-8-18 16:23:05 | 显示全部楼层 |阅读模式
5金钱
本人第一次发求助帖,还望多多指点。
我手里有一块STM32F4的板子,SPI3上挂了一片ADS1255(ADS1256基本一样,差在通道数量),此前用STM32CubeMX生成了一个代码测试可以正常读取数据,现在想要把ADS1255配置成30KFPS,使用SPI+DMA的方式读取数据,这个芯片带了一个Rdy引脚,数据准备好了就低电平,然后我就开了一个GPIO的外部中断来判断,想在外部中断中进行SPI+DMA读取数据,但是发送数据后,SPI总线一直处于发送状态,在外部中断中,也没法被DMA中断,还望各位网友指点一二,感谢!!!
uint8_t spi3_write_byte(uint8_t data) {
    uint8_t temp[1] = {0};
    uint8_t send[2] = {0};
    send[0] = data;
    if (HAL_SPI_TransmitReceive_DMA(&hspi3, send, temp, 1) != HAL_OK) {
        Error_Handler();
    }
    while (HAL_SPI_GetState(&hspi3) != HAL_SPI_STATE_READY);
    return temp[0];
}

卡在标红的这里了。

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

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-8-19 10:16:54 | 显示全部楼层
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2021-9-5
在线时间
3 小时
发表于 2021-9-5 14:31:17 | 显示全部楼层
本帖最后由 volnic 于 2021-9-5 14:33 编辑

楼主的问题解决了吗?我用的是F1芯片,       使用 HAL_SPI_TransmitReceive(&hspi1, (uint8_t *)&dataTx, (uint8_t *)&dataRx, 6, 10000);可以有时钟,数据,换用              
        HAL_SPI_TransmitReceive_DMA(&hspi1, (uint8_t *)&dataTx, (uint8_t *)&dataRx, 6);毫无反应,检测不到时钟沿,不知道您这个有无输出时钟
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4728
金钱
4728
注册时间
2015-1-10
在线时间
590 小时
发表于 2021-9-6 14:00:10 | 显示全部楼层
中断置标志,主程序读数据
回复

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2021-7-6
在线时间
21 小时
 楼主| 发表于 2021-9-24 16:52:14 | 显示全部楼层
volnic 发表于 2021-9-5 14:31
楼主的问题解决了吗?我用的是F1芯片,       使用 HAL_SPI_TransmitReceive(&hspi1, (uint8_t *)&dataTx,  ...

我在cubemx里找了一些官方提供的例程,是什么uart和spi转换的例子,官方提供的例子都是在主程序里读的,放到中断里就不好用,我也实际测试,主程序里进行spi->dma就可以
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 03:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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