上篇讲了OV7670读取一帧图像的数据,是使用单个数据端口读取的,然后去读到的数据程序拼接而成了。拼接的程序
但实际上我们可以直接通过端口来操作,我们来看看接口图,14-21引脚是GPIO0的C组接口
我们在这个目录下找个这个文件 \1.3.0\system\libfireduino\include\ard_gpio.h 下面的5个文件就是可以直接进行端口操作的 _get_port是根据Pin的编号获取对应的Port的名称,是GPIO0,GPIO1还是GPIO2 _get_mask就是获得这个Pin的屏蔽信息, _get_dr就是数据输出寄存器, _get_ind就是数据输入寄存器 _get_ddr就是数据方向寄存器了
在这个目录下我们找到了对应的关系,从函数的名称可以直接看到对应的内容 \1.3.0\cores\arduino\Arduino.h
使用下面语句可以短接引脚到VCC,GND得到读取端口值对应的引脚关系 Port = _get_port(14); Out = _get_ind(Port); Serial.println(Port); while(1) { DAT = *Out; Serial.println(DAT,HEX); delay(2000); } 值对应的引脚高->低,D7-D0,C7~C0,B7~B0,A7~A0,这样我们就可以直接使用端口来读取数据了,不用再进行拼接处理了
用到的端口和输入定义
功能初始化增加获取端口号处理
读取数据时直接使用端口读取数据
串口打印的数据
|