各位大侠 你们好! 我在使用207的DMA往GPIOB端口送数据,怎么老是TEIF FEIF同时置位? 我外部RAM是IS61WV25616,用TIM5_TRIG触发DMA,程序如下: TIM_DMACmd(TIM5, TIM_DMA_Trigger, ENABLE); ; void DMA1_Init(void) { DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // DMA clock enable RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); // 开启DMA1时钟 DMA_Cmd(DMA1_Stream1, DISABLE); DMA_DeInit(DMA1_Stream2); DMA_InitStructure.DMA_Channel = DMA_Channel_6; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(GPIOB_BASE+0x14);//GPIOB->ODR // 设置PB 输出寄存器 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&Buff[0]; // 设置CH2 波形数据缓冲区 DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; // 设置外设位目标,内存缓冲区 -> 外设寄存器 DMA_InitStructure.DMA_BufferSize = 480; // 需要发送的字节数,这里其实可以设置为0, // 因为在实际要发送的时候,会重新设置次值 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外设地址不做增加调整,调整不调整是DMA自动实现的 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 内存缓冲区地址增加调整 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; // 外设数据宽度16位,2个字节 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; // 内存数据宽度16位,2个字节 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 循环传输模式 DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; // 优先级设置 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; // 打开FIFO模式 DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; // 打开FIFO检测一半为空 DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_INC4; // 内存一次传输8字节 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; // 外设一次传输1字节 DMA_Init(DMA1_Stream1, &DMA_InitStructure); // 写入配置 NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); DMA_ITConfig(DMA1_Stream1, DMA_IT_TC, ENABLE); // 开启发送DMA通道中断 DMA_ClearFlag(DMA1_Stream1,DMA_FLAG_TCIF1|DMA_FLAG_HTIF1|DMA_FLAG_TEIF1|DMA_FLAG_DMEIF1|DMA_FLAG_FEIF1); // 清除DMA所有标志 DMA_Trans_Lines =0; DMA_Cmd(DMA1_Stream1, ENABLE); // 打开DMA } 初始化后,一运行DMA_Cmd(DMA1_Stream1, ENABLE); EN马上就清零,TEIF FEIF同时置位,DMA_BufferSize 由480变为479 各位能够帮我看看到底是怎么回事情么?问题出在那里? |
STM32F207+LWIP的网络丢包问题! 【悬赏问答】
STM32F207+DP83848+RTL8019可不可以实现双网口设计
深圳市旺宝电子STM32F207开发板例程集
STM32F2 器件 -25° 上电正常 复位就挂了
STM32F229 TIMER CNT问题
哪位工程师有STM32F2xx的寄存器手册?
STM32F2xx RTC启动不了,求助!!!!
STM32F2外部按键触发中断问题
STM32F205 低功耗模式有BUG?
STM32F207 两个ADC同时采样问题
评分
查看全部评分
是的 谢谢!