网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月12日漏签0天
stm32吧 关注:48,120贴子:146,345
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 13回复贴,共1页
<<返回stm32吧
>0< 加载中...

STM32f4+ov2640摄像头 实现VR 记录帖,盖个楼

  • 只看楼主
  • 收藏

  • 回复
  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我是stm32零基础,准备做个摄像头传到上位机,然后互动,用的是野火的挑战者 stm32f429的板子,写个帖子记录一下,有问题也好问大家
先晒板子


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
按照565格式进行分解
load 123.txt
I=zeros(480,800,3);
I(:,:,1)=X123/(2^11)*2;
I(:,:,2)=mod(X123,2^11)/(2^5);
I(:,:,3)=mod(X123,2^5)*2;
subplot(1,4,1);imshow(I(:,:,1),[]);title('R');
subplot(1,4,2);imshow(I(:,:,2),[]);title('G');
subplot(1,4,3);imshow(I(:,:,3),[]);title('B');
subplot(1,4,4);imshow(uint8(I*4));title('ALL');


2025-11-12 16:16:02
广告
不感兴趣
开通SVIP免广告
  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
放点颜色再测试,看不到明显失真


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
做图像处理必然要用到浮点运算,先学习一下基础知识https://blog.csdn.net/tercel_zhang/article/details/52537726程序员必知之浮点数运算原理详解


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为要做2次开发,因此必须自己写个串口程序,从网上搜了下,matlab的串口接受很简单啊


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
USB转串口+Matlab读取显示,不是一般的慢,不过别着急,慢慢来


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
连续图像出现了行不同步现象。。。调试中。。。。


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这是我的同步画面。。。。。。把像素缩小到48*80....可以实现2秒一帧。。。。。。串口慢没办法。
而且还有个问题,第一行的数据总不对呢
void DMA2_Stream1_IRQHandler(void)
{
uint16_t i_line=0;
uint16_t i_column=0;
if( DMA_GetITStatus(DMA2_Stream1,DMA_IT_TCIF1) == SET )
{
line_num++;
if(line_num==out_height)
{
line_num=0;
//这里加发送最安全
}
OV2640_DMA_Config(FSMC_LCD_ADDRESS+(out_width*2*(out_height-line_num-1)),out_width/2);
DMA_ClearITPendingBit(DMA2_Stream1,DMA_IT_TCIF1);
}
}
void DCMI_IRQHandler(void)
{
if( DCMI_GetITStatus (DCMI_IT_FRAME) == SET )
{
fps++;
line_num=0;
这里加不好,时间过长打乱同步
DCMI_ClearITPendingBit(DCMI_IT_FRAME);
}
}


2025-11-12 16:10:02
广告
不感兴趣
开通SVIP免广告
  • 8我啥都不知道
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
加油


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
==============分割线============================
记下来需要研究两点
1.如果在stm32中对图像进行基本处理,具体牵扯到如何进行矩阵的运算,dsp和fpu的使用
2.如何换成频率更快的wifi来传输图像,提高数据传输速率


  • superroy521
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
%名 称:Matlab串口-Lab1
%描 述:串口读,并写入txt文件中
function main()
clc;clear all;
delete(instrfindall);%删除所有已连接的设备,防止非正常关闭时占用接口
alldata=[];
s=serial('com4','baudrate',115200);
s.BytesAvailableFcnMode='byte'; % 串口设置
s.InputBufferSize=240*800;%4096;
s.OutputBufferSize=1024;
s.BytesAvailableFcnCount=100;
s.Timeout=20;
s.ReadAsyncMode='continuous';
s.Terminator='CR';
fopen(s); %打开串口
frameMark=[1,255,2,255,3,255];
i_f=1000;
fps=0;
w=200;
h=120;
while i_f>0
fps=fps+1;
alldata=[];data=[];
i_f=i_f-1;
%检测帧同步信号
fprintf('wait for singnal...\n');
alldata=waitSignal(s,frameMark,alldata);
fprintf('got it!!!\n');
i=1;
% while i<=240
data=fread(s,w*h*2,'uint8');
% i=i+1
%end
I=zeros(h,w*2);
%检测其中是否有帧同步信号
% ip=1;
% while ip<length(data)-length(frameMark)+1 && ~all(data(ip:ip+length(frameMark)-1)==frameMark')
% ip=ip+1;
% end
% ip_end=min([ip-1,240*800]);
ip_end=w*h*2;
IT=I';
IT(1:ip_end)=data(1:ip_end);
I=IT';
image_RGB(:,:,1)=I(:,2:2:end)/(2^3)*8;
image_RGB(:,:,2)=(mod(I(:,2:2:end),2^3)*2^3+I(:,1:2:end)/(2^5))*4;
image_RGB(:,:,3)=mod(I(:,1:2:end),2^5)*8;
imshow(imresize(uint8(image_RGB),4));
pause(0.2);
% if fps>10
% i;
% end
end
fclose(s);
delete(s);
function alldata=waitSignal(s,signal,alldata)
flag_new=false;
%检测行同步信号
while ~flag_new
i=1;
out=fread(s,1,'uint8');
alldata=[alldata;out];
while i<=length(signal) && out==signal(i)
i=i+1;
if i>length(signal)
flag_new=true;
else
out=fread(s,1,'uint8');
alldata=[alldata;out];
end
end
end


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 13回复贴,共1页
<<返回stm32吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示