STM32驱动OV7670,初始化不成功

2019-07-21 05:27发布

大佬们来帮忙解决也行,用例程跑程序,初始化ov7670失败
unsigned char wrOV7670Reg(unsigned char regID, unsigned char regDat) {
    startSCCB();
    if (0 == SCCBwriteByte(0x42)) {
        stopSCCB();
        return (0);
    }
    delay_us(100);
    if (0 == SCCBwriteByte(regID)) {
        stopSCCB();
        return (0);
    }
    delay_us(100);
    if (0 == SCCBwriteByte(regDat)) {
        stopSCCB();
        return (0);
    }
    stopSCCB();

    return (1);
}

再红 {MOD}字的地方就跳出了返回0了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ershang
1楼-- · 2019-07-21 10:13
我是用STM32F030C8T6做主控芯片的
这里是端口配置
/*
-----------------------------------------------
   功能: 初始化模拟SCCB接口
   参数: 无
返回值: 无
-----------------------------------------------
*/
void SCCB_GPIO_Config(void) {
    GPIO_InitTypeDef GPIO_InitStructure;
    /* Enable GPIOA  clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = SCCB_SIC_BIT | SCCB_SID_BIT;   
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;         
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         
    GPIO_Init(GPIOB, &GPIO_InitStructure);                  
}

void SCCB_SID_GPIO_OUTPUT(void) {
    GPIO_InitTypeDef GPIO_InitStructure;
    /* Enable GPIOA  clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = SCCB_SID_BIT;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void SCCB_SID_GPIO_INPUT(void) {
    GPIO_InitTypeDef GPIO_InitStructure;
    /* Enable GPIOA  clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = SCCB_SID_BIT;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
//     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}
ershang
2楼-- · 2019-07-21 11:33
#define SCCB_SIC_BIT     GPIO_Pin_6    //端口第7位
#define SCCB_SID_BIT     GPIO_Pin_7     //端口第8位

#define SCCB_SIC_H()     GPIOB->BSRR = SCCB_SIC_BIT;  //对端口A特定位的设置        ,这里设置高
#define SCCB_SIC_L()     GPIOB->BRR =  SCCB_SIC_BIT;  //这里设置低

#define SCCB_SID_H()     GPIOB->BSRR = SCCB_SID_BIT;  //同上
#define SCCB_SID_L()     GPIOB->BRR =  SCCB_SID_BIT;
/**/
#define SCCB_SID_IN      SCCB_SID_GPIO_INPUT();
#define SCCB_SID_OUT     SCCB_SID_GPIO_OUTPUT();


#define SCCB_SID_STATE     GPIOB->IDR&0x40
ershang
3楼-- · 2019-07-21 14:19
 精彩回答 2  元偷偷看……
零一三南宫南
4楼-- · 2019-07-21 15:25
顶一下

一周热门 更多>