stm32 usart 发送数据 出现多余位

2019-03-23 20:21发布

USART3 DMA发送数据 内容如下:          0x15 0x01 0x0d 0x41 0x10 0x04 0x41 0x10 0x04 0x41 0x10 0x04 0x41 0x10 0x04 0x01 0x32 0x23 现在通过串口助手监视  内容如下: 0x00 0x15 0x01 0x0d 0x41 0x10 0x04 0x41 0x10 0x04 0x41 0x10 0x04 0x41 0x10 0x04 0x01 0x32 0x23 0x00   正好在开始 和 结尾都多出个00来,那位大侠指导下!     关于DMA 的程序片段(注释的发上来都是乱码 删了,) void DMA_CH2_Init(u32 CP_Addr,u32 CM_Addr,u16 Num)
 {
  DMA1_Channel2->CCR.W = 0;
  DMA1_Channel2->CPAR = CP_Addr;    //
  DMA1_Channel2->CMAR = CM_Addr;    //

  DMA1_Channel2->CNDTR = Num;    //
  //DMA1_Channel2->CCR.W = ;     //

  DMA1_Channel2->CCR.B.MSIZE = 0;   //´

  DMA1_Channel2->CCR.B.PSIZE = 0;   //
  
  DMA1_Channel2->CCR.B.MINC  = 1;   //
  DMA1_Channel2->CCR.B.PINC  = 0;   //
  
  DMA1_Channel2->CCR.B.DIR   = 1;   //
  DMA1_Channel2->CCR.B.CIRC  = 0;   //
  
  DMA1_Channel2->CCR.B.TCIE  = 1;   //Ï
  DMA1_Channel2->CCR.B.EN    = 1;   // 

 }  
/*************************´®¿Ú3·¢ËÍ*************************************/
void UART3_TXD_Data(u8 *DAT,u8 lengh)
 { 
 DMA_CH2_Init((u32)(&USART3->DR.W),(u32)xx,(u16)lengh); //
 }   
 //////////////////////////////////////////////////////////////////////
 void DMA1_Channel2_IRQHandler(void)
 {  
  if(DMA1->ISR.B.TCIF2 == 1)
  {  
  DMA1->IFCR.B.CGIF2 = 1;  //
  Clr_array(Uart3_send_buff,18);
  DMA1_Channel2->CCR.W = 0;   
  //UART3_TXD_DI; //
 }
 }
[ 本帖最后由 weining141 于 2011-8-4 21:04 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
weining141
1楼-- · 2019-03-23 21:58
 精彩回答 2  元偷偷看……
astwyg
2楼-- · 2019-03-24 01:49
应该不会啊.中断方式倒是有这个问题.搜索个例程看看吧

一周热门 更多>