2020-10-9对STM32F407的OV2640采集的数据在SRAM进行存储并在LCD 上显示对应数据

对STM32F407的OV2640采集的数据在SRAM进行存储并在LCD 上显示对应数据

一、操作函数
(注:此函数均基于OV2640的源代码执行)
1、在LCD上对存储在SRAM的数组进行显示;
(1)源代码

u32 testsram[250000] __attribute__((at(0X68000000)));//测试用数组
for(ts=0;ts<250000;ts++)testsram[ts]=ts;//预存测试数据	
for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//显示测试数据	

2、对OV2640采集到的数据存储到SRAM上再输出到LCD上
(1)灰度模式的RGB(源代码)
(注:对一个8位的二进制进行移位使其成为5位或6位的二进制)
(注:320*240代表有这么多的像素点,一个像素点是2个字节,32位的单片机是以4个字节为一个单位的)

//灰度模式
u16 Gray2GRB(u8 _gray)
{
	u8 R=_gray>>3;//8位的灰度值左移3位
	u8 G=_gray>>2;//8位的灰度值左移2位
	u8 B=_gray>>3;//8位的灰度值左移3位
	return (R<<11)|(G<<5)|B;//拼凑了一个返回一个16位的二进制
}
if(1)
	{
		u32 i;
		//对320*240的的分辨率的屏幕进行赋值操作
		for(i=0;i<320*240;i++)
		{
			DispBuf[i]=i;
		}
		//将灰度模式的RGB输出到LCD上
		for(i=0;i<320*240;i++)
		{
			LCD->LCD_RAM=Gray2GRB(DispBuf[i]);
		}
	}

(2)RGB模式(源代码)

//显示函数
void DisplayBuf(void)
{
	u32 i;
	LCD_SetCursor(0,0);//设置光标位置
	LCD_WriteRAM_Prepare();		//开始写入GRAM
	
	for(i=0;i<320*240;i++)
		{
			//LCD>LCD_RAM=RED;//DispBuf565[i];//SRAM的存储空间
			LCD>LCD_RAM=DispBuf565[i]&0x07e0;//SRAM的存储空间绿色的RGB模式
		}
}
if(1)
	{
		DisplayBuf();
	}

(3)将摄像头OV2640的采集到的数据存储到DispBuf565(SRAM的存储空间)(源代码)

DCMI_DMA_Init((u32)DispBuf565,320*240/2,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI配置

(4)处理DCMI中断服务函数

//DCMI中断服务函数
void DCMI_IRQHandler(void)
{
	if(DCMI_GetITStatus(DCMI_IT_FRAME)==SET)//捕获到一帧图像
	{
		DCMI_Stop(); //停止传输
		//jpeg_data_process(); 	//jpeg数据处理(因为我们是RGB模式,所以会注释掉这一句)	
		
		LED1=!LED1;//控制LED的闪烁
		ov_frame++;
		//LCD_SetCursor(0,0);  //设置光标位置
		//LCD_WriteRAM_Prepare();		//开始写入GRAM
		DisplayBuf();//显示函数
		DCMI_Start(); //开始传输
		DCMI_ClearITPendingBit(DCMI_IT_FRAME);//清除帧中断
	}
} 

(5)LCD上像素点填充表示方法
(注:因为LCD上的存储空间只有一个单元,所以指针只指向此单元,所以设置一个光标即可。)
(注:DMA_MemoryInc_Disable是一个表示不增加存储地址的字符)(源代码)

//DCMI_DMA_Init((u32)&LCD->LCD_RAM,1,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Disable);//DCMI DMA 配置

(注:SRAM上的所有存储空间有很多单元,所以必须将地址自增标明)
(注:DMA_MemoryInc_Enable是一个表示增加存储地址的字符)(源代码)

DCMI_DMA_Init((u32)DispBuf565,320*240/2,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI DMA配置
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值