打印
[STM32F1]

STM32F103RCT6,使用DMA传输SPI

[复制链接]
1621|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2018-8-30 08:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想使用DMA来进行SPI的接收和发送,SPI为主机,怎么控制片选脚,使SPI能用DMA自动传输。
沙发
bqyj| | 2018-8-30 08:44 | 只看该作者
DMA中断好像可以吧;  通过中断去处理;

没试过

使用特权

评论回复
板凳
bqyj| | 2018-8-30 08:47 | 只看该作者
在 DMA SPI传输过程中,由于不知道当前字节或者数据帧是否传输完(CPU没有干预),因此片选是不能够被改变的。

使用特权

评论回复
地板
tian111|  楼主 | 2018-8-30 08:49 | 只看该作者
DMA中断试过,我是发送跟接收都进DMA中断的,但是片选脚还是不好设置

使用特权

评论回复
5
tian111|  楼主 | 2018-8-30 08:51 | 只看该作者
在主模式下,片选是拉低的

使用特权

评论回复
6
zhuhuis| | 2018-8-30 08:53 | 只看该作者
只在使用之前拉低,使用之后拉高就行了

使用特权

评论回复
7
tian111|  楼主 | 2018-8-30 08:54 | 只看该作者
那这样就要使用中断,软件去控制了,但是如果我使用DMA中断,则片选就没办法设置,DMA有发送缓冲区为空中断,接收缓冲区非空中断。这两个中断,进去都是结束后的,没办法使能片选

使用特权

评论回复
8
wenfen| | 2018-8-30 08:56 | 只看该作者
巧了,我现在正在调SPI+DMA(SLAVE模式),“DMA有发送缓冲区为空中断,接收缓冲区非空中断“,在STM32里面好像没有这个DMA中断吧?你说的应该是SPI的,楼主不用考虑那么多,大胆去干,使用DMA之前拉低,DMA所有数据传输完成之后拉高就行了

使用特权

评论回复
9
huwr| | 2018-8-30 08:59 | 只看该作者
楼上正解,传输前选中,传输完成拉高片选

使用特权

评论回复
10
tian111|  楼主 | 2018-8-30 09:03 | 只看该作者
噢,谢谢,我试试

使用特权

评论回复
11
威悦升电子| | 2018-8-30 09:42 | 只看该作者
有ST的单片机吗?QQ1500783645

使用特权

评论回复
12
keaibukelian| | 2018-9-3 11:19 | 只看该作者
用cube试试看

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝