DMA和ModBus

2019-07-20 17:47发布

  我想在战舰系列上使用ModBus,串口用DMA通信,之前有用串口中断实现的ModBus,现在如何用DMA实现啊,之前串口中断在ModBus的portserial.c里面是有这样的代码:
void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable )
{   

    if(TRUE==xRxEnable)
    {
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
    }
    else
    {
        USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);   
    }

    if(TRUE==xTxEnable)
    {
        USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
    }
    else
    {
       USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
    }
}
现在用DMA只有一个空闲中断,要怎么做啊,而且使用DMA发送是每次发送都要使能:DMA_Cmd(DMA2_Stream7, ENABLE)然后在中断里面DISABLE,在MODBUS中要怎么弄啊,求助,谢谢各位大神,刚开始用MODBUS

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