OV7670+M16+串口发送上位机机显示终于调试成功,发帖庆祝下。
非常感谢wangguanfu的支持,代码是参考他的,采集完一副图像后通过串口发送到上位机软件显示,点击刷新即开始发送,图像质量还有点问题,本人对光学参数不懂,希望大家指点下
(原文件名:111.jpg)
现贴出所有代码,下位机是用M16做主控芯片,OV7670+AL422,电路原理图也是参照wangguanfu的。上位机是用delphi写的,采用写显存的方式刷新BMP控件,这样显示速度很快,比每个像素点赋值快多了。关键代码如下:
bmp1:=tbitmap.Create;
bmp1.PixelFormat:=pf16bit; //16位RGB565格式,蓝色在低位
bmp1.Height:=240;
bmp1.Width:=320;
for j:=0 to 239 do //行扫描,240行
begin
P[j]:=bmp1.ScanLine[j];
for i:=0 to 319 do
begin
P[j][i*2+1]:=gImage_11[index]; //写入像素值
index:=index+1;
P[j][i*2]:=gImage_11[index];
index:=index+1;
。。。。。。。。。。。
这个串口传输协议是,点击“刷新”,发送字符‘D’给M16,——>M16发送320字节图像数据作为一帧,上位机接收到并写入到显存后发送‘D’——>M16继续发送下一帧数据
整个传输协议还是比较粗糙的,只作为验证用,还得加入校验,及修改帧的长度,以获得最好的传输效率,下一步打算用无线串口蓝牙模块试下,这样就可以够成一个无线的图像传输了,呵呵,用个M16+AL422+OV7670+无线蓝牙串口=什么,就是个微型的tou拍(你懂的——toupai)设备,拿手机接收就可以显示了,嘿嘿
delphi7工程文件:点击此处下载 ourdev_640838LFTR0Q.rar(文件大小:184K) (原文件名:串口显示.rar)
M16+OV7670+AL422代码:点击此处下载 ourdev_640839EM195C.rar(文件大小:79K) (原文件名:OV7670+AL422_test.rar)
电路原理图:点击此处下载 ourdev_640840KE3U4R.pdf(文件大小:62K) (原文件名:OV7670+FIFO.pdf) |
|
|
|