打印

求解一个STM32F0 DMA模块的问题

[复制链接]
3840|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znsword|  楼主 | 2012-9-5 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我将DMA1通道5用于SPI2和LCD的通讯。然后想将通道4用于和USART1数据传输,却发现DMA模块无法发出数据。换成通道2就可以。而且STM32F0DMA1通道4,5和2,3都是共用一个中断向量,难道两个通道是一对,一个被占用,另外一个就无法使用。求高手解答。
沙发
figo20042005| | 2012-9-5 21:47 | 只看该作者
进中断中可以判断切换吧

使用特权

评论回复
板凳
znsword|  楼主 | 2012-9-5 21:55 | 只看该作者
中断根本进不去。如果用通道4的话,TC标志根本就不置位。用通道2就可以。。。。。。
官方有一个说明,里面说道
SPI2_RX对应DMA_Channel2
SPI2_TX对应DMA_Channel3

USART1_Rx对应DMA_Channel3/DMA_Channel5
USART1_Tx对应DMA_Channel2/DMA_Channel4
现在的情况是DMA_Channel5被占用,而这时DMA_Channel4无法用于USART1(TC不置位),而换成DMA_Channel2就没有问题。联想2,3和4,5都用同一个中断向量。总觉得是不是设计上有点什么问题。

使用特权

评论回复
地板
znsword|  楼主 | 2012-9-5 21:58 | 只看该作者
附件就是STM32F1和STM32F0 DMA模块说明。

F0BA3d01.pdf

918.79 KB

使用特权

评论回复
5
lut1lut| | 2012-9-6 11:02 | 只看该作者
"现在的情况是DMA_Channel5被占用,而这时DMA_Channel4无法用于USART1(TC不置位),而换成DMA_Channel2就没有问题。"

USART1_TX,即USART1的发送,默认是在通道2;如果想使用通道4,需要remap,通过SYSCFG_CFGR1设置。

使用特权

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

本版积分规则

15

主题

43

帖子

2

粉丝