STM32H750XB_RT-THREAD/46-DCMI—OV5640摄像头实验/User/i2c/bsp_i2c.h

74 lines
2.8 KiB
C
Raw Permalink Normal View History

2025-07-21 06:34:29 +00:00
#ifndef __BSP_I2C_H__
#define __BSP_I2C_H__
/****************************** Includes *****************************/
#include "stm32h7xx.h"
#include "stm32h7xx_hal.h"
#include "./usart/bsp_usart.h"
/****************************** Defines *******************************/
#define I2C_OWN_ADDRESS 0x00
#define OV5640_DEVICE_ADDRESS 0x78
//<2F><><EFBFBD><EFBFBD><EBBCB6>ʱ(<28><>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1>֧<EFBFBD><D6A7>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дDelay<61><79>
#define Delay HAL_Delay
#define I2Cx_FLAG_TIMEOUT ((uint32_t) 1000) //0x1100
#define I2Cx_LONG_TIMEOUT ((uint32_t) (300 * I2Cx_FLAG_TIMEOUT)) //was300
/*<2A><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>*/
#define SENSORS_I2C_SCL_GPIO_PORT GPIOB
#define SENSORS_I2C_SCL_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
#define SENSORS_I2C_SCL_GPIO_PIN GPIO_PIN_8
#define SENSORS_I2C_SDA_GPIO_PORT GPIOB
#define SENSORS_I2C_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
#define SENSORS_I2C_SDA_GPIO_PIN GPIO_PIN_9
#define SENSORS_I2C_AF GPIO_AF4_I2C1
#define SENSORS_I2C I2C1
#define SENSORS_I2C_RCC_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE()
#define SENSORS_I2C_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
#define SENSORS_I2C_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
/*<2A><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>*/
#define I2C_DEBUG_ON 1
#define I2C_DEBUG_FUNC_ON 0
#define I2C_INFO(fmt,arg...) printf("<<-I2C-INFO->> "fmt"\n",##arg)
#define I2C_ERROR(fmt,arg...) printf("<<-I2C-ERROR->> "fmt"\n",##arg)
#define I2C_DEBUG(fmt,arg...) do{\
if(I2C_DEBUG_ON)\
printf("<<-I2C-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
}while(0)
#define I2C_DEBUG_FUNC() do{\
if(I2C_DEBUG_FUNC_ON)\
printf("<<-I2C-FUNC->> Func:%s@Line:%d\n",__func__,__LINE__);\
}while(0)
void I2CMaster_Init(void);
unsigned short Get_I2C_Retry(void);
HAL_StatusTypeDef Sensors_I2C_ReadRegister(unsigned char slave_addr,
unsigned char reg_addr,
unsigned short len,
unsigned char *data_ptr);
HAL_StatusTypeDef Sensors_I2C_WriteRegister(unsigned char slave_addr,
unsigned char reg_addr,
unsigned short len,
unsigned char *data_ptr);
uint8_t OV5640_WriteReg(uint16_t Addr, uint8_t Data);
uint8_t OV5640_ReadReg(uint16_t Addr);
uint8_t OV5640_WriteFW(uint8_t *pBuffer ,uint16_t BufferSize);
#endif // __BSP_I2C_H__