GUN485项目的总结

1、DMA中配置要放在串口的配置后面。

2、DMA有3种中断方式:传输完成、传输一半、传输错误

3、如果要用DMA容易造成串口数据还没发完就把485的控制脚拉低导致数据没发完。解决办法是DMA发送完成中断里加延时(但是中断里延时不好)。

//void DMA1_Channel4_IRQHandler()
//{
//  if(DMA_GetITStatus(DMA1_IT_TC4))	//传输完成
//  {
//    Delay(0xffff);  //容易导致串口数据未发送完成就拉低485的控制引脚,所以得延时
//    S4851_L();
//    DMA_ClearITPendingBit(DMA1_IT_TC4);
//  }
//
////  if(DMA_GetITStatus(DMA1_IT_TE4)) //传输错误
////  {
////	CurrDataCounterEnd=DMA_GetCurrDataCounter(DMA1_Channel4);
////    DMA_ClearITPendingBit(DMA1_IT_TE4);
////  }
////
////  if(DMA_GetITStatus(DMA1_IT_HT4)) //传输过半
////  {
//// 
////    DMA_ClearITPendingBit(DMA1_IT_HT4);
////  }
//}

  

posted @ 2016-05-14 17:48  SuGuolin  阅读(476)  评论(0)    收藏  举报