总结:写while函数等类型的循环要添加“{ }”,不然不知道会出什么错误。


原函数:

void division_func(void)

{

char *p=NULL;

int i =0;

//如USART1接收到的字符串:2013-12-14

//以‘-’分割字符串,现在分割出的第一个字符串为:2013

p = strtok((char *)g_usart1_recv_buf,"-");

printf("分割:%d  %s\r\n", i++, p);

//继续分割

while((p=strtok(NULL,"-"))) 

printf("分割:%d %s\r\n", i++, p);

}


运行结果:有误

STM32F4串口打印 while函数出错_第1张图片



修改后:

void division_func(void)

{

char *p=NULL;

int i =0;

//如USART1接收到的字符串:2013-12-14

//以‘-’分割字符串,现在分割出的第一个字符串为:2013

p = strtok((char *)g_usart1_recv_buf,"-");

printf("分割:%d  %s\r\n", i++, p);

//继续分割

while((p=strtok(NULL,"-"))) 

    {

printf("分割:%d %s\r\n", i++, p);

    }

}


运行结果:正常

STM32F4串口打印 while函数出错_第2张图片