新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2019-5-19
- 在线时间
- 11 小时
|
20金钱
本帖最后由 ql125671817 于 2019-6-15 16:43 编辑
@正点原子
是的!我又来啦,继上次7725实在调不出来之后,我转战了ov2640 好的,问题来啦!!!
我发现一个很特别的问题,因为我参考了正点原子的代码。
首先,因为STM32F103CBT6的SRAM就只有20K,然后参考的代码中使用的是F103ZE芯片,那个有64K的SRAM
当时没有改,导致后来一分配内存就卡死。
啊上面只是分享我调试的过程。
1. 原子的代码 在ov2640.h中是这么写的:
//OV2640 相关IO
[mw_shl_code=c,true]#define OV2640_VSYNC PDin(6) //POWER DOWN控制信号
#define OV2640_PWDN PBout(3) //POWER DOWN控制信号
#define OV2640_RST PGout(15) //复位控制信号
#define OV2640_HREF PGin(14) //HREF信号
#define OV2640_PCLK PBin(4) //PCLK信号
#define OV2640_DATA GPIOC->IDR&0x00FF //数据输入端口[/mw_shl_code]
因为我的板子上只有 0 1 3 4 12 13 14 15引脚可以使用,所以我改成了
[mw_shl_code=c,true]#define OV2640_VSYNC PAin(6) //POWER DOWN控制信号
#define OV2640_PWDN PAout(12) //POWER DOWN控制信号
#define OV2640_RST PAout(11) //复位控制信号
#define OV2640_HREF PAin(8) //HREF信号
#define OV2640_PCLK PAin(1) //PCLK信号
#define OV2640_DATA GPIOB->IDR & 0xf01b#define OV2640_DATA GPIOB->IDR&0xF01B //数据输入端口[/mw_shl_code]
2.同时我的引脚配置是这样的:
[mw_shl_code=c,true]
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|
GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //PB 15 14 13 12 4 3 1 0 输入 上拉
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);[/mw_shl_code]
3.然后因为我只打算拍照,所以有如下设置:
[mw_shl_code=c,true]void ov2640_speed_ctrl(void)
{
u8 clkdiv,pclkdiv; //时钟分频系数和PCLK分频系数
clkdiv=10;
pclkdiv=10;
SCCB_WR_Reg(0XFF,0X00);
SCCB_WR_Reg(0XD3,pclkdiv); //设置PCLK分频
SCCB_WR_Reg(0XFF,0X01);
SCCB_WR_Reg(0X11,clkdiv); //设置CLK分频
}[/mw_shl_code]4.读数据
[mw_shl_code=c,true]
for(i=0;i<10;i++) //丢弃10帧,等待OV2640自动调节好(曝光白平衡之类的)
{
while(OV2640_VSYNC==1);
while(OV2640_VSYNC==0);
}
while(OV2640_VSYNC==1) //开始采集jpeg数据
{
while(OV2640_HREF)
{
while(OV2640_PCLK==0);
ov2640_framebuf[jpeglen++]=OV2640_DATA;
while(OV2640_PCLK==1);
num++;
}
}[/mw_shl_code]
5.使用的是jpeg模式,咱们大家都知道jpeg 是以 FF D8 开头 FF D9结尾的,但是但是但是!!!!!
我输出的结果是这样的:
1b101b000000120a110a000101010000000000001b13000300181011131110181312131a19181a021a08020101020912180a1a180a1a19130a1211000a0913000301081112180219010b12191a191b120913081312091819121b13000301191a1a020002030808031202120212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121b08001b00000109010101010101000000000000000001020308090a0b101112131b080009000002010303020803090908080000011901020300080109020101010a0301010b02010802010101100302010109020100080302020211120a0b101112090a0b10111208090a0b1011120308090a0b1011120308090a0b1011120308090a0b1011120308090a0b1011120308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b10111201020308090a0b10111201020308090a0b1011121b08001b01000301010101010101010100000000000001020308090a0b101112131b0800090100020102080803080b0908080001020b0001020301080901010a0201010b01010302020110080201010101110303020009020201120a08080109010b1011120a0b101112090a0b1011120308090a0b1011120308090a0b1011120308090a0b1011120308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b101112020308090a0b1011121b0000011000000000030101000201010301011b12001803010002010301001b0002090a1b120819111a181b03191b12001a12001000021b0911190a18100118111b0b131a0811021b1b0b181003130b031b18031b121b0a1b110a1b00090a010002091b001a1b11030019101311090212101001000908000100090800010009080001000908000100090800010009080001000908000100090800010009080001100212000800010900080001090008000109000800010900080001090008000109000802000210090800010009080001000908000100090800010009080001000908000100090800010009080001000908000100090800010009080001000908000100090800010009080001000908000100090800010009080001000908000100090800010009080001000908011b11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
开头是 1B 10 结尾是 1B 11,也能够正好对应上FF D8 ,FF D9 的模式,那我这里是因为什么错了呀?
是引脚配置错了?
感谢回答!!!
|
|