camera全景模式预览方向异常

本文介绍了调试相机驱动过程中常见的问题及解决方案,包括GPIO配置、方向设置、镜像与上下颠倒的问题。通过调整寄存器值来解决相机方向与镜像错误,确保相机正常使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   1.GPIO口,在第一次调试的时候,GPIO配置不正常的话,会导致进不了相机(/dev/目录下无相应节点video0,video1)。之后交换GPIO口,不影响进入相机,影响前后置成像方向;

   2.调试camera方向,主要是指board方向,ro.sf.hwrotation=0,后置设置成0度,前置设置成180度;

   3.调试camera驱动,查找控制mirror和upside的寄存器。以sp2518为例,P0:0x31

[7] Fix frame length 
[6] Upside down 
[5] mirror 
[4] PCLK inversion 
[3] binning_sel 
[2] 1/4 sub-sample: 800X600 
[0] 720p_sel 

注意其中的P0,.指的是存储在第0页上,由以下寄存器控制:P0:0xfd

[2:0] page select 
   000: page 0 
   001: pgae 1


因此,在驱动代码上更新寄存器0x31控制镜像和upside时,离它最近的0xfd寄存器值BIT0必须是0,改动才有效,一般在sensor_init_data里面改动,如果在此函数里有多处0x31,一般是以最后一个0x31为准,改前面的没有作用,因为后面的0x31又被覆写了。至于说0x31的值不确定的话,可以一个一个的尝试,毕竟只有四组值,尝试也不是很困难。

4.第一次打开相机默认开启的是前置还是后置,这个决定于前后置camera在board中的注册顺序,先注册的camera将被设置成默认开启的camera。

5.camera相机拍照和录像均正常,但是全景模式上下倒180度,而且使用CtsVerifier.apk测试camera的方向,发现前置摄像头第一个方向是一个倒立的成像。这两个问题同属于一类问题,就是camera驱动方向跟镜像设置的不对。我遇到的实际问题是这样处理的,系统方向是0度,那么我在内核中将camera方向也设置成了0度,然后找到控制驱动镜像的寄存器,按照说明进行逐个调试,最后一切显示正常。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值