模拟智能家居项目Part1

来自于两周的粤嵌实习,主要是网络编程和线程控制部分比较重要,贯穿了常用的C语言用法,值得做一个复盘,共有11个部分,本节介绍了环境安装。

Posted by LJJ on July 1, 2020

模拟智能家居项目

简述:基于模拟开发板的一个集成字的显示、图片显示、网络连接、线程控制内容的小demo。来自于粤嵌实习,在此对该项目做一个复盘总结。

环境安装

  • 流程
    • 软件介绍 vmware – 虚拟机 就是虚拟一台计算机 ubuntu – 操作系统 是基于Linux框架开发的 notepad++ – 这个是一个编辑软件(用来写代码的)
    • 设置共享目录 点击虚拟机-》设置-》选项-》共享文件(关机的状态下设置) 如何检测是否设置成功 打开终端 输入cd /mnt/hgfs 然后按 enter键 然后输入ls 再按enter键 就可以看到你设置的那个 共享目录的名字,如果没有就失败拉,按上述操作再来一次
    • 在linux下的一些基本命令 cd + 带路径的目录的名字(/根目录) 就是进入到那个目录 (.代表当前所在目录 ..代表当前所在目录 的上层目录) ls 列出当前目录下所有的文件 创建文件 touch + 文件名(如touch 1.txt) 删除文件 rm + 文件名(如 rm 1.txt) 创建目录 mkdir + 目录的名字 删除一个(空)目录 rmdir + 目录的名字 删除一个非空目录(或空) rm -rf + 目录的名字
    • 在linux下编译代码 用gcc编译器 gcc + xxx.c 默认生成一个a.out可执行文件 ./a.out 就可以运行编译以后产生的可执行文件
  • 尝试运行

    • 在虚拟机内打印helloworld

    • 运行代码

      #include <stdio.h>
      int main()
      {	
      								//花括号要成对打
      	printf("hello world\n");	//要有缩进 用tab键进行缩进,写代码的时候让代码有层次感
          	
      	return 0
      }					
      
  • 练习作业

    • 将2个整型变量的值交换,然后输出出来
    • 计算1加到100的总和,然后输出出来
    • 你从终端输入一个年份,判断是否位闰年 (4年一闰,百年不闰,400百年再闰)
    • 求1000以内的水仙花数 153 = 1 立方 + 5 立方 + 3 立方
    • 求100以内的素数(质数)
  • 代码实现

    • p1
    #include <stdio.h>
      
    int main(){
      	
    	int a,b;
    	scanf("%4d,%4d",&a,&b);
    	printf("%d\n",a+b);
      	
    	return 0;
    }
    
    • p2
    #include <stdio.h>
      
    int fbs(int n){
    	return n>1? n+fbs(n-1):1;
    }
      
    int main(){
    	int n;
    	scanf("%d",&n);
    	printf("累加得到:%d\n",fbs(n));
      	
    	return 0;
    }
    
    • p3
    #include <stdio.h>
      
    int isRy(int n){
    	if((n%4==0)&&(n%100!=0|n%400==0))
    		return 1;
    	else
    		return 0;
    }
      
    int main(){
    	int n;
    	scanf("%d",&n);
    	if(isRy(n)==1)
    		printf("该年为闰年!\n");
    	else
    		printf("该年不为闰年!\n");
      	
    	return 0;
    }
    
    • p4
    #include <stdio.h>
      
    int isFs(int n){
    	int a = n%10; // 个位数
    	int b = (n/10)%10; //十位数
    	int c = n/100; //百位数
      	
    	if(a*a*a+b*b*b+c*c*c==n)
    		return 1;
    	else
    		return 0;
    }
      
    int main(){
    	printf("1000以内的水仙花数有:");
    	for(int i=1;i<1000;i++){
    		if(isFs(i))
    			printf("%d\t",i);
    	}
    	printf("\n");
      
    	return 0;
    }
    
    • p5
    #include <stdio.h>
      
    int isSuN(int n){
    	for(int i=2;i<n;i++)
    		if(n%i==0)
    			return 0;
    	return 1;
    }
      
    int main(){
    	printf("5到100的素数有:");
    	for(int i=5;i<100;i++){
    		if(isSuN(i))
    			printf("%d ",i);
    	}
    	printf("\n");
      	
    	return 0;
    }
    
    • 附加一个心形代码,网上很多版本,都可以拿来用,效果可观。
    #include <stdio.h>
    #include <math.h>
    #include <stdio.h>
      
    int main(void)
    {
    	float y,x,z,f;
    	for(y=1.5f;y>-1.5f;y-=0.1f)
    	{
    	  for(x=-1.5f;x<1.5f;x +=0.05f)
    	  {
    		  z=x*x+y*y-1;
    		  f=z*z*z-x*x*y*y*y;
    		  putchar(f <= 0.0f ? "*********"[(int)(f*-8.0f)]:' ');
    	  }
    	  putchar('\n');
    	}
    	getchar();
    	return 0;
    }
    

注:由于操作比较简单,流程上都有操作方式,就不贴输出结果图了。