您尚未登录。

楼主 #1 2018-04-17 10:12:01

心痒难搔
会员
注册时间: 2018-04-17
已发帖子: 5
积分: 5

v3s 荔枝派getchar()读取错误

使用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);			
	}
}

此代码在其它平台上运行过,可正常工作,在荔枝派上运行出现上面描述的错误。
请教各位路过的大佬,这可能是什么原因造成的?有没有解决方法或者思路?

离线

楼主 #3 2018-04-17 10:20:17

心痒难搔
会员
注册时间: 2018-04-17
已发帖子: 5
积分: 5

Re: v3s 荔枝派getchar()读取错误

使用的是V3s linux-4.14-y

离线

楼主 #5 2018-04-17 10:30:09

心痒难搔
会员
注册时间: 2018-04-17
已发帖子: 5
积分: 5

Re: v3s 荔枝派getchar()读取错误

嗯,回家试一下,手头没有板子

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn