因为我要做无线视频传输 所以将摄像头实验例程中DCMI_DMA传输到的内存有LCD->LCD_RAM 改为了一个外部SRAM的一个大数组U16 buff[384000]
但是出现了只能lcd一部分显示图像剩下全是花屏 不知为什么 摄像头输出速率也调过没有反应 求大神帮忙看一下@正点原子
#define jpeg_buf_size 384000 //定义JPEG数据缓存jpeg_buf的大小(*4字节)31*1024
//__align(4) u32 jpeg_buf[jpeg_buf_size]; //JPEG数据缓存buf
u16 jpeg_buf[jpeg_buf_size] __attribute__((at(0X68000000))); //JPEG数据缓存buf
//RGB565测试
//RGB数据直接显示在LCD上面
void rgb565_test(void)
{
u8 key;
int i=0;
int j=0;
int flag=0;
LCD_Clear(WHITE);
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"ALIENTEK STM32F4");
LCD_ShowString(30,70,200,16,16,"OV2640 RGB565 Mode");
LCD_ShowString(30,100,200,16,16,"KEY0:Contrast"); //对比度
LCD_ShowString(30,130,200,16,16,"KEY1:Saturation"); // {MOD}彩饱和度
LCD_ShowString(30,150,200,16,16,"KEY2:Effects"); //特效
LCD_ShowString(30,170,200,16,16,"KEY_UP:FullSize/Scale"); //1:1尺寸(显示真实尺寸)/全尺寸缩放
ov2640_speed_ctrl();
OV2640_RGB565_Mode(); //RGB565模式
DCMI_Init(); //DCMI配置
// DCMI_DMA_Init((u32)&LCD->LCD_RAM,1,1,0);//DCMI DMA配置
DCMI_DMA_Init((u32)&jpeg_buf,384000,1,1);//DCMI DMA配置
OV2640_OutSize_Set(480,800);
DCMI_Start(); //启动传输
printf("out
");
while(1)
{
LCD_SetCursor(0x0000,0X0000);
LCD_WriteRAM_Prepare(); //开始写入GRAM
for(j=0;j<384000;j++)
{
LCD->LCD_RAM=jpeg_buf[j];
}
delay_ms(500);//delay_ms(10) 这个延时的长短决定摄像头采集图像质量 延时长点图像效果好
}
}
一周热门 更多>