|
由于项目的需要,需要读取FLASH W25Q16的数据,要求开启DMA来读取便于节省STM32的CPU。 SPI和DMA都已经配置好了,如果不用DMA可以正常读写,但是开启DMA后,一直卡在这句话while(DMA_GetFlagStatus(DMA1_FLAG_TC2) == RESET); 下面是我的配置函数,不知道哪里出错了,大家帮帮忙,是哪里出错了呢? 这个是SPI的配置
这个是DMA的配置
程序一直卡在这里过不去呢?
下面是源程序的
STM32 W25X16 DMA.zip
(2.86 MB, 下载次数: 65)
|
微信公众号
手机版
评分
查看全部评分
配置了NVIC,也写了中断的
//NVIC SPI1 RX
NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
嗯 嗯 现在是无法进入中断的
中断函数也有
void DMA1_Channel2_IRQHandler(void)
{
if(DMA_GetITStatus(DMA1_IT_TC2))
{
DMA_ClearITPendingBit(DMA1_IT_TC2);
}
}
你看下面我回复的 我看的中文参考手册上面是通道2呢?
??我写的SPI1的啊?