求解一个STM32F0 DMA模块的问题

[复制链接]
 楼主| 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, 下载次数: 131

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

粉丝
快速回复 在线客服 返回列表 返回顶部

15

主题

43

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部