页次: 1
使用getchar()编了一段代码,放到荔枝派上运行时 无法获取正确的输入, 运行结果是不停打印else分支语句的提示字符串加一段乱码,程序代码如下:
/*
终端接收调试命令线程
在终端中输入相对应字符即可执行对应调试命令
根据需求 可增删改 调试命令
*/
void *Terminal_Cmd_Process(void *arg)
{
char cmd_buf[256] = {0};
char tmp;
uint8_t stat = 0, i = 0;
char *p = 0;
while(1){
while((tmp = getchar()) != '\n'){ //从终端逐个接收字符放到cmd_buf缓冲区中(不超过256字节) 收到'\n'结束
cmd_buf[i] = tmp;
i++;
}
if((p = strstr(cmd_buf,"init node"))){
printf("ENTER CMD :%s \r\n",cmd_buf);
Lora_Node_Init(Target_Node_Table[0],9,0);
}
else if((p = strstr(cmd_buf,"probe node"))){
printf("ENTER CMD :%s \r\n",cmd_buf);
Lora_Node_Prob_All(Target_Node_Table[0],9,0);
}
else if((p = strstr(cmd_buf,"lora send"))){
printf("ENTER CMD :lora send \r\n");
pthread_mutex_lock(&Lora_SRC_Lock[0]);
LoraMess_Forwarding("hello",5,0);
pthread_mutex_unlock(&Lora_SRC_Lock[0]);
}
else{
printf("unuseful cmd you have entered:%s\r\n",cmd_buf);
}
memset(cmd_buf,0,256);
i = 0;
//usleep(100000);
}
}
此代码在其它平台上运行过,可正常工作,在荔枝派上运行出现上面描述的错误。
请教各位路过的大佬,这可能是什么原因造成的?有没有解决方法或者思路?
页次: 1