打印
[STM32F4]

F405 DMA + SPI 传输异常

[复制链接]
1018|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DM, DMA, pi, spi
本帖最后由 xiaofei558008 于 2023-6-15 13:40 编辑

芯片 F405RG  1)、 SPI2 + DMA1 传输一次就会出现FIFO错误和DMA错误,不知道啥原因;
2)、SPI1 + DMA2 传输会出现 MISO 提前进入完成中断;很奇怪;




cs 是在DMA完成中断里面拉高的;

传输开始之前都会重置SPI_RX 的 DMA计数器;

F3 L4上都类似的代码,从来没有出现问题;


求大神支招;


使用特权

评论回复
沙发
xiaofei558008|  楼主 | 2023-6-15 15:32 | 只看该作者
原因大概是 Rx DMA 的 count 值,赋值新的值之后,老是会在dma rx通道使能之后自动减去计数值,有时使能后值没有变换,此时 spi 都是没有在传输的;
另外,关闭 spi 的 dma tx 和 rx 使能位之后,不会导致 dma rx 计数变化;
很是奇怪,f4 的 spi + dma 这么难用起来的嘛;吐血吐血

使用特权

评论回复
板凳
V853| | 2023-6-15 18:08 | 只看该作者
SPI+DMA没这么难用吧,是不是哪里配置出问题了?

使用特权

评论回复
地板
xiaofei558008|  楼主 | 2023-7-12 12:29 | 只看该作者
V853 发表于 2023-6-15 18:08
SPI+DMA没这么难用吧,是不是哪里配置出问题了?

理论上没啥问题,实际就是没解决。

使用特权

评论回复
5
香水城| | 2023-7-12 13:57 | 只看该作者
xiaofei558008 发表于 2023-6-15 15:32
原因大概是 Rx DMA 的 count 值,赋值新的值之后,老是会在dma rx通道使能之后自动减去计数值,有时使能后 ...

你具体是在做什么呢? SPI1是主还是从?
SPI配置是怎样的?
主要代码是怎样的?

印象中F4 spi+dma并不难用。

使用特权

评论回复
6
香水城| | 2023-7-12 14:38 | 只看该作者

使用特权

评论回复
7
xiaofei558008|  楼主 | 2023-7-27 14:43 | 只看该作者
香水城 发表于 2023-7-12 13:57
你具体是在做什么呢? SPI1是主还是从?
SPI配置是怎样的?
主要代码是怎样的?

SPI 访问一个麦歌恩的 磁编码器,做master,4线模式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

136

主题

963

帖子

13

粉丝