模拟智能家居项目
简述:基于模拟开发板的一个集成字的显示、图片显示、网络连接、线程控制内容的小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; }
注:由于操作比较简单,流程上都有操作方式,就不贴输出结果图了。