You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.6 KiB

6 months ago
/** \file gpio_i2c.h */
#if !defined(GPIO_I2C_H__817813DF_FB6D_4121_912A_DD8A262A2476__INCLUDED_)
#define GPIO_I2C_H__817813DF_FB6D_4121_912A_DD8A262A2476__INCLUDED_
#include "define.h"
#include "board_config.h"
#define I2C_ACK 0
#define I2C_NACK 1
#define I2C0_SDA_PORT PD
#define I2C0_SCL_PORT PD
#define I2C0_SDA_PIN 1
#define I2C0_SCL_PIN 0
#define I2C0_DELAY 30
#define I2C0_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C0_SCL_PORT,_BIT(I2C0_SCL_PIN))
#define I2C0_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C0_SCL_PORT,_BIT(I2C0_SCL_PIN))
#define I2C0_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C0_SDA_PORT,_BIT(I2C0_SDA_PIN))
#define I2C0_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C0_SDA_PORT,_BIT(I2C0_SDA_PIN))
#define I2C0_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C0_SDA_PORT, I2C0_SDA_PIN, PUSH_PULL_OUTPUT)
#define I2C0_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C0_SDA_PORT, I2C0_SDA_PIN, INPUT)
#define I2C0_ACK_READ TESTBIT(I2C0_SDA_PORT->INDR, I2C0_SDA_PIN)
#define I2C0_SDA_READ TESTBIT(I2C0_SDA_PORT->INDR, I2C0_SDA_PIN)
#define I2C1_SDA_PORT PF
#define I2C1_SCL_PORT PF
#define I2C1_SDA_PIN 1
#define I2C1_SCL_PIN 0
#define I2C1_DELAY 30
#define I2C1_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C1_SCL_PORT,_BIT(I2C1_SCL_PIN))
#define I2C1_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C1_SCL_PORT,_BIT(I2C1_SCL_PIN))
#define I2C1_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C1_SDA_PORT,_BIT(I2C1_SDA_PIN))
#define I2C1_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C1_SDA_PORT,_BIT(I2C1_SDA_PIN))
#define I2C1_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C1_SDA_PORT, I2C1_SDA_PIN, PUSH_PULL_OUTPUT)
#define I2C1_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C1_SDA_PORT, I2C1_SDA_PIN, INPUT)
#define I2C1_ACK_READ TESTBIT(I2C1_SDA_PORT->INDR, I2C1_SDA_PIN)
#define I2C1_SDA_READ TESTBIT(I2C1_SDA_PORT->INDR, I2C1_SDA_PIN)
#define I2C2_SDA_PORT PC
#define I2C2_SCL_PORT PC
5 months ago
#define I2C2_SDA_PIN 6
#define I2C2_SCL_PIN 5
6 months ago
#define I2C2_DELAY 30
#define I2C2_SCL_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C2_SCL_PORT,_BIT(I2C2_SCL_PIN))
#define I2C2_SCL_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C2_SCL_PORT,_BIT(I2C2_SCL_PIN))
#define I2C2_SDA_HIGH HAL_GPIO_SetPin((Pn_Type*)I2C2_SDA_PORT,_BIT(I2C2_SDA_PIN))
#define I2C2_SDA_LOW HAL_GPIO_ClearPin((Pn_Type*)I2C2_SDA_PORT,_BIT(I2C2_SDA_PIN))
#define I2C2_SDA_OUTPUT HAL_GPIO_ConfigOutput((Pn_Type*)I2C2_SDA_PORT, I2C2_SDA_PIN, PUSH_PULL_OUTPUT)
#define I2C2_SDA_INPUTS HAL_GPIO_ConfigOutput((Pn_Type*)I2C2_SDA_PORT, I2C2_SDA_PIN, INPUT)
#define I2C2_ACK_READ TESTBIT(I2C2_SDA_PORT->INDR, I2C2_SDA_PIN)
#define I2C2_SDA_READ TESTBIT(I2C2_SDA_PORT->INDR, I2C2_SDA_PIN)
void GPIO_I2C0_Initialization(void);
void GPIO_I2C0_Start(void);
void GPIO_I2C0_Stop(void);
uint8_t GPIO_I2C0_Write(uint8_t data);
uint8_t GPIO_I2C0_Read(uint8_t rs);
uint8_t I2C0_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize);
uint8_t I2C0_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize);
void GPIO_I2C1_Initialization(void);
void GPIO_I2C1_Start(void);
void GPIO_I2C1_Stop(void);
uint8_t GPIO_I2C1_Write(uint8_t data);
uint8_t GPIO_I2C1_Read(uint8_t rs);
uint8_t I2C1_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize);
uint8_t I2C1_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize);
void GPIO_I2C2_Initialization(void);
void GPIO_I2C2_Start(void);
void GPIO_I2C2_Stop(void);
uint8_t GPIO_I2C2_Write(uint8_t data);
uint8_t GPIO_I2C2_Read(uint8_t rs);
uint8_t I2C2_Write(uint8_t Address, uint8_t* pWriteData, uint8_t WriteDataSize);
uint8_t I2C2_Read(uint8_t Address, uint8_t *pReadData, uint8_t ReadDataSize);
#endif