电机-串口模型-正点原子-待上传

已经有了DMA+IDLE的模型

BASE模型

陈强的改库函数模型

现在搞点击CSDN看到一个正点原子的工程

增加一个新模型

开启:《它在哪里再次开启的?在最下面的IT》
HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE);

回调:
#define RXBUFFERSIZE    1 //缓存大小
u16 USART_RX_STA=0;       //接收状态标记	
u8 aRxBuffer[RXBUFFERSIZE];//HAL库使用的串口接收缓冲
/*这就是one循环拿数据的*/
#define USART_REC_LEN  			200 
u8  USART_RX_BUF[USART_REC_LEN];
/*这真正放置数据的*/

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance==USART1)//如果是串口1
	{
		if((USART_RX_STA&0x8000)==0)//接收未完成--第一次这样的都会进来
		{
			if(USART_RX_STA&0x4000)//接收到了0x0d 已经之前设置了flag
			{
				if(aRxBuffer[0]!=0x0a)USART_RX_STA=0;//接收错误,重新开始
				else USART_RX_STA|=0x8000;	//接收完成了 333333333333333
			}
			else //还没收到0X0D--第一次进这里来
			{	
				if(aRxBuffer[0]==0x0d)USART_RX_STA|=0x4000;//222222222222
				else//--第一次进这里来1111111111111
				{
					USART_RX_BUF[USART_RX_STA++]=aRxBuffer[0] ;
					if(USART_RX_STA>(USART_REC_LEN-1))
					USART_RX_STA=0;//接收数据错误,重新开始接收	  
				}		 
			}
		}

	}
	/*也就是0X0D 0X0A收尾的 是一整*/
	/*下面类似空闲中断 一个报文已经好了*/
	if(USART_RX_STA&0x8000)
		{					   
			USART_RX_STA=0;
					   
			switch(USART_RX_BUF[0])
			{				 
				
				case 0x0A:	//zhengzhuan
					len=0;
				 	LED0(0);
				    break;
				case 0x0B:	//tinzhi 
					len=2;
					break;
				case 0x0C:	//fanzhuan 
					LED0(1);
					len=1;
					break;
			}
		}		
}

//IT
//串口1中断服务程序
void USART1_IRQHandler(void)                	
{ 
	u32 timeout=0;
    u32 maxDelay=0x1FFFF;
#if SYSTEM_SUPPORT_OS	 	//使用OS
	OSIntEnter();    
#endif
	
	HAL_UART_IRQHandler(&UART1_Handler);	//调用HAL库中断处理公用函数
	
	timeout=0;
    while (HAL_UART_GetState(&UART1_Handler)!=HAL_UART_STATE_READY)//等待就绪
	{
        timeout++;////超时处理
        if(timeout>maxDelay) break;		
	}
     
	timeout=0;
	while(HAL_UART_Receive_IT(&UART1_Handler,(u8 *)aRxBuffer, RXBUFFERSIZE)!=HAL_OK)//一次处理完成之后,重新开启中断并设置RxXferCount为1
	{
        timeout++; //超时处理
        if(timeout>maxDelay) break;	
	}
#if SYSTEM_SUPPORT_OS	 	//使用OS
	OSIntExit();  											 
#endif
} 
#endif	






 

 




猜你喜欢

转载自blog.csdn.net/weixin_42381351/article/details/88190487