【bug 记录】

【bug 记录】

码农世界 2024-05-21 后端 63 次浏览 0个评论

bug记录

将数码管和led线程放在一起

有bug

当先开启数码管响应后,再去控制led,led控制会被数码管的响应覆盖;

所以在数码管的条件语句中需要添加一句将数码管指令赋值为0x70;

ioctl传参的时候cmd的数据类型unsigned char会报错,case语句超出unsigned char最大值,

因此定义时应该为unsigned int;

风扇控制时 如果使用

如果pthread_mutex_unlock在while外面,则需要再if里面解锁,不然cmd一直被锁住无法修改,风扇无法关闭,如果在while里面则不用在if里面解锁。

if(){} if(){} 会判断所有条件是否成立,互不干预,并都会去执行判断一次;可以在最后解锁

	while(1)
	{
	pthread_mutex_lock(&mutex_sqlite);
	pthread_cond_wait(&cond_sqlite,&mutex_sqlite);
	if(fan_cmd==0x21)
	{
		strcpy(fan_status, "1");
		write(fd,fan_status,sizeof(fan_status)/sizeof(fan_status[0]));
	//	pthread_mutex_unlock(&mutex_sqlite);
	//	sleep(2);
	}
  else	 if(fan_cmd==0x20)
	{	
		strcpy(fan_status, "0");
		write(fd,fan_status,sizeof(fan_status)/sizeof(fan_status[0]));
		sleep(2);
	}
	pthread_mutex_unlock(&mutex_sqlite);
	}
	if(){} else if(){} 如果 if条件成立,则 else if 不会再次执行;若if不成立,才会执行 else if语句;
使用这个语句需要先在if中解锁

转载请注明来自码农世界,本文标题:《【bug 记录】》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,63人围观)参与讨论

还没有评论,来说两句吧...

Top