初级会员 
  
	- 积分
 - 98
 
        - 金钱
 - 98 
 
       - 注册时间
 - 2018-8-21
 
      - 在线时间
 - 10 小时
 
 
 
 | 
 
1金钱 
中断部分代码如下: 
void USART1_IRQHandler(void) 
{ 
   u8 tem; 
   if(USART_GetITStatus(USART1,USART_IT_IDLE)!= RESET) 
   { 
     tem=USART1->SR; 
     tem=USART1->DR; 
     tem=tem; 
     uart1_set_event(E_uart_idle); 
     serial_rx_buffer1_head = RX_BUFFER1_SIZE - USART1_RX_DMA_CHANNEL->CNDTR; 
     serial_Outtime1 = 0; 
     USART_ClearITPendingBit(USART1, USART_IT_IDLE); 
   }  
   if(USART_GetITStatus(USART1,USART_IT_TC)!= RESET)  
   { 
     USART_ClearITPendingBit(USART1, USART_IT_TC);  
     DMA_Cmd(USART1_TX_DMA_CHANNEL, DISABLE);  
     USART1_TX_DMA_CHANNEL->CNDTR=0;  
     uart1_set_event(E_uart_tc);  
   }  
} 
如果是有固定帧头帧尾,接收到的数据被DMA搬运到变量serial_rx_buffer1中,解析时只需找到帧头帧尾,就可得到完整的一帧数据。MQTT数据包中没有固定帧头帧尾,该如何解析? 
 |   
 
 
 
 
 
 |