OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7893|回复: 9

stm32+tft(spi)+ov7670(无fifo)

[复制链接]

17

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-8-21
在线时间
17 小时
发表于 2014-8-21 15:36:22 | 显示全部楼层 |阅读模式
5金钱
兄弟们,摊上大事了...
我用的stm32直接驱动的ov7670,但是我的tft是spi接口的,这俩的初始化都能成功,我把ov7670  8位接口得到的数据转成RGB,然后Lcd_WriteData16Bit(val3,val4)给了tft屏幕,可是屏幕上面都是彩条,是什么原因啊,有没有比较像的例子参考一下啊~邮箱lizhen3251193@163.com


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-22 00:04:14 | 显示全部楼层
先搞简单的。
一个个来
spi LCD,画点显示正常么?
然后再去研究OV7670的数据问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-8-21
在线时间
17 小时
 楼主| 发表于 2014-8-22 07:51:42 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
lcd 文字,图片,色彩显示是正常的,搞完了lcd我又想弄ov7670,买了一个竟然是没有fifo的,有点郁闷,原子哥帮看下main,这样处理数据对吗? 屏幕显示看上面的图片,弄了三天了,原子哥...
int main(void)


    static unsigned long TimerCnt = 0;
    static unsigned int temp7670 = 0;  
u16 value,val,val1,val2;
u8 val3,val4;

RCC_Configuration();
delay_init(); 
GPIO_Configuration();
NVIC_Configuration();
USART1_GPIO_Configuration();
USART1_Configuration();
GPIO_SetBits(GPIOA, GPIO_Pin_3);
printf("\r\nThis is a test from LZ!\n\r");
Lcd_Init();
Lcd_Clear(BLUE);
LCD_LED_SET;
delay_ms(500);
SD_Init();
switch(SD_Init())
  {
  case 0:  printf("\r\nSD Card Init Success!\n\r");
   Lcd_Clear(GRAY0);
   delay_ms(100);
   Gui_DrawFont_GBK16(0,10,RED,WHITE,"SD Card Init Success!");
   break;
  case 1:  printf("\r\nTime Out!\n\r");
           Lcd_Clear(GRAY0);
   delay_ms(100);
   Gui_DrawFont_GBK16(0,10,RED,WHITE,"Time Out!");
   break;
  case 99: printf("\r\nNo Card!\n\r");
      Lcd_Clear(GRAY0);
   delay_ms(100);
   Gui_DrawFont_GBK16(0,10,RED,WHITE,"No Card!");
   break;
  default: printf("\r\nError!\n\r");
      Lcd_Clear(GRAY0);
   delay_ms(100);
   Gui_DrawFont_GBK16(0,10,RED,WHITE,"Error!");
   break;
  }
 while(OV7670_init()==0)
 {
   printf("\r\nOV7670 Init ERROR!\n\r");
Gui_DrawFont_GBK16(0,25,RED,WHITE,"OV7670 Init ERROR!");
 }
  printf("\r\nOV7670 init success!\n\r");
  Gui_DrawFont_GBK16(0,25,RED,WHITE,"OV7670 Init Success!");
delay_ms(500);
Lcd_Clear(BLACK);
delay_ms(500);
 while(1) 
    {
        TimerCnt = 0;
        temp7670 = 0;
        CLK_init_ON(); // OV7670 XCLK 开
        while(value & 0x0800)    value = GPIOC->IDR;   // Vsync=H    
        while((~value) & 0x0800) value = GPIOC->IDR;   // Vhync=L 
        
        CLK_init_OFF(); //OV7670 XCLK 关
while(TimerCnt < 76800)
        {
XCLK_L; 
                        XCLK_H;
value = GPIOC->IDR;
temp7670 ++;
if(value & 0x0100) // HREF = H ||(LCD_PCLK_STATE)
            {
    value = GPIOC->IDR;
    //display[TimerCnt]=value; 

   if((temp7670 == 1))// 高字节
                {
                    val1=(value<<8);
                }
                else // 低字节   
                {
                    val2= (value&0x00ff); 
val =LCD_BGR2RGB(val1 |val2);
val3=val>>8;
val =LCD_BGR2RGB(val1 |val2);
val4= val&0x00ff;
Lcd_WriteData16Bit(val3,val4);
temp7670 = 0;
                  
                    TimerCnt ++;
                }

            } 
}
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-22 23:25:08 | 显示全部楼层
CLK_init_ON(); // OV7670 XCLK 开 
这个开了就不能关啊...
你必须是单片机速度跟得上才可以,不要关闭XCLK!!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-8-21
在线时间
17 小时
 楼主| 发表于 2014-8-25 09:49:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
将CLK_init_OFF();去掉了,显示还是不正常...可能还有其他原因,我再看一下吧
回复

使用道具 举报

17

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-8-21
在线时间
17 小时
 楼主| 发表于 2014-8-26 11:45:20 | 显示全部楼层

彩条测试是这样的,能看出什么原因吗?
回复

使用道具 举报

17

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-8-21
在线时间
17 小时
 楼主| 发表于 2014-8-26 11:46:14 | 显示全部楼层
回复【5楼】lizhen3251193:
---------------------------------
原子哥没彩条测试是5楼这样的,能看出什么原因吗?
另外带fifo的ov7670能显示到spi的lcd上吗?真不行我就去买一个带fifo的ov7670
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-26 23:32:23 | 显示全部楼层
回复【7楼】lizhen3251193:
---------------------------------
彩条不正常.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-12-20
在线时间
0 小时
发表于 2015-3-27 16:40:48 | 显示全部楼层
请问楼主解决问题了吗,我的屏幕显示也和你的一样
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2014-12-2
在线时间
34 小时
发表于 2015-3-27 20:09:51 | 显示全部楼层
回复【3楼】lizhen3251193:
---------------------------------
你好 ,
      不知道你的问题解决了吗 ?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-24 11:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表