OpenEdv-开源电子网

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

STM32+0V7670图像传送上位机显示

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-11-14
在线时间
0 小时
发表于 2015-11-19 13:13:50 | 显示全部楼层 |阅读模式
5金钱
采用的是RGB565格式,通过STM32采集像素点,每个像素点是16位,设置了一个外部SRAM的60K左右的数据,将每个像素点以16位的格式存储进该数组,然后当每存储完一帧图像就通过串口1传向上位机,但发现,上位机显示的图片是黑白的,可我发送的是RGB565格式像素点,请问是否不能设置RGB565发送,还是我的程序上的问题,如下为部分程序:

#define Color_Space 70*1024
u16 Picture_Color[Color_Space] __attribute__((at(0X68000000)));

void Send_0ne_Buf(USART_TypeDef* USARTx,u8 c)//·???????×?·??¨8???©
{
 assert_param(IS_USART_ALL_PERIPH(USARTx));
 USART_SendData(USARTx, c);
 while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)!=SET);//??????·?·????ê????
}

void Send_Picture(USART_TypeDef* USARTx,uint16_t *c)//·??????????????ú
{
 u32 i;
 u16 *p;
 p=c;
 assert_param(IS_USART_ALL_PERIPH(USARTx));
 Send_0ne_Buf(USARTx,0x01);//?????ú?­?é
 while(*p!='\0')
 {
  USART_SendData(USARTx, *p);//?®??·???????
  while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)!=SET);//??????·?·????ê????
  p++;
 } 
 Send_0ne_Buf(USARTx,0x01);

//?ü??LCD????
//?????????????·???éFIFO????????????????????LCD????
void camera_refresh(void)
{
 u32 j;//?è???????????????????è????????
  u16 color;//??·????????????é??????????????16????????×é???? 
// u16 *Picture_Color;
// icture_Color=(u16*)mymalloc(SRAMEX,20*1024);//?ê??150K???? 
// while(Picture_Color==NULL)
// {
//  LCD_ShowString(60,170,200,16,16,"mymalloc=NULL");
//  return;
// }
 if(ov_sta==2)//OV_STA=2?????÷???­?????????????ê±???????????????????
 {
  LCD_Scan_Dir(U2D_L2R);  //????????,??×ó????
  LCD_SetCursor(0x00,0x0000); //?è????±ê????
  LCD_WriteRAM_Prepare();     //????????GRAM 
  OV7670_RRST=0;    //??????????????,??????????
  OV7670_RCK=0;
  OV7670_RCK=1;      ////???????±??
  OV7670_RCK=0;
  OV7670_RRST=1;    //???????????á??,????????????????×?×?±?
  OV7670_RCK=1;      //?è?????±?ò??±à??
  for(j=0;j<76800;j++)//QVGA,??????240*320=76800?????????ò???è???­?·76800????°??ù????????????,?è??????????????J???­?·??????
  {            
   OV7670_RCK=0;   //OV7670_RCK:???????±??,??FIFO???????±??
   color=GPIOC->IDR&0XFF; //??????????°???
   OV7670_RCK=1;    //
   color<<=8;     
   OV7670_RCK=0;   //??FIFO???????®??
   color|=GPIOC->IDR&0XFF; //??????,?÷??????????????16????????
   OV7670_RCK=1;
   LCD->LCD_RAM=color;//°???????LCD??????
   icture_Color[j]=color;
  }     
  icture_Color[j]='\0';
  Send_Picture(USART1,Picture_Color);//·????????????????ú
//  myfree(SRAMEX,&icture_Color[0]);//??·???????
  EXTI_ClearITPendingBit(EXTI_Line8);  //????LINE8????????±ê????
  ov_sta=0;     //??????????????
   ov_frame++;  //???????????­???????????????í?????????¨?±?÷???????á·?????????????PC???í???á??0
  LCD_Scan_Dir(DFT_SCAN_DIR); //?????????¨?è·??ò
 }
}  
上位机采集的图像如下:


请问是否传送像素点的过程错误了,还是采集的16位像素错了。图案是依稀可见,但不知道显示的是黑白的,而且不清晰,OV7670的寄存器,我没修改,采用的战舰板提供的配置,320*240,RGB565格式。麻烦各位大神帮忙解决解决,谢谢。

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

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2015-11-19
在线时间
0 小时
发表于 2015-11-19 15:16:41 | 显示全部楼层
是这样的,565格式是说RGB各色值占用5位、6位、5位存储空间,放在一起也就是16位,而你将这些数据上传给PC,PC要想显示图像首先要对数据进行解码的,要把属于R的数据给R,属于B的数据给B才行,否则,自然会变成灰度图像……
个人理解
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2015-11-19
在线时间
0 小时
发表于 2015-11-19 15:17:23 | 显示全部楼层
楼主,你这个传一幅图要多久呀?
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-11-14
在线时间
0 小时
 楼主| 发表于 2015-11-19 15:36:39 | 显示全部楼层
回复【3楼】alvin_:
---------------------------------
几秒1帧左右
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-11-14
在线时间
0 小时
 楼主| 发表于 2015-11-19 15:37:54 | 显示全部楼层
回复【2楼】alvin_:
---------------------------------
对啊,可这是上位机做的事情,我想知道,我的这种发送像素方法是否有错
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-19 22:55:37 | 显示全部楼层
帮顶.....
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-11-14
在线时间
0 小时
 楼主| 发表于 2015-11-19 22:59:40 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,帮忙解释下~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 12:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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