我用的单片机是STM32L151RDT6,使用原子例程DMA实验调试,DMA串口就是发送不出去,请大家帮帮忙

2019-08-18 19:46发布

int main(void)
{
        u16 i = 0;
        u16 Time_10ms = 0;




        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        Led1_Init();
        Uart4_Init(115200);
        Time2_Init(10);


        MYDMA_Config(DMA1_Channel4,(u32)&UART4->DR,(u32)UART4SendBuf,UART4_SEND_QUEUE_LENGTH);
        for(i=0; i<UART4_SEND_QUEUE_LENGTH; i++)
                UART4SendBuf[i] = 0x55;
        USART_DMACmd(UART4,USART_DMAReq_Tx,ENABLE);         //使能串口4的DMA发送      
        MYDMA_Enable(DMA1_Channel4);        //开始一次DMA传输!

       
        while(1)
        {
                Time_10ms ++;

               
                USART_DMACmd(UART4,USART_DMAReq_Tx,ENABLE);         //使能串口4的DMA发送      
                MYDMA_Enable(DMA1_Channel4);        //开始一次DMA传输!
                while(1)
                {
                        if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=RESET) //判断通道4传输完成
                        {
                                DMA_ClearFlag(DMA1_FLAG_TC4);//清除通道4传输完成标志
                                break;
                        }
                }
               
                Led1_Reverse(1000, Time_10ms);        // 运行灯
               
                while((TIM2->SR&0X0001) == 0);
                TIM2->SR&=~(1<<0);
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。