中级会员
 
- 积分
- 378
- 金钱
- 378
- 注册时间
- 2020-12-10
- 在线时间
- 41 小时
|
1金钱
最近在弄OV2640文字识别,对OV2640官方的数据手册彻底无语!
其中最困扰的一个问题:(无论1.6、1.8、2.2版本的数据手册都一样)
| 0x8C | | | | {HSIZE[11],HSIZE[2:0],VSIZE[2:0]} |
这个寄存器只明确了6个位:HSIZE[2:0],VSIZE[2:0],但HSIZE[11]究竟是位于bit6还是bit7?
我对比了相关资料。
正点原子提供的程序:
temp |= (width >> 4) & 0X80;
SCCB_WR_Reg(0X8C, temp);
很明显是作为bit7配置的。
但是,github提供的driver_ov2640.c例程:
prev &= ~(1 << 6); /* clear hsize bit11 */
prev |= ((size >> 11) & 0x01) << 6; /* set bit11 */
a_ov2640_dsp_write(OV2640_REG_DSP_BANK_SIZEL, prev); /* write sizel */
很明显是作为bit6配置的。
这样造成的后果就是,当图像宽度最高位为1时,相关配置函数就会失效。
诡异的是,无论怎样配置,我读取到的0X80前两位都是0,认真头大!
|
|