本帖最后由 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); //Ïò′®¿ú1·¢Ëíêy¾Y
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//μè′y·¢Ëí½áêø
}
USART_RX_STA=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>