DMA通过485发送数据有点问题

2019-07-21 05:51发布

DMA传输是好的,问题是,DMA传输完成之后需要把485的控制端拉低变成接收模式,如果直接在DMA完成中断里转换,会丢失最后两个数据,因为还没发出去。
现在只能是在DMA的完成中断中开启串口发送中断,然后再转换状态。好麻烦,还有什么好方法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
牧羊犬
2019-07-22 04:30
同问,小弟最近刚好在学这个,也用到了485.
现在还有个问题啊,顺便在这里问大家了,就是我的DMA发送和接收都只能执行一次,
执行下面代码时发现,DMAy_Streamx里的CR寄存器里的使能位置0后,无法置回1,这是怎么回事?
        DMA_Cmd(MyDMA_Structure->DMAy_Streamx, DISABLE);                //EN位 = 0
        DMA_SetCurrDataCounter(MyDMA_Structure->DMAy_Streamx,MyDMA_Structure->BufSize);
        DMA_Cmd(MyDMA_Structure->DMAy_Streamx, ENABLE);                //EN位 = 0(应为1才对呀)

一周热门 更多>