打印
[STM32F1]

控制片选脚

[复制链接]
329|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2020-4-25 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103RCT6,使用DMA传输SP
想使用DMA来进行SPI的接收和发送,SPI为主机,怎么控制片选脚,使SPI能用DMA自动传输。

使用特权

评论回复
沙发
bqyj| | 2020-4-25 20:08 | 只看该作者
DMA中断好像可以吧;  通过中断去处理;

没试过

使用特权

评论回复
板凳
bqyj| | 2020-4-25 20:10 | 只看该作者

在 DMA SPI传输过程中,由于不知道当前字节或者数据帧是否传输完(CPU没有干预),因此片选是不能够被改变的。

使用特权

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

使用特权

评论回复
5
tian111|  楼主 | 2020-4-25 20:13 | 只看该作者
在主模式下,片选是拉低的

使用特权

评论回复
6
zhuhuis| | 2020-4-25 20:14 | 只看该作者
只在使用之前拉低,使用之后拉高就行了

使用特权

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

使用特权

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

使用特权

评论回复
9
huwr| | 2020-4-25 20:22 | 只看该作者
楼上正解,传输前选中,传输完成拉高片选

使用特权

评论回复
10
tian111|  楼主 | 2020-4-25 20:24 | 只看该作者
噢,谢谢,我试试

使用特权

评论回复
11
dalianmao2020| | 2020-4-30 08:16 | 只看该作者
专注ST单片机6年,品质保证,有效帮您降低硬件成本  可咨询Q3359002903

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝