41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
#ifndef __IIC_H
|
|
#define __IIC_H
|
|
|
|
|
|
#include "./SYSTEM/sys/sys.h"
|
|
#include "./SYSTEM/delay/delay.h"
|
|
|
|
|
|
#define IIC_SCL_GPIO_PORT GPIOA
|
|
#define IIC_SCL_GPIO_PIN GPIO_PIN_5
|
|
#define IIC_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
|
|
|
#define IIC_SDA_GPIO_PORT GPIOA
|
|
#define IIC_SDA_GPIO_PIN GPIO_PIN_6
|
|
#define IIC_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
|
|
|
|
#define IIC_SCL(x) do{ x ? \
|
|
HAL_GPIO_WritePin(IIC_SCL_GPIO_PORT, IIC_SCL_GPIO_PIN, GPIO_PIN_SET) : \
|
|
HAL_GPIO_WritePin(IIC_SCL_GPIO_PORT, IIC_SCL_GPIO_PIN, GPIO_PIN_RESET); \
|
|
}while(0) /* SCL */
|
|
#define IIC_SDA(x) do{x? \
|
|
HAL_GPIO_WritePin(IIC_SDA_GPIO_PORT,IIC_SDA_GPIO_PIN,GPIO_PIN_SET): \
|
|
HAL_GPIO_WritePin(IIC_SDA_GPIO_PORT,IIC_SDA_GPIO_PIN,GPIO_PIN_RESET); \
|
|
}while(0);
|
|
#define IIC_READ_SDA HAL_GPIO_ReadPin(IIC_SDA_GPIO_PORT,IIC_SDA_GPIO_PIN)
|
|
|
|
|
|
|
|
|
|
|
|
void iic_init(void);
|
|
void iic_start(void);
|
|
uint8_t iic_read_byte(uint8_t ack);
|
|
void iic_send_byte(uint8_t data);
|
|
void iic_stop(void);
|
|
uint8_t iic_wait_ack(void);
|
|
void iic_ack(void);
|
|
void iic_nack(void);
|
|
#endif
|
|
|