如题所说,服务器的数据前缀名是:serdata:,程序是检测接收到的数据中是否存在前缀字符串,是就认为是服务器数据,采用stm32mini的串口2进行接收,但是总是只能接收到一部分数据,例如:服务器发来得到数据是:serdata:1,200;但是我打印串口接收到的数据总是serdata:1;后面的200接收不到,不知道什么原因,也不会是缓存的问题,因为我之前前缀名是server data:,也是只能够接收到冒号后面一个数据,串口接收程序如下:
void USART2_IRQHandler(void)
{
u8 Res=0;
while(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
{
Res = USART_ReceiveData(USART2);
Uart2_Buf[First_Int] = Res; //½«½óêÕμ½μÄ×Ö·û′®′æμ½»o′æÖD
First_Int++; //»o′æÖ¸ÕëÏòoóòƶˉ
if(First_Int > Buf2_Max) //èç1û»o′æÂú,½«»o′æÖ¸ÕëÖ¸Ïò»o′æμÄê×μØÖ·
{
First_Int = 0;
}
}
if(Find("serdata:"))
{
//printf("shoudao");
strcpy(temp,Uart2_Buf);
//temp[i++]=Uart2_Buf[First_Int];
//printf("%c",temp[i]);
printf("%s",temp);
}
}
一周热门 更多>