当前位置: 代码迷 >> 单片机 >> 请教 串口DMA 一直进HT中断但是不进HC和TE
  详细解决方案

请教 串口DMA 一直进HT中断但是不进HC和TE

热度:176   发布时间:2016-04-28 14:50:27.0
请问 串口DMA 一直进HT中断但是不进HC和TE
即一直进中间状态,不进完成和完成错误

奇葩,怎么办??

本机采用串口DMA收发,当不停接收上位机的数据,一旦接收停止,DMA仍不停发送回包,经查此时不断进入HT(发送过半中断)。
请问这段中断处理怎么改才能让它在无接收时停止发送,而不是不停发送?
if( DMA_GetITStatus(DMA2_FLAG_HT5))
{
DMA_Cmd(DMA2_Channel5, DISABLE);
DMA_ClearITPendingBit(DMA2_FLAG_HT5); 
USART_DMACmd(BSP_USART_422, USART_DMAReq_Tx, DISABLE);
}

一会儿我就看看寄存器什么的
------解决思路----------------------
信息量太少,不好分析
------解决思路----------------------
引用:
即一直进中间状态,不进完成和完成错误

奇葩,怎么办??

本机采用串口DMA收发,当不停接收上位机的数据,一旦接收停止,DMA仍不停发送回包,经查此时不断进入HT(发送过半中断)。
请问这段中断处理怎么改才能让它在无接收时停止发送,而不是不停发送?
if( DMA_GetITStatus(DMA2_FLAG_HT5))
{
DMA_Cmd(DMA2_Channel5, DISABLE);
DMA_ClearITPendingBit(DMA2_FLAG_HT5); 
USART_DMACmd(BSP_USART_422, USART_DMAReq_Tx, DISABLE);
}

一会儿我就看看寄存器什么的


找完整的,基本的DMA例程来调,直接上寄存器调会比较麻烦,除非你已经非常熟悉。
  相关解决方案