485与DMA能共用吗?

2019-07-20 15:59发布

本帖最后由 Eternal单人行 于 2017-3-21 14:59 编辑

本人想事先将命令操作写入数组,然后通过DMA调用,将命令用485发送给外设,再将外设的反馈的数据由串口输出,但获取不到反馈数据
DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;//′æ′¢Æ÷μ½íaéèÄ£ê½

//主循环
        while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        RS485_TX_EN=1;
                        USART_DMACmd(USART2,USART_DMAReq_Tx,ENABLE);  //ê1Äü′®¿ú1μÄDMA·¢Ëí     
                        MYDMA_Enable(DMA1_Stream6,SEND_BUF_SIZE);     //¿aê¼ò»′ÎDMA′«ê䣡         
                        while(1)
                        {
                                if(DMA_GetFlagStatus(DMA1_Stream6,DMA_FLAG_TCIF4)!=RESET)//μè′yDMA2_Steam7′«êäíê3é
                                {
                                        DMA_ClearFlag(DMA1_Stream6,DMA_FLAG_TCIF4);//Çå3yDMA2_Steam7′«êäíê3é±êÖ¾
                                        break;
                    }
                        }
                        RS485_TX_EN=0;
                        
                }
                RS485_Receive_Data(recvbuf,&key);
                if(key)//½óêÕμ½óDêy¾Y
                {
                                for(i=0;i<key;i++)
                                {
                                        USART_SendData(USART1, recvbuf);         //&#207;ò′&#174;&#191;ú1·¢&#203;íêy&#190;Y
                                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢&#203;í&#189;áê&#248;
                                }
                                USART_RX_STA=0;
                }
        }

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