完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
经过这段时间断断续续的学习,磕磕绊绊中还是学会了很多东西~ 从最开始的开箱到现在项目结项,发现自己有太多东西需要学习。 项目概述: 1 通过温湿度传感器获取盆栽植物的生长环境情况,并实时的显示在显示屏上 2 通过判断温湿度是否满足需要浇水的条件来控制控制器进行浇水操作 3 通过摄像头将采集到的图像定时传送给微信客户端 在按着教程搭建好开发环境后~ 就是规划硬件资源的分配与使用: 在这个项目中的资源需求有: 1 获取温湿度传感器数据 2 对控制器的控制 3 摄像头数据的采集 针对这三个需求,具体下来: 1 温湿度数据获取,使用板子自带的DHT11,占用了1个IO口 2 浇水动作,只需要控制执行器的开关操作即可,因此选择合适的电机驱动时只需要一个引脚就可以完成控制了 3 摄像头数据采集,由于一般摄像头需要的引脚较多,但是现有板子上的资源不够,因此我们采用了一种曲线救国的方式,通过另外一个单片机读取摄像头数据,再通过串口或者SPI传输给ESP。 具体的引脚分配: 1 使用现有资源,不用分配 2 使用一个可以作为输出的引脚,最后定为GPIO5 3 使用串口0来传输图片数据 然后开始具体开发工作: 对于习惯了windows开发的我来说,对于这种文件比较多的项目,Source Insight是快速理解代码结构的最好工具: 如图: 对于c语言开发者来说,一般对于一个工程第一步都是从main函数入手,习惯性的先搜索main,但是发现只是出现了一个User_main.c文件,点开一看,发现也并没有main函数,之后又花了些功夫寻找,还是没有找到,最后回到文件夹下查看,发现工程中有大量的.a文件,也就是静态库文件,就我理解,工程中很多源代码的具体实现包括main在内都被封装到了.a文件中,当然,可能我的理解有误,如果有问题欢迎交流~~ 扯远了... 回到工程目录,这里就不截图了,目录结构还是规划的非常好的,执行文件,应用文件,头文件,链接脚本,静态库,第三方库这些东西都一目了然;考虑到开发的系统差异还分别使用了.bat的脚本和shell脚本,甚至还看见了.py的python脚本~~ 当然,代码的细节方面还是有些小瑕疵的, 比如经常出现的goto语句,从最开始学习c就被教导尽可能不适用goto的我看的非常辣眼睛... 还有就是注释方面个人建议都改为英文的,只要是个程序员,英语迟早是道坎。并且由于编辑器文件中文还会经常出现乱码... 系统的大体框架可以看出是freertos+lwip,刚才提到了User_main.c,这个文件就是用户需要修改的文件,由于是RTOS,在开发时需要新建task,在我的项目中,添加了一个task: |
|
相关推荐
4 个讨论
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
[小e体验板] 【小体积大智慧】关于体验板的技术问题,看这一篇就够了
2881 浏览 4 评论
【小e1开发板试用体验】分析程序架构四~/Share/SDK/makefile分析
3648 浏览 1 评论
6767 浏览 19 评论
29276 浏览 59 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 11:04 , Processed in 0.756392 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号