void Receive_Data_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)
{
USART1->SR;
USART1->DR; //清USART_IT_IDLE标志
//关闭DMA
DMA_Cmd(DMA2_Stream2,DISABLE);
//清除标志位
DMA_ClearFlag(DMA2_Stream2,DMA_FLAG_TCIF4);
RS485_RX_CNT = 64 - DMA_GetCurrDataCounter(DMA2_Stream2);
//获得接收帧帧长
// memcpy(buf,Rx_Buf_Gsm,len);
//设置传输数据长度
DMA_SetCurrDataCounter(DMA2_Stream2,64);
//打开DMA
DMA_Cmd(DMA2_Stream2,ENABLE);
}
}
|