/**************************************************************************** * Copyright: (C)2014 Î人ÁèÔÆÇ¶ÈëʽʵÑéÊÒ www.emblinux.com * Author: GuoWenxue QQ: 281143292 * Description: ·Ü¶·STM32v5¿ª·¢°åGPIOÄ£ÄâÉãÏñÍ·SCCB(Serial Camera Control Bus)µÄʵÏÖ, * SCCBµÄ¹¤×÷·½Ê½ÓëI2CÊ®·ÖÀàËÆ£¬ËûʹÓÃOV¹«Ë¾¶¨ÒåµÄ3Ïß´®ÐÐÉãÏñÍ·¿ØÖÆ×ÜÏߣ¬ * ¿ÉÒÔ¿ØÖƴ󲿷ÖOVϵÁÐͼÐδ«¸ÐÆ÷¡£SCCBÒ²¿ÉÒÔ¹¤×÷ÔÚ2Ïß´®ÐÐģʽ(SIOCÓëSIOD). * STM32ÉÏʹÓÃPE2ºÍPE3·Ö±ðÁ¬½ÓOV7670µÄSCCBʱÖÓ¿ÚºÍÊý¾Ý¿Ú,¸Ã´úÂëÖ÷ҪʹÓà * PE2ºÍPE3µÄGPIO¿ÚÄ£ÄâSCCB(Ò²¼´I2C)×ÜÏßЭÒé * * ChangeLog: * °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷ * V1.0.0 2014.08.25 GuoWenxue ·¢²¼¸Ã°æ±¾ ****************************************************************************/ /* CF7670C-V3ÉãÏñÍ·Ä£¿éPin¹Ü½ÅºÍSTM32v5 Á¬½Ó±í: *| ²Î¿¼ºÍ<·Ü¶·STM32¿ª·¢°åV5Ô­Àíͼ.pdf> *+---------------------------------------+------------------------------+ *| CF7670C-V3ÉãÏñÍ·Ä£¿éÒý½Å¼°ËµÃ÷ | STM32¶ËÒý½ÅÁ¬½Ó¼°ËµÃ÷ | *+---------------------------------------+------------------------------+ *| Pin1-VCC(3.3V,·½º¸Å̱ê¼ÇµÄΪµÚÒ»½Å) | 3.3V | *| Pin2-GND | GND | *| Pin3-SCL(SCCB_SCL²»´øÉÏÀ­µç×è) | PE2 | *| Pin4-SDA(SCCB_SDA ´ø4.7KÉÏÀ­µç×è) | PE3 | *| Pin5-VSYNC(OV7670 ֡ͬ²½ÐźÅ) | PE4 | *| Pin6-HREF(OV7670 ÐÐͬ²½ÐźÅ) | NC | *| Pin7-WEN(FIFO(AL422)дÔÊÐí,¸ßµçƽÓÐЧ | PE5 | *| Pin8-XCLK(NC/RE# ¿Õ½Å) | NC | *| Pin9-RRST(FIFO¶ÁµØÖ·¸´Î» | PE6 | *| Pin10-OE#(FIFOÊý¾ÝÊä³öʹÄÜ,µÍµçƽÓÐЧ | GND | *| Pin11-RCK#(FIFO¶ÁÊý¾ÝʱÖÓ | PD12 | *| Pin12-GND | GND | *| | | *| Pin13-D0 FIFOÊý¾Ý¿ÚÊä³öBIT0 | PC0 | *| Pin14-D1 FIFOÊý¾Ý¿ÚÊä³öBIT1 | PC1 | *| Pin15-D2 FIFOÊý¾Ý¿ÚÊä³öBIT2 | PC2 | *| Pin16-D3 FIFOÊý¾Ý¿ÚÊä³öBIT3 | PC3 | *| Pin17-D4 FIFOÊý¾Ý¿ÚÊä³öBIT4 | PC4 | *| Pin18-D5 FIFOÊý¾Ý¿ÚÊä³öBIT5 | PC5 | *| Pin19-D6 FIFOÊý¾Ý¿ÚÊä³öBIT6 | PC6 | *| Pin20-D7 FIFOÊý¾Ý¿ÚÊä³öBIT7 | PC7 | *+------------------+-----------------+---------------------------------+ */ #ifndef __STM32V5_SCCB_H #define __STM32V5_SCCB_H #include "stm32f10x.h" /* I2C SCL/SDA Pin operation macro */ #define SCL_H GPIOE->BSRR = GPIO_Pin_2 #define SCL_L GPIOE->BRR = GPIO_Pin_2 #define SDA_H GPIOE->BSRR = GPIO_Pin_3 #define SDA_L GPIOE->BRR = GPIO_Pin_3 #define SCL_read GPIOE->IDR & GPIO_Pin_2 #define SDA_read GPIOE->IDR & GPIO_Pin_3 void init_sccb_gpio(void); int I2C_WriteByte(uint16_t WriteAddress , uint8_t SendByte , uint8_t DeviceAddress); int I2C_ReadByte (uint8_t* pBuffer, uint16_t length, uint8_t ReadAddress, uint8_t DeviceAddress); #endif