关于DCMI 驱动 OV5640摄像头RGB屏显示 HAL库版本的代码有个疑问

2019-07-20 14:48发布

关于DCMI 驱动 OV5640摄像头RGB屏显示 HAL库版本的代码有个疑问,
void rgb565_test(void)
{
        。。。。省略

        if(lcdltdc.pwidth!=0)        //RGBÆá
        {
                dcmi_rx_callback=rgblcd_dcmi_rx_callback;
          DCMI_DMA_Init((u32)dcmi_line_buf[0],(u32)dcmi_line_buf[1],lcddev.width/2,DMA_MDATAALIGN_HALFWORD,DMA_MINC_ENABLE);
        }else                                       
        {
         DCMI_DMA_Init((u32)&LCD->LCD_RAM,0,1,DMA_MDATAALIGN_HALFWORD,DMA_MINC_DISABLE);
        }
      。。。。省略
}这个 DCMI_DMA_Init 初始化代码 数据长度为什么设置为 lcddev.width/2 啊 ????????


寄存器版本的代码我看过 他使能了DMA的直接模式传输 FCR寄存器初始化为0x21   存储器数据大小MSIZE 在直接模式下强制置为外设数据大小 PSIZE =32位 而RGB每个像素大小16位
所以DCMI_DMA_Init((u32)dcmi_line_buf[0],(u32)dcmi_line_buf[1],lcddev.width/2,1,1); 初始化数据长度为lcddev.width/2  这个我可以理解
但是HAL库版本的函数没有是能DMA的直接传输模式 用的是FIFO模式 存储器数据大小 MSIZE=DMA_MDATAALIGN_HALFWORD(16)位啊 为什么DMA初始化数据长度还是lcddev.width/2啊?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
taizonglai
1楼-- · 2019-07-20 18:39
把HAL库版本中的FIFO模式关了,直接用直接传输。
ufo13110008262
2楼-- · 2019-07-20 19:48
 精彩回答 2  元偷偷看……
taizonglai
3楼-- · 2019-07-21 00:42
ufo13110008262 发表于 2017-5-4 15:32
不是关不关的问题 我是想问为什么设置为 lcddev.width/2 难道HAL库的代码有错误?

有可能是曾经调试代码,没有改过来。而实验有没有bug

一周热门 更多>