新手上路
- 积分
- 45
- 金钱
- 45
- 注册时间
- 2019-5-11
- 在线时间
- 7 小时
|
1金钱
- //RGB屏数据接收回调函数
- void rgblcd_dcmi_rx_callback(void)
- {
- u16 i;
- u16 *pbuf;
- // u16 *pbuf2;
- // u8 gm_red,gm_green,gm_blue,gray;
- if(DMA2_Stream1->CR&(1<<19))//DMA使用buf1,读取buf0
- {
- pbuf=(u16*)dcmi_line_buf[0];
- }else //DMA使用buf0,读取buf1
- {
- pbuf=(u16*)dcmi_line_buf[1];
- }
- if(rgb_ok==1&frame_ok==1)for(i=0;i<400;i++)jpeg_data_buf[curline][i]=pbuf[i];
- LTDC_Color_Fill(0,curline,399,curline,pbuf);//DM2D填充
- if(curline<400)curline++;
- }
复制代码
按道理 如果LTDC_Color_Fill正常使用的话 curline应该是正常的在不断增加的
但是我使用
for(i=0;i<400;i++)jpg_data_buf[curline]=pbuf;
是为了复制这一行的所有像素到外部内存的一个大数组中
在调试里看到每一行的像素数据都是一样的。我把它显示出来,就是这样了。
上面是正常的视频,下面是复制出来的数组的遍历输出。
是不是因为中断速度很快,这个数组复制太慢了?
|
|