你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32mini板和OV7670摄像头的串口实验

[复制链接]
亮剑2015 提问时间:2015-3-4 22:59 /
最近在做用STM32mini板和OV7670摄像头的串口实验,把RGB值通过串口传给电脑,参考了下http://www.openedv.com/posts/list/12583.htm帖子,有些收获,但是为什么串口收不到得到的RGB值呢?换了个例程测试了下串口可以收到数据,但为什么不能接收到RGB值呢?
下面是修改后的源码,大多数参考上面那个帖子:
[size=1em][size=1em][backcolor=rgb(248, 248, 248) !important][color=#a0a0a0 !important]view source[color=#a0a0a0 !important]print[color=#a0a0a0 !important]?

[size=1em][backcolor=rgb(255, 255, 255) !important][size=1em]
01
void camera_refresh(void)

[backcolor=rgb(248, 248, 248) !important][size=1em]
02
{

[backcolor=rgb(255, 255, 255) !important][size=1em]
03
u32 j,i;

[backcolor=rgb(248, 248, 248) !important][size=1em]
04
    u16 color,color1,color2;

[backcolor=rgb(255, 255, 255) !important][size=1em]
05
u16 r,g,b;   

[backcolor=rgb(248, 248, 248) !important][size=1em]
06
if(ov_sta==2)

[backcolor=rgb(255, 255, 255) !important][size=1em]
07
{

[backcolor=rgb(248, 248, 248) !important][size=1em]
08
LCD_Scan_Dir(U2D_L2R);   //从上到下,从左到右

[backcolor=rgb(255, 255, 255) !important][size=1em]
09
LCD_SetCursor(0x00,0x0000); //设置光标位置

[backcolor=rgb(248, 248, 248) !important][size=1em]
10
LCD_WriteRAM_Prepare();     //开始写入GRAM

[backcolor=rgb(255, 255, 255) !important][size=1em]
11


[backcolor=rgb(248, 248, 248) !important][size=1em]
12
        OV7670_RRST=0;              //开始复位读指针

[backcolor=rgb(255, 255, 255) !important][size=1em]
13
        OV7670_RCK_L;

[backcolor=rgb(248, 248, 248) !important][size=1em]
14
        OV7670_RCK_H;

[backcolor=rgb(255, 255, 255) !important][size=1em]
15
        OV7670_RCK_L;

[backcolor=rgb(248, 248, 248) !important][size=1em]
16
        OV7670_RRST=1;              //复位读指针结束

[backcolor=rgb(255, 255, 255) !important][size=1em]
17
        OV7670_RCK_H;   

[backcolor=rgb(248, 248, 248) !important][size=1em]
18
for(j=0;j<76800;j++)

[backcolor=rgb(255, 255, 255) !important][size=1em]
19
{

[backcolor=rgb(248, 248, 248) !important][size=1em]
20
OV7670_RCK_L;

[backcolor=rgb(255, 255, 255) !important][size=1em]
21
color = GPIOC->IDR&0XFF; //读数据

[backcolor=rgb(248, 248, 248) !important][size=1em]
22
OV7670_RCK_H;

[backcolor=rgb(255, 255, 255) !important][size=1em]
23
color=color1;

[backcolor=rgb(248, 248, 248) !important][size=1em]
24
color<<=8;  

[backcolor=rgb(255, 255, 255) !important][size=1em]
25
OV7670_RCK_L;

[backcolor=rgb(248, 248, 248) !important][size=1em]
26
color = GPIOC->IDR&0XFF; //读数据

[backcolor=rgb(255, 255, 255) !important][size=1em]
27
OV7670_RCK_H;

[backcolor=rgb(248, 248, 248) !important][size=1em]
28
color|=color2;

[backcolor=rgb(255, 255, 255) !important][size=1em]
29
LCD->LCD_RAM=color;

[backcolor=rgb(248, 248, 248) !important][size=1em]
30
//   printf("%d,",color1);

[backcolor=rgb(255, 255, 255) !important][size=1em]
31
//   printf("%d\n",color2);

[backcolor=rgb(248, 248, 248) !important][size=1em]
32
r= color1 & 0xF8;

[backcolor=rgb(255, 255, 255) !important][size=1em]
33
g=((color1 &0x07 )<<3 | (color2 & 0xe0 ) >>5 ) << 2;

[backcolor=rgb(248, 248, 248) !important][size=1em]
34
b=(color2 & 0x1f )<<3;

[backcolor=rgb(255, 255, 255) !important][size=1em]
35
printf(",%d,%d,%d,\n",r,g,b);     

[backcolor=rgb(248, 248, 248) !important][size=1em]
36
}

[backcolor=rgb(255, 255, 255) !important][size=1em]
37
}

[backcolor=rgb(248, 248, 248) !important][size=1em]
38


[backcolor=rgb(255, 255, 255) !important][size=1em]
39
EXTI->PR=1<<8;          //清除LINE8上的中断标志位

[backcolor=rgb(248, 248, 248) !important][size=1em]
40
ov_sta=0;    //开始下一次采集

[backcolor=rgb(255, 255, 255) !important][size=1em]
41
     ov_frame++;

[backcolor=rgb(248, 248, 248) !important][size=1em]
42
//   LCD_Scan_Dir(DFT_SCAN_DIR);    //恢复默认扫描方向

[backcolor=rgb(255, 255, 255) !important][size=1em]
43
}

[backcolor=rgb(248, 248, 248) !important][size=1em]
44


[backcolor=rgb(255, 255, 255) !important][size=1em]
45
int main(void)

[backcolor=rgb(248, 248, 248) !important][size=1em]
46
{  

[backcolor=rgb(255, 255, 255) !important][size=1em]
47
u8 lightmode=0,saturation=2,brightness=2,contrast=2;

[backcolor=rgb(248, 248, 248) !important][size=1em]
48
u8 effect=0;     

[backcolor=rgb(255, 255, 255) !important][size=1em]
49
u8 len;

[backcolor=rgb(248, 248, 248) !important][size=1em]
50
u8 t;

[backcolor=rgb(255, 255, 255) !important][size=1em]
51
usmart_dev.init(72);    //初始化

[backcolor=rgb(248, 248, 248) !important][size=1em]
52
OV7670_Init();      

[backcolor=rgb(255, 255, 255) !important][size=1em]
53
delay_ms(1500);        

[backcolor=rgb(248, 248, 248) !important][size=1em]
54
OV7670_Light_Mode(lightmode);

[backcolor=rgb(255, 255, 255) !important][size=1em]
55
OV7670_Color_Saturation(saturation);

[backcolor=rgb(248, 248, 248) !important][size=1em]
56
OV7670_Brightness(brightness);

[backcolor=rgb(255, 255, 255) !important][size=1em]
57
OV7670_Contrast(contrast);

[backcolor=rgb(248, 248, 248) !important][size=1em]
58
    OV7670_Special_Effects(effect);  

[backcolor=rgb(255, 255, 255) !important][size=1em]
59


[backcolor=rgb(248, 248, 248) !important][size=1em]
60
TIM6_Int_Init(10000,7199);   //10Khz计数频率,1秒钟中断     

[backcolor=rgb(255, 255, 255) !important][size=1em]
61
EXTI8_Init();    //使能定时器捕获

[backcolor=rgb(248, 248, 248) !important][size=1em]
62
OV7670_Window_Set(10,174,240,320);  //设置窗口   

[backcolor=rgb(255, 255, 255) !important][size=1em]
63
    OV7670_CS=0;

[backcolor=rgb(248, 248, 248) !important][size=1em]
64


[backcolor=rgb(255, 255, 255) !important][size=1em]
65
delay_init();            //延时函数初始化   

[backcolor=rgb(248, 248, 248) !important][size=1em]
66
NVIC_Configuration();    //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

[backcolor=rgb(255, 255, 255) !important][size=1em]
67
uart_init(9600);        //串口初始化为9600   

[backcolor=rgb(248, 248, 248) !important][size=1em]
68


[backcolor=rgb(255, 255, 255) !important][size=1em]
69
while(1)

[backcolor=rgb(248, 248, 248) !important][size=1em]
70
{

[backcolor=rgb(255, 255, 255) !important][size=1em]
71
if(USART_RX_STA&0x8000)

[backcolor=rgb(248, 248, 248) !important][size=1em]
72
{      

[backcolor=rgb(255, 255, 255) !important][size=1em]
73
len=USART_RX_STA&0x3f;//得到此次接收到的数据长度

[backcolor=rgb(248, 248, 248) !important][size=1em]
74
     printf("\r\n您发送的消息为:\r\n\r\n");

[backcolor=rgb(255, 255, 255) !important][size=1em]
75
for(t=0;t<len;t++)

[backcolor=rgb(248, 248, 248) !important][size=1em]
76
{

[backcolor=rgb(255, 255, 255) !important][size=1em]
77
USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据

[backcolor=rgb(248, 248, 248) !important][size=1em]
78
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束

[backcolor=rgb(255, 255, 255) !important][size=1em]
79
}

[backcolor=rgb(248, 248, 248) !important][size=1em]
80
           camera_refresh();

[backcolor=rgb(255, 255, 255) !important][size=1em]
81


[backcolor=rgb(248, 248, 248) !important][size=1em]
82
delay_ms(10);

[backcolor=rgb(255, 255, 255) !important][size=1em]
83
}else

[backcolor=rgb(248, 248, 248) !important][size=1em]
84
{

[backcolor=rgb(255, 255, 255) !important][size=1em]
85
       printf("请输入数据,以回车键结束\n");

[backcolor=rgb(248, 248, 248) !important][size=1em]
86
  delay_ms(10);  

[backcolor=rgb(255, 255, 255) !important][size=1em]
87
}

[backcolor=rgb(248, 248, 248) !important][size=1em]
88


[backcolor=rgb(255, 255, 255) !important][size=1em]
89
}  

[backcolor=rgb(248, 248, 248) !important][size=1em]
90


[backcolor=rgb(255, 255, 255) !important][size=1em]
91
}





收藏 评论6 发布时间:2015-3-4 22:59

举报

6个回答
亮剑2015 回答时间:2015-3-4 23:00:33
亲各位大神帮助。。。。。
亮剑2015 回答时间:2015-3-4 23:00:50
谢谢了啊。。。。。。。。。
党国特派员 回答时间:2015-3-5 09:28:54
自言自语,还乱七八糟。一看就是来混水摸鱼来了。
党国特派员 回答时间:2015-3-5 09:29:33
就算是复制别人的东西,也要排个版啊。
Veiko 回答时间:2015-3-6 09:57:17
帮顶,希望早点解决,也好学习学习
星辰一方 回答时间:2015-5-29 12:22:48
楼主使用ov7670带FIFO还需要接SCCB引脚吗?就是SIOC和SIOD?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版