串口服务器给stm32发送串口消息

我使用的是有人USR-TCP232-410s

在使用网页转串口时,串口的接收程序是用的正点原子的标准程序(我看了这么多人发的博客,只有正点原子的串口接收写的是最标准的,因为上信盈达培训班时老师就给讲了,这样写是多少数据都可以接收的,而不像网上很多学生写的,只能接收到固定长度的信息),当然结束符可以自己定义,也就是你可以改为自己的协议,我还是倾向于使用通用的协议。

void USART1_IRQHandler(void)                	//串口1中断服务程序
{
	u8 Res;
	#if SYSTEM_SUPPORT_OS 		//如果SYSTEM_SUPPORT_OS为真,则需要支持OS.
	OSIntEnter();    
	#endif
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
		{
		Res =USART_ReceiveData(USART1);	//读取接收到的数据
		//printf("Res%x",Res);//插入换行
		//printf("USART_RX_STA%x",USART_RX_STA);//插入换行
		if((USART_RX_STA&0x8000)==0)//接收未完成
			{
			if(USART_RX_STA&0x4000)//接收到了0x0d
				{
				if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始 0x0a
				else USART_RX_STA|=0x8000;	//接收完成了 
				}
			else //还没收到0X0D
				{	
				if(Res==0x0d)USART_RX_STA|=0x4000;//收到0X0D
				else
					{
					USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
					USART_RX_STA++;
					if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收	  
					}		 
				}
			}   		 
     }
	 }

串口服务器给stm32发送串口消息_第1张图片

 结束符必须发送0D0A    点击发送HEX 串口才可以接收的到

串口服务器给stm32发送串口消息_第2张图片

 410s可以使用网络助手,从电脑端发送,

串口服务器给stm32发送串口消息_第3张图片

这里讲一下 0D0A  就是\r \n

你可能感兴趣的:(stm32,单片机,嵌入式硬件)