标签:烧录 led img OPEN app EC 开发板 include 快速
一、解压配置工程
将网盘资料中的template.zip解压到任意位置(可以自己建立一个工作区)
双击打开openec_main.ino
左上角 工具->开发板 看看是不是AI Thinker ESP32-CAM,如果不是则选择此开发板。
二、编写代码
初始模板中的代码已经可以运行,下面对代码做简单地解释。
此模块开发语言为C语言。
#include "esp_camera.h"
#include "app_led.h"
#include "app_camera.h"
#include "display.h"
#include "app_uart.h"
#include "image.h"
#define CAMERA_MODEL_AI_THINKER
void setup() {
app_camera_main();
app_led_init();
app_led_set(0);
Lcd_Init();
Lcd_Clear(WHITE);
}
void loop() {
Image img=image_read_from_camera();
display_show_img(img);
image_free(img);
app_led_toggle();
}
前面的#include包含头文件,需要用什么功能就包含哪些头文件。本例子中需要用到摄像头、LED、显示模块、图像处理。
Arduino中,程序执行顺序为,上电启动后,先执行一次setup函数,用于一些初始化操作以及配置,然后循环重复执行loop中的程序。
setup
在setup中,初始化了摄像头,LCD,LED外设。
app_led_set(0);
这行将LED熄灭。app_led_set(1)则将LED点亮。
Lcd_Clear(WHITE);
这行将LCD显示为全白。
loop
loop里的操作就是从摄像头读取一帧图像,然后显示在LCD中,然后LED状态翻转一下(亮变灭,灭变亮)。
Image img=image_read_from_camera();
Image结构体用于存储图像信息,将摄像头读到的数据存到一个Image中。
display_show_img(img);
将img中的图像信息显示在LCD中
image_free(img);
如果某一个图像之后不再使用,请及时释放,否则会造成内存泄漏。
由于下一个循环又从摄像头中读取新的图像,因此旧的图像信息不再使用,显示完后就立即释放。
app_led_toggle();
翻转LED的状态,亮变灭,灭变亮。
三、编译烧录验证
接下来将程序烧录进OPEN-EC中
1.验证
点击左上角的 √(验证)编译代码
如果没有Error,下方会出现项目使用了。。。。
有Error的话,根据Error提示的信息修改代码。
2.烧录
将开发板通过数据线连接到电脑上,然后左上角 工具->端口 选择连接开发板的端口。如果有多个不知道是哪个,可以拔掉开发板再看一下,少了哪个就是哪个。
选择好端口之后,按下开发板上的FLASH按钮,进入烧写代码模式。
进入烧写模式后,点击左上角的 -> (上传)
待下方出现Hard resetting via RTS pin...后,按下开发板上的RST,运行程序。
如果不出意外的话,LCD上就会显示摄像头读取到的图像了。
三、可能出现的问题
1.上传烧录时,下方一直出现connecting ....___
按一下开发板中的FLASH即可。
附:关于ESP32启动方式,复位或上电后由IO0的状态决定:
1.IO0为高电平--正常启动flash的程序
2.IO0位低电平--启动固件烧录程序,用于给flash烧录程序
本开发板集成了硬件一键烧录电路(不支持软件复位),按下RST直接复位,可以正常运行程序,按下FLASH先自动IO0接地,再复位,再恢复IO0。
2.找不到串口端口
拔了和插上开发板,端口都一样,插上去没反应,
检查一下板子上的有线无线切换开关,确保开关处于弹起状态。
附:弹起状态时,ESP32的串口0(调试下载终端)选择为有线连接,即通过有线连接至电脑进行通信。
按下状态时,串口0通过无线模块,与电脑进行通信。
标签:烧录,led,img,OPEN,app,EC,开发板,include,快速 来源: https://www.cnblogs.com/explorerSZY/p/16198957.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。